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:
Crypt Keeper
2022-12-14 16:08:07 +09:00
committed by GitHub
parent 0ed4002549
commit 126bd9050d
59 changed files with 526 additions and 578 deletions

View File

@@ -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())
}
})
}