summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lit/exec/strings.wast86
1 files changed, 86 insertions, 0 deletions
diff --git a/test/lit/exec/strings.wast b/test/lit/exec/strings.wast
index c67436c98..0f3183ac6 100644
--- a/test/lit/exec/strings.wast
+++ b/test/lit/exec/strings.wast
@@ -414,6 +414,64 @@
;; Concatenating these surrogates creates '𐍈'.
(string.concat (string.const "\ED\A0\80") (string.const "\ED\BD\88"))
)
+
+ ;; CHECK: [fuzz-exec] calling string.from_code_point
+ ;; CHECK-NEXT: [fuzz-exec] note result: string.from_code_point => string("A")
+ (func $string.from_code_point (export "string.from_code_point") (result stringref)
+ (string.from_code_point
+ (i32.const 65)
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling unsigned_code_point
+ ;; CHECK-NEXT: [fuzz-exec] note result: unsigned_code_point => string("\u0093")
+ (func $unsigned_code_point (export "unsigned_code_point") (result stringref)
+ (string.from_code_point
+ ;; This must be interpreted as unsigned, that is, in the escaped output
+ ;; the top byte is 0.
+ (i32.const 147)
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling weird_code_point
+ ;; CHECK-NEXT: [fuzz-exec] note result: weird_code_point => string("\u03e8")
+ (func $weird_code_point (export "weird_code_point") (result stringref)
+ (string.from_code_point
+ (i32.const 0x3e8)
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling isolated_high_code_point
+ ;; CHECK-NEXT: [fuzz-exec] note result: isolated_high_code_point => string("\ud800")
+ (func $isolated_high_code_point (export "isolated_high_code_point") (result stringref)
+ (string.from_code_point
+ (i32.const 0xD800)
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling isolated_low_code_point
+ ;; CHECK-NEXT: [fuzz-exec] note result: isolated_low_code_point => string("\udc00")
+ (func $isolated_low_code_point (export "isolated_low_code_point") (result stringref)
+ (string.from_code_point
+ (i32.const 0xDC00)
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling surrogate_pair_code_point
+ ;; CHECK-NEXT: [fuzz-exec] note result: surrogate_pair_code_point => string("\u286c")
+ (func $surrogate_pair_code_point (export "surrogate_pair_code_point") (result stringref)
+ (string.from_code_point
+ (i32.const 0x286c) ;; 𐍈
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling invalid_code_point
+ ;; CHECK-NEXT: [trap invalid code point]
+ (func $invalid_code_point (export "invalid_code_point") (result stringref)
+ (string.from_code_point
+ (i32.const -83)
+ )
+ )
)
;; CHECK: [fuzz-exec] calling new_wtf16_array
;; CHECK-NEXT: [fuzz-exec] note result: new_wtf16_array => string("ello")
@@ -518,6 +576,27 @@
;; CHECK: [fuzz-exec] calling concat-surrogates
;; CHECK-NEXT: [fuzz-exec] note result: concat-surrogates => string("\ud800\udf48")
+
+;; CHECK: [fuzz-exec] calling string.from_code_point
+;; CHECK-NEXT: [fuzz-exec] note result: string.from_code_point => string("A")
+
+;; CHECK: [fuzz-exec] calling unsigned_code_point
+;; CHECK-NEXT: [fuzz-exec] note result: unsigned_code_point => string("\u0093")
+
+;; CHECK: [fuzz-exec] calling weird_code_point
+;; CHECK-NEXT: [fuzz-exec] note result: weird_code_point => string("\u03e8")
+
+;; CHECK: [fuzz-exec] calling isolated_high_code_point
+;; CHECK-NEXT: [fuzz-exec] note result: isolated_high_code_point => string("\ud800")
+
+;; CHECK: [fuzz-exec] calling isolated_low_code_point
+;; CHECK-NEXT: [fuzz-exec] note result: isolated_low_code_point => string("\udc00")
+
+;; CHECK: [fuzz-exec] calling surrogate_pair_code_point
+;; CHECK-NEXT: [fuzz-exec] note result: surrogate_pair_code_point => string("\u286c")
+
+;; CHECK: [fuzz-exec] calling invalid_code_point
+;; CHECK-NEXT: [trap invalid code point]
;; CHECK-NEXT: [fuzz-exec] comparing compare.1
;; CHECK-NEXT: [fuzz-exec] comparing compare.10
;; CHECK-NEXT: [fuzz-exec] comparing compare.2
@@ -540,6 +619,9 @@
;; CHECK-NEXT: [fuzz-exec] comparing eq.5
;; CHECK-NEXT: [fuzz-exec] comparing get_codeunit
;; CHECK-NEXT: [fuzz-exec] comparing get_length
+;; CHECK-NEXT: [fuzz-exec] comparing invalid_code_point
+;; CHECK-NEXT: [fuzz-exec] comparing isolated_high_code_point
+;; CHECK-NEXT: [fuzz-exec] comparing isolated_low_code_point
;; CHECK-NEXT: [fuzz-exec] comparing new_2
;; CHECK-NEXT: [fuzz-exec] comparing new_4
;; CHECK-NEXT: [fuzz-exec] comparing new_empty
@@ -551,3 +633,7 @@
;; CHECK-NEXT: [fuzz-exec] comparing slice
;; CHECK-NEXT: [fuzz-exec] comparing slice-big
;; CHECK-NEXT: [fuzz-exec] comparing slice-unicode
+;; CHECK-NEXT: [fuzz-exec] comparing string.from_code_point
+;; CHECK-NEXT: [fuzz-exec] comparing surrogate_pair_code_point
+;; CHECK-NEXT: [fuzz-exec] comparing unsigned_code_point
+;; CHECK-NEXT: [fuzz-exec] comparing weird_code_point