ci: run at least some tests on older Go/LLVM versions

These should make sure basic functionality is still working.
Using the `-short` flag to avoid taking too long to run all tests (and
to install all the necessary emulators), and because some targets might
not work in older Go/LLVM versions (such as WASI).

This does _not_ run tests and checks against expected IR, because LLVM
IR changes a lot across versions.
This commit is contained in:
Ayke van Laethem
2024-10-29 09:47:14 +01:00
committed by Ron Evans
parent 1dcccf87b5
commit 9b3eb3fe59
2 changed files with 17 additions and 2 deletions
+2
View File
@@ -90,6 +90,8 @@ commands:
name: Check Go code formatting
command: make fmt-check lint
- run: make gen-device -j4
# TODO: change this to -skip='TestErrors|TestWasm' with Go 1.20
- run: go test -tags=llvm<<parameters.llvm>> -short -run='TestBuild|TestTest|TestGetList|TestTraceback'
- run: make smoketest XTENSA=0
- save_cache:
key: go-cache-v4-{{ checksum "go.mod" }}-{{ .Environment.CIRCLE_BUILD_NUM }}
+15 -2
View File
@@ -15,7 +15,6 @@ import (
"reflect"
"regexp"
"runtime"
"slices"
"strings"
"sync"
"testing"
@@ -521,7 +520,7 @@ func TestWebAssembly(t *testing.T) {
}
}
}
if !slices.Equal(imports, tc.imports) {
if !stringSlicesEqual(imports, tc.imports) {
t.Errorf("import list not as expected!\nexpected: %v\nactual: %v", tc.imports, imports)
}
}
@@ -529,6 +528,20 @@ func TestWebAssembly(t *testing.T) {
}
}
func stringSlicesEqual(s1, s2 []string) bool {
// We can use slices.Equal once we drop support for Go 1.20 (it was added in
// Go 1.21).
if len(s1) != len(s2) {
return false
}
for i, s := range s1 {
if s != s2[i] {
return false
}
}
return true
}
func TestWasmExport(t *testing.T) {
t.Parallel()