When running tests under wasmtime, provide a fresh TMPDIR.
Also fix a couple os tests that wrote to current directory to write to os.TempDir() instead. After this, os tests pass in wasi, so add them to the list run by "make tinygo-test-wasi".
Этот коммит содержится в:
родитель
e046b23773
коммит
ec97313239
3 изменённых файлов: 11 добавлений и 3 удалений
2
Makefile
2
Makefile
|
@ -228,6 +228,7 @@ TEST_PACKAGES_BASE = \
|
|||
math/cmplx \
|
||||
net/http/internal/ascii \
|
||||
net/mail \
|
||||
os \
|
||||
path \
|
||||
reflect \
|
||||
sync \
|
||||
|
@ -243,7 +244,6 @@ TEST_PACKAGES = \
|
|||
$(TEST_PACKAGES_BASE) \
|
||||
compress/flate \
|
||||
compress/zlib \
|
||||
os \
|
||||
|
||||
# Standard library packages that pass tests on wasi
|
||||
TEST_PACKAGES_WASI = \
|
||||
|
|
8
main.go
8
main.go
|
@ -254,6 +254,14 @@ func runPackageTest(config *compileopts.Config, stdout, stderr io.Writer, result
|
|||
// Run in an emulator.
|
||||
args := append(config.Target.Emulator[1:], result.Binary)
|
||||
if config.Target.Emulator[0] == "wasmtime" {
|
||||
// create a new temp directory just for this run, announce it to os.TempDir() via TMPDIR
|
||||
tmpdir, err := ioutil.TempDir("", "tinygotmp")
|
||||
if err != nil {
|
||||
return false, &commandError{"failed to create temporary directory", "tinygotmp", err}
|
||||
}
|
||||
args = append(args, "--dir="+tmpdir, "--env=TMPDIR="+tmpdir)
|
||||
// TODO: add option to not delete temp dir for debugging?
|
||||
defer os.RemoveAll(tmpdir)
|
||||
// allow reading from current directory: --dir=.
|
||||
// mark end of wasmtime arguments and start of program ones: --
|
||||
args = append(args, "--dir=.", "--")
|
||||
|
|
|
@ -19,7 +19,7 @@ func randomName() string {
|
|||
}
|
||||
|
||||
func TestMkdir(t *testing.T) {
|
||||
dir := "TestMkdir" + randomName()
|
||||
dir := TempDir() + "/TestMkdir" + randomName()
|
||||
Remove(dir)
|
||||
err := Mkdir(dir, 0755)
|
||||
defer Remove(dir)
|
||||
|
@ -65,7 +65,7 @@ func writeFile(t *testing.T, fname string, flag int, text string) string {
|
|||
}
|
||||
|
||||
func TestRemove(t *testing.T) {
|
||||
f := "TestRemove" + randomName()
|
||||
f := TempDir() + "/TestRemove" + randomName()
|
||||
|
||||
err := Remove(f)
|
||||
if err == nil {
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче