go-hep.org/x/hep@v0.38.1/brio/cmd/brio-gen/internal/gen/gen_test.go (about) 1 // Copyright ©2018 The go-hep 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 5 package gen_test 6 7 import ( 8 "bytes" 9 "os" 10 "os/exec" 11 "testing" 12 13 "go-hep.org/x/hep/brio/cmd/brio-gen/internal/gen" 14 "go-hep.org/x/hep/internal/diff" 15 ) 16 17 func TestGenerator(t *testing.T) { 18 const ( 19 pkg = "go-hep.org/x/hep/brio/cmd/brio-gen/internal/gen/_test/pkg" 20 golden = "testdata/brio_gen_golden.go.txt" 21 ) 22 txt, err := exec.Command("go", "install", pkg).CombinedOutput() 23 if err != nil { 24 t.Fatalf("could not build test package:\n%v\nerror: %v", string(txt), err) 25 } 26 27 g, err := gen.NewGenerator(pkg) 28 if err != nil { 29 t.Fatal(err) 30 } 31 32 g.Generate("T1") 33 g.Generate("T2") 34 g.Generate("T3") 35 36 got, err := g.Format() 37 if err != nil { 38 t.Fatal(err) 39 } 40 41 want, err := os.ReadFile(golden) 42 if err != nil { 43 t.Fatal(err) 44 } 45 46 if !bytes.Equal(got, want) { 47 t.Fatalf("files differ:\n%s\n", diff.Format(string(got), string(want))) 48 } 49 }