aboutsummaryrefslogtreecommitdiff
path: root/gopls/internal/vulncheck/vulntest/report_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'gopls/internal/vulncheck/vulntest/report_test.go')
-rw-r--r--gopls/internal/vulncheck/vulntest/report_test.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/gopls/internal/vulncheck/vulntest/report_test.go b/gopls/internal/vulncheck/vulntest/report_test.go
new file mode 100644
index 000000000..c42dae805
--- /dev/null
+++ b/gopls/internal/vulncheck/vulntest/report_test.go
@@ -0,0 +1,52 @@
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build go1.18
+// +build go1.18
+
+package vulntest
+
+import (
+ "bytes"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "testing"
+
+ "github.com/google/go-cmp/cmp"
+)
+
+func readAll(t *testing.T, filename string) io.Reader {
+ d, err := ioutil.ReadFile(filename)
+ if err != nil {
+ t.Fatal(err)
+ }
+ return bytes.NewReader(d)
+}
+
+func TestRoundTrip(t *testing.T) {
+ // A report shouldn't change after being read and then written.
+ in := filepath.Join("testdata", "report.yaml")
+ r, err := readReport(readAll(t, in))
+ if err != nil {
+ t.Fatal(err)
+ }
+ out := filepath.Join(t.TempDir(), "report.yaml")
+ if err := r.Write(out); err != nil {
+ t.Fatal(err)
+ }
+
+ want, err := os.ReadFile(in)
+ if err != nil {
+ t.Fatal(err)
+ }
+ got, err := os.ReadFile(out)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if diff := cmp.Diff(want, got); diff != "" {
+ t.Errorf("mismatch (-want, +got):\n%s", diff)
+ }
+}