40 lines
1003 B
Go
40 lines
1003 B
Go
package gojs_test
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero/experimental"
|
|
"github.com/tetratelabs/wazero/experimental/logging"
|
|
"github.com/tetratelabs/wazero/internal/testing/require"
|
|
)
|
|
|
|
func Test_time(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
var log bytes.Buffer
|
|
loggingCtx := context.WithValue(testCtx, experimental.FunctionListenerFactoryKey{},
|
|
logging.NewHostLoggingListenerFactory(&log, logging.LogScopeClock))
|
|
|
|
stdout, stderr, err := compileAndRun(loggingCtx, "time", defaultConfig)
|
|
|
|
require.Zero(t, stderr)
|
|
require.NoError(t, err)
|
|
require.Equal(t, `Local
|
|
1ms
|
|
`, stdout)
|
|
|
|
// To avoid multiple similar assertions, just check three functions we
|
|
// expect were called.
|
|
logString := logString(log)
|
|
require.Contains(t, logString, `==> go.runtime.nanotime1()
|
|
<== (nsec=0)`)
|
|
require.Contains(t, logString, `==> go.runtime.walltime()
|
|
<== (sec=1640995200,nsec=0)
|
|
`)
|
|
require.Contains(t, logString, `==> go.syscall/js.valueCall(Date.getTimezoneOffset())
|
|
<== (tz=0)
|
|
`)
|
|
}
|