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.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 1761ab0bb..1359385eb 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -160,6 +160,16 @@ void test_types() {
printf("BinaryenTypeAuto: %d\n", BinaryenTypeAuto());
}
+void test_features() {
+ printf("BinaryenFeatureAtomics: %d\n", BinaryenFeatureAtomics());
+ printf("BinaryenFeatureBulkMemory: %d\n", BinaryenFeatureBulkMemory());
+ printf("BinaryenFeatureMutableGlobals: %d\n", BinaryenFeatureMutableGlobals());
+ printf("BinaryenFeatureNontrappingFPToInt: %d\n", BinaryenFeatureNontrappingFPToInt());
+ printf("BinaryenFeatureSignExt: %d\n", BinaryenFeatureSignExt());
+ printf("BinaryenFeatureSIMD128: %d\n", BinaryenFeatureSIMD128());
+ printf("BinaryenFeatureExceptionHandling: %d\n", BinaryenFeatureExceptionHandling());
+}
+
void test_core() {
// Module creation
@@ -511,6 +521,16 @@ void test_core() {
// A bunch of our code needs drop(), auto-add it
BinaryenModuleAutoDrop(module);
+ BinaryenFeatures features =
+ BinaryenFeatureAtomics() |
+ BinaryenFeatureBulkMemory() |
+ BinaryenFeatureNontrappingFPToInt() |
+ BinaryenFeatureSignExt() |
+ BinaryenFeatureSIMD128();
+
+ BinaryenSetFeatures(module, features);
+ assert(BinaryenGetFeatures(module) == features);
+
// Verify it validates
assert(BinaryenModuleValidate(module));
@@ -830,6 +850,7 @@ void test_color_status() {
int main() {
test_types();
+ test_features();
test_core();
test_unreachable();
test_relooper();