...
1 package modload
2
3 import (
4 "context"
5 "fmt"
6 "io/fs"
7 "path/filepath"
8 "strings"
9 "testing"
10
11 "github.com/go-quicktest/qt"
12 "github.com/google/go-cmp/cmp"
13 "golang.org/x/tools/txtar"
14
15 "cuelang.org/go/internal/txtarfs"
16 )
17
18 func TestUpdateVersions(t *testing.T) {
19 files, err := filepath.Glob("testdata/updateversions/*.txtar")
20 qt.Assert(t, qt.IsNil(err))
21 for _, f := range files {
22 t.Run(f, func(t *testing.T) {
23 ar, err := txtar.ParseFile(f)
24 qt.Assert(t, qt.IsNil(err))
25 tfs := txtarfs.FS(ar)
26 reg := newRegistry(t, tfs, "_registry")
27
28 want, err := fs.ReadFile(tfs, "want")
29 qt.Assert(t, qt.IsNil(err))
30
31 versionsData, _ := fs.ReadFile(tfs, "versions")
32 versions := strings.Fields(string(versionsData))
33
34 var out strings.Builder
35 mf, err := UpdateVersions(context.Background(), tfs, ".", reg, versions)
36 if err != nil {
37 fmt.Fprintf(&out, "error: %v\n", err)
38 } else {
39 data, err := mf.Format()
40 qt.Assert(t, qt.IsNil(err))
41 out.Write(data)
42 }
43 if diff := cmp.Diff(string(want), out.String()); diff != "" {
44 t.Log("actual result:\n", out.String())
45 t.Fatalf("unexpected results (-want +got):\n%s", diff)
46 }
47 })
48 }
49 }
50
View as plain text