From 201592d93b9d2f18d2922b851dbf611d9609767c Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Sat, 25 Feb 2023 17:16:45 +0100 Subject: [PATCH] ci: add AVR timers test Add the timers test because they now work correctly on AVR, probably as a result of the reflect refactor: https://github.com/tinygo-org/tinygo/pull/2640 I've also updated a few of the other tests to indicate the new status and why they don't work. It's no longer because of compiler errors, but because of linker or runtime errors (which is at least some progress). For example, I found that testdata/reflect.go works if you disable `testAppendSlice` and increase the stack size. --- main_test.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/main_test.go b/main_test.go index 72f3c4bb..4de8fc09 100644 --- a/main_test.go +++ b/main_test.go @@ -180,7 +180,8 @@ func runPlatTests(options compileopts.Options, tests []string, t *testing.T) { // Skip the ones that aren't. switch name { case "reflect.go": - // Reflect tests do not work due to type code issues. + // Reflect tests do not run correctly, probably because of the + // limited amount of memory. continue case "gc.go": @@ -188,20 +189,16 @@ func runPlatTests(options compileopts.Options, tests []string, t *testing.T) { continue case "json.go", "stdlib.go", "testing.go": - // Breaks interp. + // Too big for AVR. Doesn't fit in flash/RAM. continue case "math.go": - // Stuck somewhere, not sure what's happening. + // Needs newer picolibc version (for sqrt). continue case "cgo/": - // CGo does not work on AVR. - continue - - case "timers.go": - // Doesn't compile: - // panic: compiler: could not store type code number inside interface type code + // CGo function pointers don't work on AVR (needs LLVM 16 and + // some compiler changes). continue default: