...
1 package gojs_test
2
3 import (
4 "bytes"
5 "context"
6 "testing"
7
8 "github.com/tetratelabs/wazero/experimental"
9 "github.com/tetratelabs/wazero/experimental/logging"
10 "github.com/tetratelabs/wazero/internal/testing/require"
11 )
12
13 func Test_crypto(t *testing.T) {
14 t.Parallel()
15
16 var log bytes.Buffer
17 loggingCtx := context.WithValue(testCtx, experimental.FunctionListenerFactoryKey{},
18 logging.NewHostLoggingListenerFactory(&log, logging.LogScopeRandom))
19
20 stdout, stderr, err := compileAndRun(loggingCtx, "crypto", defaultConfig)
21
22 require.Zero(t, stderr)
23 require.NoError(t, err)
24 require.Equal(t, `7a0c9f9f0d
25 `, stdout)
26 require.Equal(t, `==> go.runtime.getRandomData(r_len=32)
27 <==
28 ==> go.runtime.getRandomData(r_len=8)
29 <==
30 ==> go.syscall/js.valueCall(crypto.getRandomValues(r_len=5))
31 <== (n=5)
32 `, logString(log))
33 }
34
View as plain text