Skip to content

Commit 42d4dca

Browse files
committed
tests/environment: reproduce bug between GC and cabi_realloc for wasmimport functions
Working on #348.
1 parent 9d80dee commit 42d4dca

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

tests/environment/big.txt

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package environment_test
2+
3+
import (
4+
"flag"
5+
"os"
6+
"testing"
7+
"unsafe"
8+
9+
"tests/generated/wasi/cli/v0.2.0/environment"
10+
)
11+
12+
func TestEnvironment(t *testing.T) {
13+
env := environment.GetEnvironment()
14+
t.Logf("env len: %d", env.Len())
15+
for i, kv := range env.Slice() {
16+
t.Logf("%02d: %s = %s", i, truncate(kv[0], 32), truncate(kv[1], 32))
17+
}
18+
}
19+
20+
var bigArg = flag.String("big", "", "big argument")
21+
22+
func TestArguments(t *testing.T) {
23+
args := environment.GetArguments().Slice()
24+
25+
// t.Errorf("os.Args: %v\nargs: %v", os.Args, args)
26+
t.Errorf("os.Args: %v", unsafe.SliceData(os.Args))
27+
t.Errorf("os.Args[0]: %v", unsafe.StringData(os.Args[0]))
28+
t.Errorf("len(os.Args): %d", len(os.Args))
29+
t.Errorf("os.Args[1]: %s", os.Args[1])
30+
31+
for i, arg := range args {
32+
t.Logf("%02d: %s", i, truncate(arg, 64))
33+
if !testing.Verbose() && arg == "-test.v" {
34+
t.Errorf("testing.Verbose() == false with %s arg", arg)
35+
}
36+
}
37+
38+
for i := 0; i < 1000; i++ {
39+
args2 := environment.GetArguments().Slice()
40+
if want, got := len(args), len(args2); got != want {
41+
t.Errorf("len(args2): %d, expected %d", got, want)
42+
}
43+
}
44+
}
45+
46+
func truncate(s string, n int) string {
47+
if len(s) > n {
48+
s = s[:n] + "…"
49+
}
50+
return s
51+
}

0 commit comments

Comments
 (0)