make compiler test names clearer
Этот коммит содержится в:
родитель
1cbe09ee89
коммит
992f1fa248
1 изменённых файлов: 53 добавлений и 49 удалений
102
main_test.go
102
main_test.go
|
@ -39,67 +39,59 @@ func TestCompiler(t *testing.T) {
|
||||||
|
|
||||||
sort.Strings(matches)
|
sort.Strings(matches)
|
||||||
|
|
||||||
// Create a temporary directory for test output files.
|
|
||||||
tmpdir, err := ioutil.TempDir("", "tinygo-test")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal("could not create temporary directory:", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpdir)
|
|
||||||
|
|
||||||
if runtime.GOOS != "windows" {
|
if runtime.GOOS != "windows" {
|
||||||
t.Log("running tests on host...")
|
t.Run("Host", func(t *testing.T) {
|
||||||
for _, path := range matches {
|
runPlatTests("", matches, t)
|
||||||
t.Run(path, func(t *testing.T) {
|
})
|
||||||
runTest(path, tmpdir, "", t)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if testing.Short() {
|
if testing.Short() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Log("running tests for emulated cortex-m3...")
|
t.Run("EmulatedCortexM3", func(t *testing.T) {
|
||||||
for _, path := range matches {
|
runPlatTests("qemu", matches, t)
|
||||||
t.Run(path, func(t *testing.T) {
|
})
|
||||||
runTest(path, tmpdir, "qemu", t)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if runtime.GOOS == "linux" {
|
if runtime.GOOS == "linux" {
|
||||||
t.Log("running tests for linux/arm...")
|
t.Run("ARMLinux", func(t *testing.T) {
|
||||||
for _, path := range matches {
|
runPlatTests("arm--linux-gnueabihf", matches, t)
|
||||||
if path == filepath.Join("testdata", "cgo")+string(filepath.Separator) {
|
})
|
||||||
continue // TODO: improve CGo
|
t.Run("ARM64Linux", func(t *testing.T) {
|
||||||
}
|
runPlatTests("aarch64--linux-gnu", matches, t)
|
||||||
t.Run(path, func(t *testing.T) {
|
})
|
||||||
runTest(path, tmpdir, "arm--linux-gnueabihf", t)
|
t.Run("WebAssembly", func(t *testing.T) {
|
||||||
})
|
runPlatTests("wasm", matches, t)
|
||||||
}
|
})
|
||||||
|
|
||||||
t.Log("running tests for linux/arm64...")
|
|
||||||
for _, path := range matches {
|
|
||||||
if path == filepath.Join("testdata", "cgo")+string(filepath.Separator) {
|
|
||||||
continue // TODO: improve CGo
|
|
||||||
}
|
|
||||||
t.Run(path, func(t *testing.T) {
|
|
||||||
runTest(path, tmpdir, "aarch64--linux-gnu", t)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Log("running tests for WebAssembly...")
|
|
||||||
for _, path := range matches {
|
|
||||||
if path == filepath.Join("testdata", "gc.go") {
|
|
||||||
continue // known to fail
|
|
||||||
}
|
|
||||||
t.Run(path, func(t *testing.T) {
|
|
||||||
runTest(path, tmpdir, "wasm", t)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func runTest(path, tmpdir string, target string, t *testing.T) {
|
func runPlatTests(target string, matches []string, t *testing.T) {
|
||||||
|
for _, path := range matches {
|
||||||
|
switch {
|
||||||
|
case target == "wasm":
|
||||||
|
// testdata/gc.go is known not to work on WebAssembly
|
||||||
|
if path == filepath.Join("testdata", "gc.go") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
case target == "":
|
||||||
|
// run all tests on host
|
||||||
|
case target == "qemu":
|
||||||
|
// all tests are supported
|
||||||
|
default:
|
||||||
|
// cross-compilation of cgo is not yet supported
|
||||||
|
if path == filepath.Join("testdata", "cgo")+string(filepath.Separator) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run(filepath.Base(path), func(t *testing.T) {
|
||||||
|
runTest(path, target, t)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func runTest(path, target string, t *testing.T) {
|
||||||
// Get the expected output for this test.
|
// Get the expected output for this test.
|
||||||
txtpath := path[:len(path)-3] + ".txt"
|
txtpath := path[:len(path)-3] + ".txt"
|
||||||
if path[len(path)-1] == os.PathSeparator {
|
if path[len(path)-1] == os.PathSeparator {
|
||||||
|
@ -114,6 +106,18 @@ func runTest(path, tmpdir string, target string, t *testing.T) {
|
||||||
t.Fatal("could not read expected output file:", err)
|
t.Fatal("could not read expected output file:", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create a temporary directory for test output files.
|
||||||
|
tmpdir, err := ioutil.TempDir("", "tinygo-test")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("could not create temporary directory:", err)
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
rerr := os.RemoveAll(tmpdir)
|
||||||
|
if rerr != nil {
|
||||||
|
t.Errorf("failed to remove temporary directory %q: %s", tmpdir, rerr.Error())
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
// Build the test binary.
|
// Build the test binary.
|
||||||
config := &compileopts.Options{
|
config := &compileopts.Options{
|
||||||
Opt: "z",
|
Opt: "z",
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче