1
2
3
4
5 package asmgen
6
7 import (
8 "bytes"
9 "flag"
10 "internal/diff"
11 "os"
12 "testing"
13 )
14
15 var generateFlag = flag.Bool("generate", false, "generate files")
16
17 func Test(t *testing.T) {
18 for _, arch := range arches {
19 t.Run(arch.Name, func(t *testing.T) {
20 file, data := generate(arch)
21 old, err := os.ReadFile("../../" + file)
22 if err == nil && bytes.Equal(old, data) {
23 return
24 }
25 if *generateFlag {
26 if err := os.WriteFile("../../"+file, data, 0o666); err != nil {
27 t.Fatal(err)
28 }
29 return
30 }
31 if err != nil {
32 t.Fatal(err)
33 }
34 t.Fatalf("generated assembly differs:\n%s\n", diff.Diff("../../"+file, old, "regenerated", data))
35 })
36 }
37 }
38
View as plain text