You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -31,3 +31,51 @@ WASI does not support spawning child processes. Tests that shell out to other co
31
31
## WASI: stdin file position not preserved through wasmtime
32
32
33
33
When stdin is a seekable file, wasmtime does not preserve the file position between the host and guest. Tests that validate stdin offset behavior after `head` reads are skipped.
34
+
35
+
## WASI: read_link fails under wasmtime via spawned test harness
36
+
37
+
When the WASI binary is spawned via `std::process::Command` from the cargo-test harness, `fs::read_link` (and operations that follow symlinks, such as opening a symlink to a FIFO or traversing a symlink loop) can return `EPERM` on absolute paths — paths that work when wasmtime is invoked directly. Individual symptom tests skipped under this umbrella are annotated with narrower reasons describing the observed errno mismatch.
38
+
39
+
## WASI: no Unix domain socket support
40
+
41
+
WASI does not support Unix domain sockets. Tests that create or read from `AF_UNIX` sockets are skipped.
42
+
43
+
## WASI: no locale data
44
+
45
+
The WASI sandbox does not ship locale data, so `setlocale`/`LC_ALL` have no effect and sorting falls back to byte comparison. Tests that depend on locale-aware collation or month-name translation are skipped.
46
+
47
+
## WASI: tail follow mode disabled
48
+
49
+
`tail -f` / `tail -F` (follow mode) requires change-notification mechanisms (`inotify`, `kqueue`) and signal handling that WASI does not provide, so follow is disabled on WASI and a warning is emitted. Tests that exercise follow behaviour are skipped.
50
+
51
+
## WASI: cannot detect unsafe overwrite
52
+
53
+
`is_unsafe_overwrite` (used by `cat` to detect input-is-output situations) is stubbed to return `false` on WASI because the required `stat` / device-and-inode comparison is not available. Tests that assert this error path are skipped.
54
+
55
+
## WASI: pre-epoch timestamps not representable
56
+
57
+
WASI Preview 1 `Timestamp` is a `u64` nanosecond count since the Unix epoch, so `path_filestat_set_times` (and therefore `touch -t` with a two-digit year ≥ 69) cannot express dates before 1970. Tests that set pre-epoch timestamps are skipped.
58
+
59
+
## WASI: no timezone database
60
+
61
+
wasi-libc does not ship tzdata, so `TZ` is not honoured and timezone-dependent validation (e.g. `touch -t` rejecting a nonexistent local time during a DST transition) does not happen. Tests that rely on this are skipped.
62
+
63
+
## WASI: guest root is a writable preopen
64
+
65
+
The test harness maps the per-test working directory as the guest's `/`. That makes `/` writable inside the guest, so GNU-style protections against operating on the system root (e.g. `touch /` failing) cannot be exercised. Tests that assert these protections are skipped.
66
+
67
+
## WASI: `touch -` (stdout) unsupported
68
+
69
+
On WASI, `touch -` returns `UnsupportedPlatformFeature` because the guest cannot reliably locate the host file backing stdout. Tests that exercise `touch -` are skipped.
70
+
71
+
## WASI: errno/error-message mismatches
72
+
73
+
Several error paths surface different errno values (and therefore different error messages) through wasmtime than on POSIX. Observed cases:
74
+
75
+
- Opening a directory as a file returns `EBADF` rather than `EISDIR`.
76
+
- Redirecting a directory into stdin returns `ENOENT` rather than `EISDIR`.
77
+
- Filesystem permission errors surface as `ENOENT` rather than `EACCES`.
78
+
- Symlink-loop traversal does not reliably surface `ELOOP` ("Too many levels of symbolic links").
79
+
- Opening a symlink-to-directory does not reliably surface `EISDIR`.
80
+
81
+
Tests that assert specific error text for these paths are skipped.
0 commit comments