diff options
author | dcode <dcode@dcode.io> | 2022-10-18 23:16:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-18 14:16:07 -0700 |
commit | e4fd739f72eae49aa47bef06af9f38625a3a9f33 (patch) | |
tree | 6ee226d199c05535a06539b6868d77b060854a0b /test | |
parent | 34e7e49cd7fbf520e4f3cfb976b1c88713b18e45 (diff) | |
download | binaryen-e4fd739f72eae49aa47bef06af9f38625a3a9f33.tar.gz binaryen-e4fd739f72eae49aa47bef06af9f38625a3a9f33.tar.bz2 binaryen-e4fd739f72eae49aa47bef06af9f38625a3a9f33.zip |
[C API] Add bottom heap types and array heap type (#5150)
Adds `BinaryenHeapTypeNone`, `BinaryenHeapTypeNoext` and `BinaryenHeapTypeNofunc` to obtain the bottom heap types. Also adds `BinaryenHeapTypeIsBottom` to test whether a given heap type is a bottom type, and `BinaryenHeapTypeGetBottom` to obtain the respective bottom type given a heap type.
Diffstat (limited to 'test')
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 34 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 8 |
2 files changed, 42 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()); diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 983c80d90..0d7ef581b 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -11,10 +11,14 @@ BinaryenTypeAnyref: (ptr) BinaryenTypeEqref: (ptr) BinaryenTypeI31ref: (ptr) BinaryenTypeDataref: (ptr) +BinaryenTypeArrayref: (ptr) BinaryenTypeStringref: (ptr) BinaryenTypeStringviewWTF8: (ptr) BinaryenTypeStringviewWTF16: (ptr) BinaryenTypeStringviewIter: (ptr) +BinaryenTypeNullref: (ptr) +BinaryenTypeNullExternref: (ptr) +BinaryenTypeNullFuncref: (ptr) BinaryenTypeAuto: -1 BinaryenPackedTypeNotPacked: 0 BinaryenPackedTypeInt8: 1 @@ -25,10 +29,14 @@ BinaryenHeapTypeAny: 2 BinaryenHeapTypeEq: 3 BinaryenHeapTypeI31: 4 BinaryenHeapTypeData: 5 +BinaryenHeapTypeArray: 6 BinaryenHeapTypeString: 7 BinaryenHeapTypeStringviewWTF8: 8 BinaryenHeapTypeStringviewWTF16: 9 BinaryenHeapTypeStringviewIter: 10 +BinaryenHeapTypeNone: 11 +BinaryenHeapTypeNoext: 12 +BinaryenHeapTypeNofunc: 13 BinaryenFeatureMVP: 0 BinaryenFeatureAtomics: 1 BinaryenFeatureBulkMemory: 16 |