aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-06-14 20:08:51 -0700
committerFuwn <[email protected]>2022-06-14 20:08:51 -0700
commit0105c9d79d02f00182c40c29d33b907982c0556d (patch)
tree3a5af6104a84a271bbbf359fdf2257ae14fcb233 /examples
downloadtatl-0.1.0.tar.xz
tatl-0.1.0.zip
feat: initial commit0.1.0
Diffstat (limited to 'examples')
-rw-r--r--examples/addition.c71
-rw-r--r--examples/macro.c31
-rw-r--r--examples/meson.build11
3 files changed, 113 insertions, 0 deletions
diff --git a/examples/addition.c b/examples/addition.c
new file mode 100644
index 0000000..34e7720
--- /dev/null
+++ b/examples/addition.c
@@ -0,0 +1,71 @@
+/*
+ * This file is part of Tatl <https://github.com/Fuwn/tatl>.
+ * Copyright (C) 2022-2022 Fuwn <[email protected]>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) 2022-2022 Fuwn <[email protected]>
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+#include <tatl/tatl.h>
+
+/* Obtain the result of a two number addition operation */
+int add(int, int);
+int dummy(void);
+int add_works(void);
+int dummy_long(void);
+int dummy_longer(void);
+int should_fail(void);
+
+int main(void) {
+ struct tatl_context context;
+
+ tatl_new(&context);
+ tatl_add(&context, "dummy", dummy);
+ tatl_add(&context, "add works", add_works);
+ tatl_add(&context, "dummy long", dummy_long);
+#ifdef _MSC_VER
+ tatl_add(&context, "dummy longer", dummy_longer);
+#endif
+ tatl_add(&context, "should fail", should_fail);
+ tatl_finish(&context);
+
+ return 0;
+}
+
+int add(int a, int b) { return a + b; }
+
+int dummy(void) { return 1; }
+
+int add_works(void) { return TATL_IS(add(1, 2), 3); }
+
+int dummy_long(void) {
+ int i;
+
+ for (i = 0; i < 100000000; ++i) {
+ }
+
+ return 1;
+}
+
+int dummy_longer(void) {
+ int i;
+
+ for (i = 0; i < 1000000000; ++i) {
+ }
+
+ return 1;
+}
+
+int should_fail(void) { return TATL_IS(1, 2); }
diff --git a/examples/macro.c b/examples/macro.c
new file mode 100644
index 0000000..4f93921
--- /dev/null
+++ b/examples/macro.c
@@ -0,0 +1,31 @@
+/*
+ * This file is part of Tatl <https://github.com/Fuwn/tatl>.
+ * Copyright (C) 2022-2022 Fuwn <[email protected]>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) 2022-2022 Fuwn <[email protected]>
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+#include <tatl/macros.h>
+
+TATL_TEST(addition_works) { return TATL_IS(2 + 2, 4); }
+
+int main(void) {
+ TATL_NEW();
+ TATL_ADD("add works", addition_works);
+ TATL_FINISH();
+
+ return 0;
+}
diff --git a/examples/meson.build b/examples/meson.build
new file mode 100644
index 0000000..8928a2c
--- /dev/null
+++ b/examples/meson.build
@@ -0,0 +1,11 @@
+executable('addition',
+ ['addition.c'],
+ include_directories : public_header_files,
+ link_with : [project_target],
+ c_args : project_build_args)
+
+executable('macro',
+ ['macro.c'],
+ include_directories : public_header_files,
+ link_with : [project_target],
+ c_args : project_build_args)