aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/src/SpecTestsuites
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/SpecTestsuites')
-rw-r--r--tests/src/SpecTestsuites/SpecTestsuiteBase.php19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/src/SpecTestsuites/SpecTestsuiteBase.php b/tests/src/SpecTestsuites/SpecTestsuiteBase.php
index 5b3f64f..36eedec 100644
--- a/tests/src/SpecTestsuites/SpecTestsuiteBase.php
+++ b/tests/src/SpecTestsuites/SpecTestsuiteBase.php
@@ -8,6 +8,8 @@ use Nsfisis\Waddiwasi\BinaryFormat\Decoder;
use Nsfisis\Waddiwasi\BinaryFormat\InvalidBinaryFormatException;
use Nsfisis\Waddiwasi\Execution\Ref;
use Nsfisis\Waddiwasi\Execution\Refs\RefExtern;
+use Nsfisis\Waddiwasi\Execution\Refs\RefFunc;
+use Nsfisis\Waddiwasi\Execution\Refs\RefNull;
use Nsfisis\Waddiwasi\Execution\Runtime;
use Nsfisis\Waddiwasi\Execution\StackOverflowException;
use Nsfisis\Waddiwasi\Execution\Store;
@@ -213,6 +215,12 @@ abstract class SpecTestsuiteBase extends TestCase
is_nan($actualResult),
"result $i is not NaN" . $message,
);
+ } elseif ($expectedValue instanceof RefNull) {
+ $this->assertInstanceOf(
+ RefNull::class,
+ $actualResult,
+ "result $i is not a null" . $message,
+ );
} elseif ($expectedValue instanceof RefExtern) {
$this->assertInstanceOf(
RefExtern::class,
@@ -224,6 +232,17 @@ abstract class SpecTestsuiteBase extends TestCase
$actualResult->addr,
"result $i mismatch" . $message,
);
+ } elseif ($expectedValue instanceof RefFunc) {
+ $this->assertInstanceOf(
+ RefFunc::class,
+ $actualResult,
+ "result $i is not an funcref" . $message,
+ );
+ $this->assertSame(
+ $expectedValue->addr,
+ $actualResult->addr,
+ "result $i mismatch" . $message,
+ );
} else {
$this->assertSame(
$expectedValue,