summaryrefslogtreecommitdiff
path: root/test/lit/exec
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2024-03-14 16:32:00 -0700
committerGitHub <noreply@github.com>2024-03-14 16:32:00 -0700
commit419b65ce2cb145dc781a32a565bb75496b7ac668 (patch)
tree95b72b462b7d50b8a7e3dab2246a5584295a0318 /test/lit/exec
parent17823cdc7f639e889b1be8e028492cd2cd835c43 (diff)
downloadbinaryen-419b65ce2cb145dc781a32a565bb75496b7ac668.tar.gz
binaryen-419b65ce2cb145dc781a32a565bb75496b7ac668.tar.bz2
binaryen-419b65ce2cb145dc781a32a565bb75496b7ac668.zip
[Strings] Implement string.encode_wtf16_array (#6402)
Diffstat (limited to 'test/lit/exec')
-rw-r--r--test/lit/exec/strings.wast68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/lit/exec/strings.wast b/test/lit/exec/strings.wast
index 711d2e36a..706602b1c 100644
--- a/test/lit/exec/strings.wast
+++ b/test/lit/exec/strings.wast
@@ -4,8 +4,11 @@
(module
(type $array16 (array (mut i16)))
+
(memory 1 1)
+ (import "fuzzing-support" "log" (func $log (param i32)))
+
;; CHECK: [fuzz-exec] calling new_wtf16_array
;; CHECK-NEXT: [fuzz-exec] note result: new_wtf16_array => string("ello")
(func $new_wtf16_array (export "new_wtf16_array") (result stringref)
@@ -185,6 +188,62 @@
)
)
)
+
+ ;; CHECK: [fuzz-exec] calling encode
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 3]
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 0]
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 97]
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 98]
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 99]
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 0]
+ (func $encode (export "encode")
+ (local $array16 (ref $array16))
+ (local.set $array16
+ (array.new_default $array16
+ (i32.const 10)
+ )
+ )
+ ;; Log out that we wrote 3 things.
+ (call $log
+ (string.encode_wtf16_array
+ (string.const "abc")
+ (local.get $array16)
+ (i32.const 4)
+ )
+ )
+ ;; We wrote 3 things at offset 4. Log out the values at 3,4,5,6,7 (the first
+ ;; and last should be 0, and "abc" in between).
+ (call $log
+ (array.get $array16
+ (local.get $array16)
+ (i32.const 3)
+ )
+ )
+ (call $log
+ (array.get $array16
+ (local.get $array16)
+ (i32.const 4)
+ )
+ )
+ (call $log
+ (array.get $array16
+ (local.get $array16)
+ (i32.const 5)
+ )
+ )
+ (call $log
+ (array.get $array16
+ (local.get $array16)
+ (i32.const 6)
+ )
+ )
+ (call $log
+ (array.get $array16
+ (local.get $array16)
+ (i32.const 7)
+ )
+ )
+ )
)
;; CHECK: [fuzz-exec] calling new_wtf16_array
;; CHECK-NEXT: [fuzz-exec] note result: new_wtf16_array => string("ello")
@@ -242,6 +301,14 @@
;; CHECK: [fuzz-exec] calling get_length
;; CHECK-NEXT: [fuzz-exec] note result: get_length => 7
+
+;; CHECK: [fuzz-exec] calling encode
+;; CHECK-NEXT: [LoggingExternalInterface logging 3]
+;; CHECK-NEXT: [LoggingExternalInterface logging 0]
+;; CHECK-NEXT: [LoggingExternalInterface logging 97]
+;; CHECK-NEXT: [LoggingExternalInterface logging 98]
+;; CHECK-NEXT: [LoggingExternalInterface logging 99]
+;; CHECK-NEXT: [LoggingExternalInterface logging 0]
;; CHECK-NEXT: [fuzz-exec] comparing compare.1
;; CHECK-NEXT: [fuzz-exec] comparing compare.10
;; CHECK-NEXT: [fuzz-exec] comparing compare.2
@@ -253,6 +320,7 @@
;; CHECK-NEXT: [fuzz-exec] comparing compare.8
;; CHECK-NEXT: [fuzz-exec] comparing compare.9
;; CHECK-NEXT: [fuzz-exec] comparing const
+;; CHECK-NEXT: [fuzz-exec] comparing encode
;; CHECK-NEXT: [fuzz-exec] comparing eq.1
;; CHECK-NEXT: [fuzz-exec] comparing eq.2
;; CHECK-NEXT: [fuzz-exec] comparing eq.3