]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgo/go/cmd/go/internal/modfile/rule_test.go
Add error check on return value of build_co_await
[thirdparty/gcc.git] / libgo / go / cmd / go / internal / modfile / rule_test.go
CommitLineData
dd931d9b
ILT
1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package modfile
6
7import (
8 "bytes"
9 "fmt"
10 "testing"
11)
12
13var addRequireTests = []struct {
14 in string
15 path string
16 vers string
17 out string
18}{
19 {
20 `
21 module m
22 require x.y/z v1.2.3
23 `,
24 "x.y/z", "v1.5.6",
25 `
26 module m
27 require x.y/z v1.5.6
28 `,
29 },
30 {
31 `
32 module m
33 require x.y/z v1.2.3
34 `,
35 "x.y/w", "v1.5.6",
36 `
37 module m
38 require (
39 x.y/z v1.2.3
40 x.y/w v1.5.6
41 )
42 `,
43 },
44 {
45 `
46 module m
47 require x.y/z v1.2.3
48 require x.y/q/v2 v2.3.4
49 `,
50 "x.y/w", "v1.5.6",
51 `
52 module m
53 require x.y/z v1.2.3
54 require (
55 x.y/q/v2 v2.3.4
56 x.y/w v1.5.6
57 )
58 `,
59 },
60}
61
62func TestAddRequire(t *testing.T) {
63 for i, tt := range addRequireTests {
64 t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
65 f, err := Parse("in", []byte(tt.in), nil)
66 if err != nil {
67 t.Fatal(err)
68 }
69 g, err := Parse("out", []byte(tt.out), nil)
70 if err != nil {
71 t.Fatal(err)
72 }
73 golden, err := g.Format()
74 if err != nil {
75 t.Fatal(err)
76 }
77
78 if err := f.AddRequire(tt.path, tt.vers); err != nil {
79 t.Fatal(err)
80 }
81 out, err := f.Format()
82 if err != nil {
83 t.Fatal(err)
84 }
85 if !bytes.Equal(out, golden) {
86 t.Errorf("have:\n%s\nwant:\n%s", out, golden)
87 }
88 })
89 }
90}