Skip to content

Commit

Permalink
os: add stubs for Readlink and File.Seek for baremetal targets, with …
Browse files Browse the repository at this point in the history
…smoke test.

Test currently enabled on pybadge (chosen at random)

TODO:
- enable test on arduino; currently fails with "interp: ptrtoint integer size..." (tinygo-org#2389)
- enable test on nintendoswitch; currently fails with many missing definitions (tinygo-org#2530)
  • Loading branch information
dkegel-fastly authored and bgould committed Feb 7, 2022
1 parent 626ef02 commit 291890a
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,8 @@ tinygo-bench-wasi-fast:
.PHONY: smoketest
smoketest:
$(TINYGO) version
# regression test for #2563
cd tests/os/smoke && $(TINYGO) test -c -target=pybadge && rm smoke.test
# test all examples (except pwm)
$(TINYGO) build -size short -o test.hex -target=pca10040 examples/blinky1
@$(MD5SUM) test.hex
Expand Down
8 changes: 8 additions & 0 deletions src/os/file_other.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,14 @@ func Pipe() (r *File, w *File, err error) {
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 {
return "/tmp"
}
27 changes: 27 additions & 0 deletions tests/os/smoke/smoke_test.go
Original file line number Diff line number Diff line change
@@ -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)
}
}

0 comments on commit 291890a

Please sign in to comment.