From f644a973669ac8e5a31f69c74ae7e1660b7c195f Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 5 Jan 2024 11:05:45 +0900 Subject: [PATCH] Add spectests for Wasm threads proposal Signed-off-by: Anuraag Agrawal --- Makefile | 16 + .../spectest/threads/spec_test.go | 31 + .../spectest/threads/testdata/atomic.0.wasm | Bin 0 -> 3307 bytes .../spectest/threads/testdata/atomic.1.wasm | Bin 0 -> 265 bytes .../spectest/threads/testdata/atomic.10.wasm | Bin 0 -> 43 bytes .../spectest/threads/testdata/atomic.11.wasm | Bin 0 -> 43 bytes .../spectest/threads/testdata/atomic.12.wasm | Bin 0 -> 43 bytes .../spectest/threads/testdata/atomic.13.wasm | Bin 0 -> 44 bytes .../spectest/threads/testdata/atomic.14.wasm | Bin 0 -> 44 bytes .../spectest/threads/testdata/atomic.15.wasm | Bin 0 -> 44 bytes .../spectest/threads/testdata/atomic.16.wasm | Bin 0 -> 44 bytes .../spectest/threads/testdata/atomic.17.wasm | Bin 0 -> 44 bytes .../spectest/threads/testdata/atomic.18.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.19.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.2.wasm | Bin 0 -> 265 bytes .../spectest/threads/testdata/atomic.20.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.21.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.22.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.23.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.24.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.25.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.26.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.27.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.28.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.29.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.3.wasm | Bin 0 -> 756 bytes .../spectest/threads/testdata/atomic.30.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.31.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.32.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.33.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.34.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.35.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.36.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.37.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.38.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.39.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.4.wasm | Bin 0 -> 50 bytes .../spectest/threads/testdata/atomic.40.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.41.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.42.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.43.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.44.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.45.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.46.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.47.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.48.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.49.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.5.wasm | Bin 0 -> 45 bytes .../spectest/threads/testdata/atomic.50.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.51.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.52.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.6.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.7.wasm | Bin 0 -> 47 bytes .../spectest/threads/testdata/atomic.8.wasm | Bin 0 -> 43 bytes .../spectest/threads/testdata/atomic.9.wasm | Bin 0 -> 43 bytes .../spectest/threads/testdata/atomic.json | 329 ++++++++++ .../spectest/threads/testdata/atomic.wast | 610 ++++++++++++++++++ 57 files changed, 986 insertions(+) create mode 100644 internal/integration_test/spectest/threads/spec_test.go create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.0.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.1.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.10.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.11.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.12.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.13.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.14.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.15.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.16.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.17.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.18.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.19.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.2.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.20.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.21.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.22.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.23.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.24.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.25.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.26.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.27.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.28.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.29.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.3.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.30.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.31.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.32.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.33.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.34.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.35.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.36.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.37.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.38.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.39.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.4.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.40.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.41.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.42.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.43.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.44.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.45.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.46.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.47.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.48.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.49.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.5.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.50.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.51.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.52.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.6.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.7.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.8.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.9.wasm create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.json create mode 100644 internal/integration_test/spectest/threads/testdata/atomic.wast diff --git a/Makefile b/Makefile index 7afed6abc0..8037534525 100644 --- a/Makefile +++ b/Makefile @@ -121,6 +121,11 @@ spectest_v2_dir := $(spectest_base_dir)/v2 spectest_v2_testdata_dir := $(spectest_v2_dir)/testdata # Latest draft state as of May 23, 2023. spec_version_v2 := 2e8912e88a3118a46b90e8ccb659e24b4e8f3c23 +spectest_threads_dir := $(spectest_base_dir)/threads +spectest_threads_testdata_dir := $(spectest_threads_dir)/testdata +# From https://github.com/WebAssembly/threads/tree/upstream-rebuild which has not been merged to main yet. +# It will likely be renamed to main in the future - https://github.com/WebAssembly/threads/issues/216. +spec_version_threads := 3635ca51a17e57e106988846c5b0e0cc48ac04fc .PHONY: build.spectest build.spectest: @@ -165,6 +170,17 @@ build.spectest.v2: # Note: SIMD cases are placed in the "simd" subdirectory. wast2json --debug-names --no-check $$f; \ done +# Note: We currently cannot build the "threads" subdirectory that spawns threads due to missing support in wast2json. +# https://github.com/WebAssembly/wabt/issues/2348#issuecomment-1878003959 +.PHONY: build.spectest.threads +build.spectest.threads: + @mkdir -p $(spectest_threads_testdata_dir) + @cd $(spectest_threads_testdata_dir) \ + && curl -sSL 'https://api.github.com/repos/WebAssembly/threads/contents/test/core?ref=$(spec_version_threads)' | jq -r '.[]| .download_url' | grep -E "atomic.wast" | xargs -Iurl curl -sJL url -O + @cd $(spectest_threads_testdata_dir) && for f in `find . -name '*.wast'`; do \ + wast2json --enable-threads --debug-names $$f; \ + done + .PHONY: test test: @go test $(go_test_options) $$(go list ./... | grep -vE '$(spectest_v1_dir)|$(spectest_v2_dir)') diff --git a/internal/integration_test/spectest/threads/spec_test.go b/internal/integration_test/spectest/threads/spec_test.go new file mode 100644 index 0000000000..3bbbb04258 --- /dev/null +++ b/internal/integration_test/spectest/threads/spec_test.go @@ -0,0 +1,31 @@ +package spectest + +import ( + "context" + "embed" + "testing" + + "github.com/tetratelabs/wazero" + "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/internal/integration_test/spectest" + "github.com/tetratelabs/wazero/internal/platform" +) + +//go:embed testdata/*.wasm +//go:embed testdata/*.json +var testcases embed.FS + +const enabledFeatures = api.CoreFeaturesV2 // TODO: Enable threads feature after implementing interpreter support + +func TestCompiler(t *testing.T) { + t.Skip() // TODO: Delete after implementing compiler support + if !platform.CompilerSupported() { + t.Skip() + } + spectest.Run(t, testcases, context.Background(), wazero.NewRuntimeConfigCompiler().WithCoreFeatures(enabledFeatures)) +} + +func TestInterpreter(t *testing.T) { + t.Skip() // TODO: Delete after implementing interpreter support + spectest.Run(t, testcases, context.Background(), wazero.NewRuntimeConfigInterpreter().WithCoreFeatures(enabledFeatures)) +} diff --git a/internal/integration_test/spectest/threads/testdata/atomic.0.wasm b/internal/integration_test/spectest/threads/testdata/atomic.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f10a2364abfdef1237c52a01f6c50e706ca21cab GIT binary patch literal 3307 zcma)8*-{!o6z!fFU;vdJ1U2HmkFp5kj@kELhyN*fFq`~VJSK*AJQec%Fp@CZo1 ztTC=}u4$TX=(=GTKEKcB_xt~22$+F@X_`KR>zoIEhigXrrrl>O(k>OPdcWIgH>~S! zy~%i_T`3briz{pFFZWDOC}g1mtPxkt&Qf1OA>E~Zl`R!vZ6GSe-u1h^7Bi!g-J^mr zb(PIRa!Yqvp~Av3)oZgUx#Mu*^cYzxvKcwD*ZFDHn@tvxR}RT&N-6}T?JR{~Czhss zp(2EMN-8E95^2hh3`s?Bo|?NwN-cSJ|COcHk`9>}D+w%=oEY&uS568ldWHinVrIz9UN|L(dp3RYh^CdSSM*zt!m6x^<6~T}HxjmKL*z3Y0#{Q4Jc1JP=Q_w4Q7{ z%TbLO&lM5cW9midm#-FNmn_e!It!aHK1DS#i4B=J6HJ1ONpi@fhD;h+2gnwXEn-3mr)3N~L|X-IRb*{sk1*jFrzaS8incSfog;gJYz-4Garzv? zUZCwI+Fl|18re6HFy+1)dF|<~4BkQDNO=$D5%>W15%?%8pJe4Tq_MvN`8A3d0mmQ8-QE422O2;nKN% z#lA5L;}j++Oj4Ml5H6;i43|@evlM12%uzT;;XH+KY2{?NxH4R%Fi+tUh07GKPzV=V zPKHY@!*vQbDBPrQi^6RR;j+ugaN%XRN1;XGK7|Jq7AS-dft(B<0~wYnJfyHfVUn+a literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.1.wasm b/internal/integration_test/spectest/threads/testdata/atomic.1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6abaa998fc9c6a3374ad460de81f8b8b4f9b4cea GIT binary patch literal 265 zcmZ{eu?~VT6h-fAOHgohapMb!QKPdTVBDN(pe9W$HCR*@`sc(37h`mJ=iU3x@E~u7 z0MJ4d)T3bDlP|dU{fIt*M*_scBu*3`gwVBiz}zTfn=Y5m8eQhKb^6?azUqh6ZoLBg zQExZk$x=+QM}{3ongnJvfFYfYYsLop3@k`EiCP-Pj^QapcX?@5aD=R?hN9B8wF}le UPSo?NN~bCoJ8hJ09shrN0b4FW761SM literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.10.wasm b/internal/integration_test/spectest/threads/testdata/atomic.10.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6372394c16d128389d884bbd06068bd1933d3cc3 GIT binary patch literal 43 xcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>8oC(Oto#m&IQl9!m9%ESy*0|09<1p5F0 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.11.wasm b/internal/integration_test/spectest/threads/testdata/atomic.11.wasm new file mode 100644 index 0000000000000000000000000000000000000000..97c6a5d452bfcb28ab1462e79ca042b8e490e128 GIT binary patch literal 43 xcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>8oC(6hm#m&IQl9!m9%ESy*0|0AM1pNR2 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.12.wasm b/internal/integration_test/spectest/threads/testdata/atomic.12.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8d6c7982cf493e805dfc389baae235ddd3bade0b GIT binary patch literal 43 xcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>8oC&t7e#m&IQl9!m9%ESy*0|0At1pfd4 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.13.wasm b/internal/integration_test/spectest/threads/testdata/atomic.13.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cd71364c958b13d3763170f1881c0b6c66f5ec44 GIT binary patch literal 44 wcmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsHe)f8tCG+zebSd5O8HOw2$<0B{opDF6Tf literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.14.wasm b/internal/integration_test/spectest/threads/testdata/atomic.14.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0cd1e79a6e4d9b0224a88313641d56062619e33f GIT binary patch literal 44 ycmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsK<|V)!S)%)rgS#gdnpo65utR0IHUMFlJX literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.15.wasm b/internal/integration_test/spectest/threads/testdata/atomic.15.wasm new file mode 100644 index 0000000000000000000000000000000000000000..72d14d418b543a71ea00f9e4ed3bf9109c9d682a GIT binary patch literal 44 wcmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsHe)e^QJL+zebSd5O8HOw2$<0B|$~D*ylh literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.16.wasm b/internal/integration_test/spectest/threads/testdata/atomic.16.wasm new file mode 100644 index 0000000000000000000000000000000000000000..10a75acee912e639c18e32fac8b71e5469573d77 GIT binary patch literal 44 ycmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsK<|V)!S+$iU6O#gdnpo65utR0IHUX9X?* literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.17.wasm b/internal/integration_test/spectest/threads/testdata/atomic.17.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1ce5767151c620b92ed98bd18a5e0b94a8df36ae GIT binary patch literal 44 ycmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsK<|V)!S^#K6tK#gdnpo65utR0IHUh6OMH literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.18.wasm b/internal/integration_test/spectest/threads/testdata/atomic.18.wasm new file mode 100644 index 0000000000000000000000000000000000000000..dc118fd72fbac10823785306dec03eeefec1c184 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e{xI=Qrrw&EP08!sZ7j3RRDF71xx?{ literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.19.wasm b/internal/integration_test/spectest/threads/testdata/atomic.19.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2f960972b7b076538411d2677697b51f6f3371b0 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)!S|%pk?hz{Qf6n48MP3{(XGb;box literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.2.wasm b/internal/integration_test/spectest/threads/testdata/atomic.2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..fae839549b5df0879f6d78b172483cd59d397e48 GIT binary patch literal 265 zcmZ{ezYc;h5XQf2OHgohapMVyQKPdDVBDN(pe9W$HCR*@`sTz27i08>`~KW-ILMnJ z0JIPV^(dJ42m3;(Pds+r_UYetA0rB)+?|d z^>zcEEX5RiWY}?}NzjZ2Fr>55W^AC(zygGmsHIWt7@k6OmzP!rM#!paC@O7RyFk6; TL_M#nbgE*p(?;3W@&Bh6S$04a literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.20.wasm b/internal/integration_test/spectest/threads/testdata/atomic.20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cf50378e7246955494b0c8f74339aa809720056c GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e~OF@Qrrw&EP08!sZ7j3RRDFg1x^3} literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.21.wasm b/internal/integration_test/spectest/threads/testdata/atomic.21.wasm new file mode 100644 index 0000000000000000000000000000000000000000..20b222427971167b7e76d2784e07fbc342d6a375 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)&=b$RNedz{Qf6n48MP3{(XGb?OCC literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.22.wasm b/internal/integration_test/spectest/threads/testdata/atomic.22.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d392d3b7d44855f0eca4f6fe8feb7a999c4231ad GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)&=R#304Zz{Qf6n48MP3{(XGb_)el literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.23.wasm b/internal/integration_test/spectest/threads/testdata/atomic.23.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b62233d4becabe88bbb03d006d30f4aa301c9d57 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;f2vFjQrrw&EP08!sZ7j3RRDGf1ycY3 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.24.wasm b/internal/integration_test/spectest/threads/testdata/atomic.24.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0b65cb9e0e7ef88b5f507447c607f6a09743906a GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)&=V%pk?hz{Qf6n48MP3{(XGc0C1F literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.25.wasm b/internal/integration_test/spectest/threads/testdata/atomic.25.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c92c6fe0d9659347003ef50d3af3cf3d5497d9e4 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e;SMoQrrw&EP08!sZ7j3RRDG?1yuk5 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.26.wasm b/internal/integration_test/spectest/threads/testdata/atomic.26.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2419c530c56793e99ebf118df5cb10a29df171c4 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)&=U$RNedz{Qf6n48MP3{(XGc3}lr literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.27.wasm b/internal/integration_test/spectest/threads/testdata/atomic.27.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0a1ce7227d9b6bc81a19432caf43824d1c59a7ff GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)&=c#304Zz{Qf6n48MP3{(XGc7g?3 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.28.wasm b/internal/integration_test/spectest/threads/testdata/atomic.28.wasm new file mode 100644 index 0000000000000000000000000000000000000000..86cc77e50e41039d8d242d77e556860ad1cbf9e1 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e>zMIQrrw&EP08!sZ7j3RRDH>1zG?A literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.29.wasm b/internal/integration_test/spectest/threads/testdata/atomic.29.wasm new file mode 100644 index 0000000000000000000000000000000000000000..12f59aca023a30390e8b587ba917ea2ab5f323df GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)&=a%pk?hz{Qf6n48MP3{(XGcC-au literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.3.wasm b/internal/integration_test/spectest/threads/testdata/atomic.3.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9b42a7918b23edffb3e60bdaa2b926221e5ee4b2 GIT binary patch literal 756 zcmb7?$xZ@65Qe{=8B{7@nWD!{e)EJi-g&3C@eFiz0c)^P==#vqv2O7(xJ(sVl z|F3$IZYEz-1DL?Pfj=Aw|7%48BP;eD4C0LBo8eK2Cqf=GGp-sVmFLS|)TWZQA5v=B zOB>hAEGcVqvH9ejM~E^g@6S;t70j|*{Kb-F7e7?CBP@$ov4<`CReQ*yUsGInc^Tet zEN)Y|EtPL8?zp_TUB}|~l-pPNq2gng7x%=mxTnfJQ~7hn7cMXErDJiglzXl6H;Qjv zUfhvmamUKNQ~7(v4>mu)Y_T6*6<+p}^_P3k*0NQ&_wuKDwH_bA=VbcsP2>q0c|<+| z5ms1bjVLkVtdn4aO_HS8BF#1#vgF9KLxEk2lqgeSk1G4rsMDay0WA(`)1ga`Bl`RR Djp1Y4 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.30.wasm b/internal/integration_test/spectest/threads/testdata/atomic.30.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c490b347d74a0054796748ac22d4c6bc7c7d0fec GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;fBK9JQrrw&EP08!sZ7j3RRDIP1zZ3C literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.31.wasm b/internal/integration_test/spectest/threads/testdata/atomic.31.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ffe5ce4b5d1c0649663df628e53f38d39065d453 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)$ps$RNedz{Qf6n48MP3{(XGcGv}9 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.32.wasm b/internal/integration_test/spectest/threads/testdata/atomic.32.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3385de893e9674f5647c8a2a862701c40a54f2ff GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)$po#304Zz{Qf6n48MP3{(XGcKHQi literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.33.wasm b/internal/integration_test/spectest/threads/testdata/atomic.33.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4931ccd2cb687a4897dfdd155a5dcb29f808214f GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;f5uDO literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.39.wasm b/internal/integration_test/spectest/threads/testdata/atomic.39.wasm new file mode 100644 index 0000000000000000000000000000000000000000..30ec3c7d14bfb2b5058691889e4ddfc03f35e3af GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)$px%pk?hz{Qf6n48MP3{(XGccKMr literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.4.wasm b/internal/integration_test/spectest/threads/testdata/atomic.4.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b0ab85501245df1e2de429d4d87e0fa2dbdd3fbe GIT binary patch literal 50 zcmWN{K@I>B5JkcFH4$8rNZYY-f0?OuG42+is16oHE=tSKbf{U0XEbU&V|%c_exnBl Ao&W#< literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.40.wasm b/internal/integration_test/spectest/threads/testdata/atomic.40.wasm new file mode 100644 index 0000000000000000000000000000000000000000..415420c3e56b86d8ce54492df10d0b1b40d99a18 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;f3}PaQrrw&EP08!sZ7j3RRDL81!@2Q literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.41.wasm b/internal/integration_test/spectest/threads/testdata/atomic.41.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5ca00263428daaafbbdc984c795af4fc1f4c0d06 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)$pz$RNedz{Qf6n48MP3{(XGcg6*6 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.42.wasm b/internal/integration_test/spectest/threads/testdata/atomic.42.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9ee652ac29c28668553b0431bed3607bb4ce00e8 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)*C4#304Zz{Qf6n48MP3{(XGcjpCf literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.43.wasm b/internal/integration_test/spectest/threads/testdata/atomic.43.wasm new file mode 100644 index 0000000000000000000000000000000000000000..11c714c0ea7235cc9a8ee5b309e01296c400ffca GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e~wHHQrrw&EP08!sZ7j3RRDM71#bWV literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.44.wasm b/internal/integration_test/spectest/threads/testdata/atomic.44.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a02870a75a7ac42632c63a5c2618ac8a7d092faa GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)*C8%pk?hz{Qf6n48MP3{(XGco_w9 literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.45.wasm b/internal/integration_test/spectest/threads/testdata/atomic.45.wasm new file mode 100644 index 0000000000000000000000000000000000000000..84c1ae33df55db8294703f1cea6638511e0ebc97 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e=dv+Qrrw&EP08!sZ7j3RRDMg1#tiX literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.46.wasm b/internal/integration_test/spectest/threads/testdata/atomic.46.wasm new file mode 100644 index 0000000000000000000000000000000000000000..70dd2ceeaa7080e71298ea2a1b698a0d89e3b504 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)*CA$RNedz{Qf6n48MP3{(XGcs&Jl literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.47.wasm b/internal/integration_test/spectest/threads/testdata/atomic.47.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7a0bb72be08483f4371d66743f8c0264f989b5fd GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iP1V)*CI#304Zz{Qf6n48MP3{(XGcwPl| literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.48.wasm b/internal/integration_test/spectest/threads/testdata/atomic.48.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3ba78ffe3626cb335594b4220002cd36e64af93d GIT binary patch literal 47 xcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD(;e;!N>Qrrw&EP08!sZ7j3bpV2c1-k$M literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.49.wasm b/internal/integration_test/spectest/threads/testdata/atomic.49.wasm new file mode 100644 index 0000000000000000000000000000000000000000..34627f5afda8e7538d2e8c151b4101c132092e7f GIT binary patch literal 47 zcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHG00>Xcu%nVZ83|uUEiMgpv%s_Pjg3blM literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.5.wasm b/internal/integration_test/spectest/threads/testdata/atomic.5.wasm new file mode 100644 index 0000000000000000000000000000000000000000..92fc37f7b3aef3facf4db38bd5296692d24d5b05 GIT binary patch literal 45 xcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^e?;e+*0vQrrw&EP08!sZ7j3RRD971ug&p literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.50.wasm b/internal/integration_test/spectest/threads/testdata/atomic.50.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9cb7d1d911910c80bb147d402f9049ea1aaabe0c GIT binary patch literal 47 xcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD(;f8LA?Qrrw&EP08!sZ7j3bpV2<1-$?O literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.51.wasm b/internal/integration_test/spectest/threads/testdata/atomic.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..16307598f08f9a14ae739c9ef80501cdb4584eda GIT binary patch literal 47 zcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHG00>Xd3j0{rT3|uUEiMgpv%s_Pjg7O8y literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.52.wasm b/internal/integration_test/spectest/threads/testdata/atomic.52.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8f89610dec8785920a8c7fab53ecb142d2c39f99 GIT binary patch literal 47 zcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHG00>XcOObk-o3|uUEiMgpv%s_PjgA)bA literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.6.wasm b/internal/integration_test/spectest/threads/testdata/atomic.6.wasm new file mode 100644 index 0000000000000000000000000000000000000000..040840d250c09821028cbbe2f8c5d8a8e5cf074e GIT binary patch literal 47 zcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&SCx(BFObk-o3|uUEiMgpv%s_Pjec%Ok literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.7.wasm b/internal/integration_test/spectest/threads/testdata/atomic.7.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0e047d8f9e28ac8950b604e14d3b2b94ef1c2aa4 GIT binary patch literal 47 zcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHG00>Xbx%nVZ83|uUEiMgpv%s_PjeisFJ literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.8.wasm b/internal/integration_test/spectest/threads/testdata/atomic.8.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a4a26d28aa2b7c0c858aead55bbbe212241d0415 GIT binary patch literal 43 xcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>8oC&0uY#m&IQl9!m9%ESy*0|09c1o;2} literal 0 HcmV?d00001 diff --git a/internal/integration_test/spectest/threads/testdata/atomic.9.wasm b/internal/integration_test/spectest/threads/testdata/atomic.9.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0733777c3e03f25c30acbf9695e313d7d6990500 GIT binary patch literal 43 xcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>8oC&