summaryrefslogtreecommitdiff
path: root/test/example/c-api-kitchen-sink.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/example/c-api-kitchen-sink.c')
-rw-r--r--test/example/c-api-kitchen-sink.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 251aa3b90..f333da4a2 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -270,6 +270,13 @@ void test_types() {
BinaryenTypeExpand(dataref, &valueType);
assert(valueType == dataref);
+ BinaryenType arrayref = BinaryenTypeArrayref();
+ printf("BinaryenTypeArrayref: (ptr)\n");
+ assert(arrayref == BinaryenTypeArrayref());
+ assert(BinaryenTypeArity(arrayref) == 1);
+ BinaryenTypeExpand(arrayref, &valueType);
+ assert(valueType == arrayref);
+
BinaryenType stringref = BinaryenTypeStringref();
printf("BinaryenTypeStringref: (ptr)\n");
assert(BinaryenTypeArity(stringref) == 1);
@@ -294,6 +301,24 @@ void test_types() {
BinaryenTypeExpand(stringview_iter_, &valueType);
assert(valueType == stringview_iter_);
+ BinaryenType nullref = BinaryenTypeNullref();
+ printf("BinaryenTypeNullref: (ptr)\n");
+ assert(BinaryenTypeArity(nullref) == 1);
+ BinaryenTypeExpand(nullref, &valueType);
+ assert(valueType == nullref);
+
+ BinaryenType nullexternref = BinaryenTypeNullExternref();
+ printf("BinaryenTypeNullExternref: (ptr)\n");
+ assert(BinaryenTypeArity(nullexternref) == 1);
+ BinaryenTypeExpand(nullexternref, &valueType);
+ assert(valueType == nullexternref);
+
+ BinaryenType nullfuncref = BinaryenTypeNullFuncref();
+ printf("BinaryenTypeNullFuncref: (ptr)\n");
+ assert(BinaryenTypeArity(nullfuncref) == 1);
+ BinaryenTypeExpand(nullfuncref, &valueType);
+ assert(valueType == nullfuncref);
+
printf("BinaryenTypeAuto: %zd\n", BinaryenTypeAuto());
BinaryenType pair[] = {i32, i32};
@@ -324,6 +349,7 @@ void test_types() {
printf("BinaryenHeapTypeEq: %zd\n", BinaryenHeapTypeEq());
printf("BinaryenHeapTypeI31: %zd\n", BinaryenHeapTypeI31());
printf("BinaryenHeapTypeData: %zd\n", BinaryenHeapTypeData());
+ printf("BinaryenHeapTypeArray: %zd\n", BinaryenHeapTypeArray());
printf("BinaryenHeapTypeString: %zd\n", BinaryenHeapTypeString());
printf("BinaryenHeapTypeStringviewWTF8: %zd\n",
BinaryenHeapTypeStringviewWTF8());
@@ -331,6 +357,14 @@ void test_types() {
BinaryenHeapTypeStringviewWTF16());
printf("BinaryenHeapTypeStringviewIter: %zd\n",
BinaryenHeapTypeStringviewIter());
+ printf("BinaryenHeapTypeNone: %zd\n", BinaryenHeapTypeNone());
+ printf("BinaryenHeapTypeNoext: %zd\n", BinaryenHeapTypeNoext());
+ printf("BinaryenHeapTypeNofunc: %zd\n", BinaryenHeapTypeNofunc());
+
+ assert(!BinaryenHeapTypeIsBottom(BinaryenHeapTypeExt()));
+ assert(BinaryenHeapTypeIsBottom(BinaryenHeapTypeNoext()));
+ assert(BinaryenHeapTypeGetBottom(BinaryenHeapTypeExt()) ==
+ BinaryenHeapTypeNoext());
BinaryenHeapType eq = BinaryenTypeGetHeapType(eqref);
assert(eq == BinaryenHeapTypeEq());