aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/fixtures/spec_testsuites/core/forward.wast
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-03-16 20:41:50 +0900
committernsfisis <nsfisis@gmail.com>2024-03-16 20:41:50 +0900
commit3d2d891d7e1492d179cd8da7a618fbdd5efcca2c (patch)
tree45367f35d98af1125a2197b3bc3dbc35700128d7 /tests/fixtures/spec_testsuites/core/forward.wast
parent9b45796547c8022b98a9254320323d72aecd81cb (diff)
downloadphp-waddiwasi-3d2d891d7e1492d179cd8da7a618fbdd5efcca2c.tar.gz
php-waddiwasi-3d2d891d7e1492d179cd8da7a618fbdd5efcca2c.tar.zst
php-waddiwasi-3d2d891d7e1492d179cd8da7a618fbdd5efcca2c.zip
feat: add spec testsuites
Diffstat (limited to 'tests/fixtures/spec_testsuites/core/forward.wast')
-rw-r--r--tests/fixtures/spec_testsuites/core/forward.wast20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/fixtures/spec_testsuites/core/forward.wast b/tests/fixtures/spec_testsuites/core/forward.wast
new file mode 100644
index 0000000..7bb3770
--- /dev/null
+++ b/tests/fixtures/spec_testsuites/core/forward.wast
@@ -0,0 +1,20 @@
+(module
+ (func $even (export "even") (param $n i32) (result i32)
+ (if (result i32) (i32.eq (local.get $n) (i32.const 0))
+ (then (i32.const 1))
+ (else (call $odd (i32.sub (local.get $n) (i32.const 1))))
+ )
+ )
+
+ (func $odd (export "odd") (param $n i32) (result i32)
+ (if (result i32) (i32.eq (local.get $n) (i32.const 0))
+ (then (i32.const 0))
+ (else (call $even (i32.sub (local.get $n) (i32.const 1))))
+ )
+ )
+)
+
+(assert_return (invoke "even" (i32.const 13)) (i32.const 0))
+(assert_return (invoke "even" (i32.const 20)) (i32.const 1))
+(assert_return (invoke "odd" (i32.const 13)) (i32.const 1))
+(assert_return (invoke "odd" (i32.const 20)) (i32.const 0))