mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-20 04:19:04 +00:00
os_unix_test.go: rename to os_anyos_test.go, add windows build tag
Also remove now-unsupported freebsd build tag.
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
// +build windows darwin linux,!baremetal
|
||||
|
||||
package os_test
|
||||
|
||||
import (
|
||||
. "os"
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func randomName() string {
|
||||
// fastrand() does not seem available here, so fake it
|
||||
ns := time.Now().Nanosecond()
|
||||
pid := Getpid()
|
||||
return strconv.FormatUint(uint64(ns^pid), 10)
|
||||
}
|
||||
|
||||
func TestMkdir(t *testing.T) {
|
||||
dir := "TestMkdir" + randomName()
|
||||
Remove(dir)
|
||||
err := Mkdir(dir, 0755)
|
||||
defer Remove(dir)
|
||||
if err != nil {
|
||||
t.Errorf("Mkdir(%s, 0755) returned %v", dir, err)
|
||||
}
|
||||
// tests the "directory" branch of Remove
|
||||
err = Remove(dir)
|
||||
if err != nil {
|
||||
t.Errorf("Remove(%s) returned %v", dir, err)
|
||||
}
|
||||
}
|
||||
|
||||
func writeFile(t *testing.T, fname string, flag int, text string) string {
|
||||
f, err := OpenFile(fname, flag, 0666)
|
||||
if err != nil {
|
||||
t.Fatalf("Open: %v", err)
|
||||
}
|
||||
n, err := f.WriteString(text)
|
||||
if err != nil {
|
||||
t.Fatalf("WriteString: %d, %v", n, err)
|
||||
}
|
||||
f.Close()
|
||||
data, err := ReadFile(f.Name())
|
||||
if err != nil {
|
||||
t.Fatalf("ReadFile: %v", err)
|
||||
}
|
||||
return string(data)
|
||||
}
|
||||
|
||||
func TestRemove(t *testing.T) {
|
||||
f := "TestRemove" + randomName()
|
||||
|
||||
err := Remove(f)
|
||||
if err == nil {
|
||||
t.Errorf("TestRemove: remove of nonexistent file did not fail")
|
||||
} else {
|
||||
// FIXME: once we drop go 1.15, switch this to fs.PathError
|
||||
if pe, ok := err.(*PathError); !ok {
|
||||
t.Errorf("TestRemove: expected PathError, got err %q", err.Error())
|
||||
} else {
|
||||
if pe.Path != f {
|
||||
t.Errorf("TestRemove: PathError returned path %q, expected %q", pe.Path, f)
|
||||
}
|
||||
}
|
||||
if !IsNotExist(err) {
|
||||
t.Errorf("TestRemove: expected IsNotExist(err) true, got false; err %q", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
s := writeFile(t, f, O_CREATE|O_TRUNC|O_RDWR, "new")
|
||||
if s != "new" {
|
||||
t.Fatalf("writeFile: have %q want %q", s, "new")
|
||||
}
|
||||
// tests the "file" branch of Remove
|
||||
err = Remove(f)
|
||||
if err != nil {
|
||||
t.Fatalf("Remove: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user