mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-13 07:23:39 +00:00
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:
committed by
Ron Evans
parent
1dcccf87b5
commit
9b3eb3fe59
@@ -90,6 +90,8 @@ commands:
|
|||||||
name: Check Go code formatting
|
name: Check Go code formatting
|
||||||
command: make fmt-check lint
|
command: make fmt-check lint
|
||||||
- run: make gen-device -j4
|
- 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
|
- run: make smoketest XTENSA=0
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: go-cache-v4-{{ checksum "go.mod" }}-{{ .Environment.CIRCLE_BUILD_NUM }}
|
key: go-cache-v4-{{ checksum "go.mod" }}-{{ .Environment.CIRCLE_BUILD_NUM }}
|
||||||
|
|||||||
+15
-2
@@ -15,7 +15,6 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
"regexp"
|
||||||
"runtime"
|
"runtime"
|
||||||
"slices"
|
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"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)
|
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) {
|
func TestWasmExport(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user