Skip to content

Commit b71b29e

Browse files
Port threaded tests from acquire/release proposal (#9107)
Port changes from WebAssembly/acquire-release-atomics#21 and WebAssembly/acquire-release-atomics#23. After this PR the test matches the test from the proposal exactly. Once the acquire/release atomics proposal is in https://github.com/WebAssembly/testsuite, we won't have to copy this manually anymore. * Add missing `(register ...)` statements within `thread` blocks * Use unique names for threads and memories
1 parent 2746295 commit b71b29e

1 file changed

Lines changed: 52 additions & 30 deletions

File tree

‎test/spec/acquire-release-atomics/threaded.wast‎

Lines changed: 52 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
;; Interleaving stores
2-
(module $Mem
2+
(module $Mem1
33
(memory (export "shared") 1 1 shared)
44
)
5-
(register "mem" $Mem)
5+
(register "mem" $Mem1)
66

7-
(thread $T1 (shared (module $Mem))
7+
(thread $T1 (shared (module $Mem1))
8+
(register "mem" $Mem1)
89
(module
910
(memory (import "mem" "shared") 1 1 shared)
1011
(func (export "run")
@@ -17,7 +18,8 @@
1718
(invoke "run")
1819
)
1920

20-
(thread $T2 (shared (module $Mem))
21+
(thread $T2 (shared (module $Mem1))
22+
(register "mem" $Mem1)
2123
(module
2224
(memory (import "mem" "shared") 1 1 shared)
2325
(func (export "run")
@@ -51,12 +53,14 @@
5153
)
5254

5355
;; Critical section guarding an unordered memory access
54-
(module $Mem
56+
(module $Mem2
5557
(memory (export "shared") 1 1 shared)
5658
)
57-
(register "mem" $Mem)
59+
(register "mem" $Mem2)
60+
61+
(thread $write (shared (module $Mem2))
62+
(register "mem" $Mem2)
5863

59-
(thread $writer (shared (module $Mem))
6064
(module
6165
(memory (import "mem" "shared") 1 1 shared)
6266
(func (export "run")
@@ -69,7 +73,9 @@
6973
(invoke "run")
7074
)
7175

72-
(thread $reader (shared (module $Mem))
76+
(thread $read (shared (module $Mem2))
77+
(register "mem" $Mem2)
78+
7379
(module
7480
(memory (import "mem" "shared") 1 1 shared)
7581
(func (export "run")
@@ -83,8 +89,8 @@
8389
(invoke "run")
8490
)
8591

86-
(wait $writer)
87-
(wait $reader)
92+
(wait $write)
93+
(wait $read)
8894

8995
(module
9096
(memory (import "mem" "shared") 1 1 shared)
@@ -104,12 +110,14 @@
104110
)
105111

106112
;; Similar to above, critical section guarding a flag
107-
(module $Mem
113+
(module $Mem3
108114
(memory (export "shared") 1 1 shared)
109115
)
110-
(register "mem" $Mem)
116+
(register "mem" $Mem3)
117+
118+
(thread $write_flag (shared (module $Mem3))
119+
(register "mem" $Mem3)
111120

112-
(thread $writer (shared (module $Mem))
113121
(module
114122
(memory (import "mem" "shared") 1 1 shared)
115123
(func (export "run")
@@ -130,7 +138,9 @@
130138
(invoke "run")
131139
)
132140

133-
(thread $reader (shared (module $Mem))
141+
(thread $read_flag (shared (module $Mem3))
142+
(register "mem" $Mem3)
143+
134144
(module
135145
(memory (import "mem" "shared") 1 1 shared)
136146
(func (export "run")
@@ -149,8 +159,8 @@
149159
(invoke "run")
150160
)
151161

152-
(wait $writer)
153-
(wait $reader)
162+
(wait $write_flag)
163+
(wait $read_flag)
154164

155165
(module
156166
(memory (import "mem" "shared") 1 1 shared)
@@ -170,15 +180,17 @@
170180
)
171181

172182
;; Spinlock
173-
(module $Mem
183+
(module $Mem4
174184
;; Address 0 - lock
175185
;; Address 4 - payload
176186
(memory (export "shared") 1 1 shared)
177187
)
178-
(register "mem" $Mem)
188+
(register "mem" $Mem4)
179189

180190
;; Add 1 to the counter atomically
181-
(thread $addOne (shared (module $Mem))
191+
(thread $addOne (shared (module $Mem4))
192+
(register "mem" $Mem4)
193+
182194
(module
183195
(memory (import "mem" "shared") 1 1 shared)
184196

@@ -213,7 +225,9 @@
213225
)
214226

215227
;; Add 10 to the counter atomically
216-
(thread $addTen (shared (module $Mem))
228+
(thread $addTen (shared (module $Mem4))
229+
(register "mem" $Mem4)
230+
217231
(module
218232
(memory (import "mem" "shared") 1 1 shared)
219233

@@ -267,12 +281,14 @@
267281
)
268282

269283
;; independent reads of independent writes
270-
(module $Mem
284+
(module $Mem5
271285
(memory (export "shared") 1 1 shared)
272286
)
273-
(register "mem" $Mem)
287+
(register "mem" $Mem5)
288+
289+
(thread $writeX (shared (module $Mem5))
290+
(register "mem" $Mem5)
274291

275-
(thread $writerX (shared (module $Mem))
276292
(module
277293
(memory (import "mem" "shared") 1 1 shared)
278294
(func (export "run")
@@ -283,7 +299,9 @@
283299
(invoke "run")
284300
)
285301

286-
(thread $writerY (shared (module $Mem))
302+
(thread $writeY (shared (module $Mem5))
303+
(register "mem" $Mem5)
304+
287305
(module
288306
(memory (import "mem" "shared") 1 1 shared)
289307
(func (export "run")
@@ -294,7 +312,9 @@
294312
(invoke "run")
295313
)
296314

297-
(thread $reader1 (shared (module $Mem))
315+
(thread $read1 (shared (module $Mem5))
316+
(register "mem" $Mem5)
317+
298318
(module
299319
(memory (import "mem" "shared") 1 1 shared)
300320
(func (export "run")
@@ -307,7 +327,9 @@
307327
(invoke "run")
308328
)
309329

310-
(thread $reader2 (shared (module $Mem))
330+
(thread $read2 (shared (module $Mem5))
331+
(register "mem" $Mem5)
332+
311333
(module
312334
(memory (import "mem" "shared") 1 1 shared)
313335
(func (export "run")
@@ -320,10 +342,10 @@
320342
(invoke "run")
321343
)
322344

323-
(wait $writerX)
324-
(wait $writerY)
325-
(wait $reader1)
326-
(wait $reader2)
345+
(wait $writeX)
346+
(wait $writeY)
347+
(wait $read1)
348+
(wait $read2)
327349

328350
(module
329351
(memory (import "mem" "shared") 1 1 shared)

0 commit comments

Comments
 (0)