-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_test.go
37 lines (33 loc) · 823 Bytes
/
main_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Copyright 2025 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.
package asmgen
import (
"bytes"
"flag"
"internal/diff"
"os"
"testing"
)
var generateFlag = flag.Bool("generate", false, "generate files")
func Test(t *testing.T) {
for _, arch := range arches {
t.Run(arch.Name, func(t *testing.T) {
file, data := generate(arch)
old, err := os.ReadFile("../../" + file)
if err == nil && bytes.Equal(old, data) {
return
}
if *generateFlag {
if err := os.WriteFile("../../"+file, data, 0o666); err != nil {
t.Fatal(err)
}
return
}
if err != nil {
t.Fatal(err)
}
t.Fatalf("generated assembly differs:\n%s\n", diff.Diff("../../"+file, old, "regenerated", data))
})
}
}