summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lit/exec/strings.wast19
-rw-r--r--test/lit/string.as_wtf16.wast86
2 files changed, 83 insertions, 22 deletions
diff --git a/test/lit/exec/strings.wast b/test/lit/exec/strings.wast
index ca77f9882..f0c659d19 100644
--- a/test/lit/exec/strings.wast
+++ b/test/lit/exec/strings.wast
@@ -284,6 +284,21 @@
)
)
+ ;; CHECK: [fuzz-exec] calling slice-ordering
+ ;; CHECK-NEXT: [fuzz-exec] note result: slice-ordering => string("h")
+ (func $slice-ordering (export "slice-ordering") (result (ref string))
+ (local $0 i32)
+ (stringview_wtf16.slice
+ (string.const "hello")
+ ;; If we were to defer emitting this get in the binary writer, it would
+ ;; end up with the wrong value.
+ (local.get $0)
+ (local.tee $0
+ (i32.const 1)
+ )
+ )
+ )
+
;; CHECK: [fuzz-exec] calling new_empty
;; CHECK-NEXT: [fuzz-exec] note result: new_empty => string("")
(func $new_empty (export "new_empty") (result stringref)
@@ -536,6 +551,9 @@
;; CHECK: [fuzz-exec] calling slice-big
;; CHECK-NEXT: [fuzz-exec] note result: slice-big => string("defgh")
+;; CHECK: [fuzz-exec] calling slice-ordering
+;; CHECK-NEXT: [fuzz-exec] note result: slice-ordering => string("h")
+
;; CHECK: [fuzz-exec] calling new_empty
;; CHECK-NEXT: [fuzz-exec] note result: new_empty => string("")
@@ -620,6 +638,7 @@
;; CHECK-NEXT: [fuzz-exec] comparing new_wtf16_array
;; CHECK-NEXT: [fuzz-exec] comparing slice
;; CHECK-NEXT: [fuzz-exec] comparing slice-big
+;; CHECK-NEXT: [fuzz-exec] comparing slice-ordering
;; CHECK-NEXT: [fuzz-exec] comparing slice-unicode
;; CHECK-NEXT: [fuzz-exec] comparing string.from_code_point
;; CHECK-NEXT: [fuzz-exec] comparing string.measure
diff --git a/test/lit/string.as_wtf16.wast b/test/lit/string.as_wtf16.wast
index 97a5d9055..916e11d39 100644
--- a/test/lit/string.as_wtf16.wast
+++ b/test/lit/string.as_wtf16.wast
@@ -185,38 +185,59 @@
;; RTRIP: (func $slice-start-get (type $0) (result stringref)
;; RTRIP-NEXT: (local $start i32)
;; RTRIP-NEXT: (local $1 i32)
- ;; RTRIP-NEXT: (local $2 (ref string))
+ ;; RTRIP-NEXT: (local $2 i32)
+ ;; RTRIP-NEXT: (local $3 i32)
+ ;; RTRIP-NEXT: (local $4 (ref string))
;; RTRIP-NEXT: (stringview_wtf16.slice
;; RTRIP-NEXT: (block (result (ref string))
- ;; RTRIP-NEXT: (local.set $2
+ ;; RTRIP-NEXT: (local.set $4
;; RTRIP-NEXT: (string.const "abc")
;; RTRIP-NEXT: )
;; RTRIP-NEXT: (local.set $1
- ;; RTRIP-NEXT: (i32.const 2)
+ ;; RTRIP-NEXT: (block (result i32)
+ ;; RTRIP-NEXT: (local.set $3
+ ;; RTRIP-NEXT: (local.get $start)
+ ;; RTRIP-NEXT: )
+ ;; RTRIP-NEXT: (local.set $2
+ ;; RTRIP-NEXT: (i32.const 2)
+ ;; RTRIP-NEXT: )
+ ;; RTRIP-NEXT: (local.get $3)
+ ;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
- ;; RTRIP-NEXT: (local.get $2)
+ ;; RTRIP-NEXT: (local.get $4)
;; RTRIP-NEXT: )
- ;; RTRIP-NEXT: (local.get $start)
;; RTRIP-NEXT: (local.get $1)
+ ;; RTRIP-NEXT: (local.get $2)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
;; RRTRP: (func $slice-start-get (type $0) (result stringref)
;; RRTRP-NEXT: (local $start i32)
;; RRTRP-NEXT: (local $1 i32)
- ;; RRTRP-NEXT: (local $2 (ref string))
- ;; RRTRP-NEXT: (local $3 (ref string))
+ ;; RRTRP-NEXT: (local $2 i32)
+ ;; RRTRP-NEXT: (local $3 i32)
+ ;; RRTRP-NEXT: (local $4 (ref string))
+ ;; RRTRP-NEXT: (local $5 i32)
+ ;; RRTRP-NEXT: (local $6 (ref string))
;; RRTRP-NEXT: (stringview_wtf16.slice
;; RRTRP-NEXT: (block (result (ref string))
- ;; RRTRP-NEXT: (local.set $3
+ ;; RRTRP-NEXT: (local.set $6
;; RRTRP-NEXT: (string.const "abc")
;; RRTRP-NEXT: )
;; RRTRP-NEXT: (local.set $1
- ;; RRTRP-NEXT: (i32.const 2)
+ ;; RRTRP-NEXT: (block (result i32)
+ ;; RRTRP-NEXT: (local.set $5
+ ;; RRTRP-NEXT: (local.get $start)
+ ;; RRTRP-NEXT: )
+ ;; RRTRP-NEXT: (local.set $2
+ ;; RRTRP-NEXT: (i32.const 2)
+ ;; RRTRP-NEXT: )
+ ;; RRTRP-NEXT: (local.get $5)
+ ;; RRTRP-NEXT: )
;; RRTRP-NEXT: )
- ;; RRTRP-NEXT: (local.get $3)
+ ;; RRTRP-NEXT: (local.get $6)
;; RRTRP-NEXT: )
- ;; RRTRP-NEXT: (local.get $start)
;; RRTRP-NEXT: (local.get $1)
+ ;; RRTRP-NEXT: (local.get $2)
;; RRTRP-NEXT: )
;; RRTRP-NEXT: )
(func $slice-start-get (result stringref)
@@ -240,38 +261,59 @@
;; RTRIP: (func $slice-end-get (type $0) (result stringref)
;; RTRIP-NEXT: (local $end i32)
;; RTRIP-NEXT: (local $1 i32)
- ;; RTRIP-NEXT: (local $2 (ref string))
+ ;; RTRIP-NEXT: (local $2 i32)
+ ;; RTRIP-NEXT: (local $3 i32)
+ ;; RTRIP-NEXT: (local $4 (ref string))
;; RTRIP-NEXT: (stringview_wtf16.slice
;; RTRIP-NEXT: (block (result (ref string))
- ;; RTRIP-NEXT: (local.set $2
+ ;; RTRIP-NEXT: (local.set $4
;; RTRIP-NEXT: (string.const "abc")
;; RTRIP-NEXT: )
;; RTRIP-NEXT: (local.set $1
- ;; RTRIP-NEXT: (i32.const 1)
+ ;; RTRIP-NEXT: (block (result i32)
+ ;; RTRIP-NEXT: (local.set $3
+ ;; RTRIP-NEXT: (i32.const 1)
+ ;; RTRIP-NEXT: )
+ ;; RTRIP-NEXT: (local.set $2
+ ;; RTRIP-NEXT: (local.get $end)
+ ;; RTRIP-NEXT: )
+ ;; RTRIP-NEXT: (local.get $3)
+ ;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
- ;; RTRIP-NEXT: (local.get $2)
+ ;; RTRIP-NEXT: (local.get $4)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: (local.get $1)
- ;; RTRIP-NEXT: (local.get $end)
+ ;; RTRIP-NEXT: (local.get $2)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
;; RRTRP: (func $slice-end-get (type $0) (result stringref)
;; RRTRP-NEXT: (local $end i32)
;; RRTRP-NEXT: (local $1 i32)
- ;; RRTRP-NEXT: (local $2 (ref string))
- ;; RRTRP-NEXT: (local $3 (ref string))
+ ;; RRTRP-NEXT: (local $2 i32)
+ ;; RRTRP-NEXT: (local $3 i32)
+ ;; RRTRP-NEXT: (local $4 (ref string))
+ ;; RRTRP-NEXT: (local $5 i32)
+ ;; RRTRP-NEXT: (local $6 (ref string))
;; RRTRP-NEXT: (stringview_wtf16.slice
;; RRTRP-NEXT: (block (result (ref string))
- ;; RRTRP-NEXT: (local.set $3
+ ;; RRTRP-NEXT: (local.set $6
;; RRTRP-NEXT: (string.const "abc")
;; RRTRP-NEXT: )
;; RRTRP-NEXT: (local.set $1
- ;; RRTRP-NEXT: (i32.const 1)
+ ;; RRTRP-NEXT: (block (result i32)
+ ;; RRTRP-NEXT: (local.set $5
+ ;; RRTRP-NEXT: (i32.const 1)
+ ;; RRTRP-NEXT: )
+ ;; RRTRP-NEXT: (local.set $2
+ ;; RRTRP-NEXT: (local.get $end)
+ ;; RRTRP-NEXT: )
+ ;; RRTRP-NEXT: (local.get $5)
+ ;; RRTRP-NEXT: )
;; RRTRP-NEXT: )
- ;; RRTRP-NEXT: (local.get $3)
+ ;; RRTRP-NEXT: (local.get $6)
;; RRTRP-NEXT: )
;; RRTRP-NEXT: (local.get $1)
- ;; RRTRP-NEXT: (local.get $end)
+ ;; RRTRP-NEXT: (local.get $2)
;; RRTRP-NEXT: )
;; RRTRP-NEXT: )
(func $slice-end-get (result stringref)