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  }