os: add stubs for Readlink and File.Seek for baremetal targets, with smoke test.
Test currently enabled on pybadge (chosen at random) TODO: - enable test on arduino; currently fails with "interp: ptrtoint integer size..." (#2389) - enable test on nintendoswitch; currently fails with many missing definitions (#2530)
Этот коммит содержится в:
родитель
f5b7925047
коммит
9c3f9537be
3 изменённых файлов: 37 добавлений и 0 удалений
2
Makefile
2
Makefile
|
@ -298,6 +298,8 @@ tinygo-bench-wasi-fast:
|
||||||
.PHONY: smoketest
|
.PHONY: smoketest
|
||||||
smoketest:
|
smoketest:
|
||||||
$(TINYGO) version
|
$(TINYGO) version
|
||||||
|
# regression test for #2563
|
||||||
|
cd tests/os/smoke && $(TINYGO) test -c -target=pybadge && rm smoke.test
|
||||||
# test all examples (except pwm)
|
# test all examples (except pwm)
|
||||||
$(TINYGO) build -size short -o test.hex -target=pca10040 examples/blinky1
|
$(TINYGO) build -size short -o test.hex -target=pca10040 examples/blinky1
|
||||||
@$(MD5SUM) test.hex
|
@$(MD5SUM) test.hex
|
||||||
|
|
|
@ -62,6 +62,14 @@ func Pipe() (r *File, w *File, err error) {
|
||||||
return nil, nil, ErrNotImplemented
|
return nil, nil, ErrNotImplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *File) Seek(offset int64, whence int) (ret int64, err error) {
|
||||||
|
return 0, ErrNotImplemented
|
||||||
|
}
|
||||||
|
|
||||||
|
func Readlink(name string) (string, error) {
|
||||||
|
return "", ErrNotImplemented
|
||||||
|
}
|
||||||
|
|
||||||
func tempDir() string {
|
func tempDir() string {
|
||||||
return "/tmp"
|
return "/tmp"
|
||||||
}
|
}
|
||||||
|
|
27
tests/os/smoke/smoke_test.go
Обычный файл
27
tests/os/smoke/smoke_test.go
Обычный файл
|
@ -0,0 +1,27 @@
|
||||||
|
package os_smoke_test
|
||||||
|
|
||||||
|
// Simple smoke tests for the os package or things that depend on it.
|
||||||
|
// Intended to catch build tag mistakes affecting bare metal targets.
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Regression test for https://github.com/tinygo-org/tinygo/issues/2563
|
||||||
|
func TestFilepath(t *testing.T) {
|
||||||
|
if filepath.Base("foo/bar") != "bar" {
|
||||||
|
t.Errorf("filepath.Base is very confused")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Regression test for https://github.com/tinygo-org/tinygo/issues/2530
|
||||||
|
func TestFmt(t *testing.T) {
|
||||||
|
n, err := fmt.Printf("Hello, world!\n")
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("printf returned error %s", err)
|
||||||
|
} else if n != 14 {
|
||||||
|
t.Errorf("printf returned %d, expected 14", n)
|
||||||
|
}
|
||||||
|
}
|
Загрузка…
Создание таблицы
Сослаться в новой задаче