Removes context parameter from instruction-scoped operations (#923)
We originally had a `context.Context` for anything that might be traced, but it turned out to be only useful for lifecycle and host functions. For instruction-scoped aspects like memory updates, a context parameter is too fine-grained and also invisible in practice. For example, most users will use the compiler engine, and its memory, global or table access will never use go's context. Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
@@ -126,20 +126,18 @@ func TestGlobalTypes(t *testing.T) {
|
||||
tc := tt
|
||||
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
for _, ctx := range []context.Context{nil, testCtx} { // Ensure it doesn't crash on nil!
|
||||
require.Equal(t, tc.expectedType, tc.global.Type())
|
||||
require.Equal(t, tc.expectedVal, tc.global.Get(ctx))
|
||||
require.Equal(t, tc.expectedString, tc.global.String())
|
||||
require.Equal(t, tc.expectedType, tc.global.Type())
|
||||
require.Equal(t, tc.expectedVal, tc.global.Get())
|
||||
require.Equal(t, tc.expectedString, tc.global.String())
|
||||
|
||||
mutable, ok := tc.global.(api.MutableGlobal)
|
||||
require.Equal(t, tc.expectedMutable, ok)
|
||||
if ok {
|
||||
mutable.Set(ctx, 2)
|
||||
require.Equal(t, uint64(2), tc.global.Get(ctx))
|
||||
mutable, ok := tc.global.(api.MutableGlobal)
|
||||
require.Equal(t, tc.expectedMutable, ok)
|
||||
if ok {
|
||||
mutable.Set(2)
|
||||
require.Equal(t, uint64(2), tc.global.Get())
|
||||
|
||||
mutable.Set(ctx, tc.expectedVal) // Set it back!
|
||||
require.Equal(t, tc.expectedVal, tc.global.Get(ctx))
|
||||
}
|
||||
mutable.Set(tc.expectedVal) // Set it back!
|
||||
require.Equal(t, tc.expectedVal, tc.global.Get())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user