github.com/tetratelabs/wazero@v1.2.1/internal/gojs/time_test.go (about) 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_time(t *testing.T) { 14 t.Parallel() 15 16 var log bytes.Buffer 17 loggingCtx := context.WithValue(testCtx, experimental.FunctionListenerFactoryKey{}, 18 logging.NewHostLoggingListenerFactory(&log, logging.LogScopeClock)) 19 20 stdout, stderr, err := compileAndRun(loggingCtx, "time", defaultConfig) 21 22 require.EqualError(t, err, `module closed with exit_code(0)`) 23 require.Zero(t, stderr) 24 require.Equal(t, `Local 25 1ms 26 `, stdout) 27 28 // To avoid multiple similar assertions, just check three functions we 29 // expect were called. 30 require.Contains(t, log.String(), `==> go.runtime.nanotime1() 31 <== (nsec=0)`) 32 require.Contains(t, log.String(), `==> go.runtime.walltime() 33 <== (sec=1640995200,nsec=0) 34 `) 35 require.Contains(t, log.String(), `==> go.syscall/js.valueCall(Date.getTimezoneOffset()) 36 <== (tz=0) 37 `) 38 }