aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/external/metalang99/tests/metalang99.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-02-23 20:36:05 +0100
committerlemon <lsof@mailbox.org>2026-02-23 20:36:05 +0100
commit052144cabb126efe925a96f8a0597a0f2005d206 (patch)
tree4fd87244b9eef018b30e90fdff24c5b1a145a85e /test/external/metalang99/tests/metalang99.c
parent4e9020dfb847d80475415f9f5914efaa50238767 (diff)
add metalang99 testsuite (preprocessor stress testing)
Diffstat (limited to 'test/external/metalang99/tests/metalang99.c')
-rw-r--r--test/external/metalang99/tests/metalang99.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/external/metalang99/tests/metalang99.c b/test/external/metalang99/tests/metalang99.c
new file mode 100644
index 0000000..b469885
--- /dev/null
+++ b/test/external/metalang99/tests/metalang99.c
@@ -0,0 +1,51 @@
+#include <metalang99.h>
+#include <metalang99/assert.h>
+
+int main(void) {
+
+#undef ML99_MAJOR
+#undef ML99_MINOR
+#undef ML99_PATCH
+
+#define ML99_MAJOR 1
+#define ML99_MINOR 2
+#define ML99_PATCH 3
+
+ // ML99_VERSION_COMPATIBLE
+ {
+
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 0, 0));
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 1, 0));
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 1, 1));
+
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 2, 0));
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 2, 1));
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 2, 2));
+ ML99_ASSERT_UNEVAL(ML99_VERSION_COMPATIBLE(1, 2, 3));
+
+ // Major-incompatible.
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_COMPATIBLE(2, 0, 0));
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_COMPATIBLE(7, 1, 2));
+
+ // Minor-incompatible.
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_COMPATIBLE(1, 3, 0));
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_COMPATIBLE(1, 4, 9));
+
+ // Patch-incompatible.
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_COMPATIBLE(1, 2, 4));
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_COMPATIBLE(1, 2, 5));
+ }
+
+ // ML99_VERSION_EQ
+ {
+ ML99_ASSERT_UNEVAL(ML99_VERSION_EQ(1, 2, 3));
+
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_EQ(1, 2, 7));
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_EQ(1, 7, 3));
+ ML99_ASSERT_UNEVAL(!ML99_VERSION_EQ(7, 2, 3));
+ }
+
+#undef ML99_MAJOR
+#undef ML99_MINOR
+#undef ML99_PATCH
+}