aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-06-19 20:04:56 -0700
committerFuwn <[email protected]>2022-06-19 20:04:56 -0700
commit58688c8090afea95a92a147e26ad0392c1bfef14 (patch)
tree9a6b33f7d5692d3e1daacb1fa90b07098a0e1e47 /examples
downloadtael-58688c8090afea95a92a147e26ad0392c1bfef14.tar.xz
tael-58688c8090afea95a92a147e26ad0392c1bfef14.zip
feat: initial commitv0.1.0
Diffstat (limited to 'examples')
-rw-r--r--examples/addition.cc74
-rw-r--r--examples/meson.build8
2 files changed, 82 insertions, 0 deletions
diff --git a/examples/addition.cc b/examples/addition.cc
new file mode 100644
index 0000000..3588171
--- /dev/null
+++ b/examples/addition.cc
@@ -0,0 +1,74 @@
+/*
+ * 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 <tael/tael.hh>
+#include <tael/tatl.hh>
+
+namespace addition {
+
+int add(int, int);
+int dummy();
+int add_works();
+int dummy_long();
+int dummy_longer();
+int should_fail();
+
+} // namespace addition
+
+int main() {
+ tael::context context("examples/addition.cc");
+
+ context.add("dummy", addition::dummy);
+ context.add("add works", addition::add_works);
+ context.add("dummy long", addition::dummy_long);
+#ifdef _MSC_VER
+ context.add("dummy longer", addition::dummy_longer);
+#endif
+ context.add("should fail", addition::should_fail);
+ context.finish();
+
+ return 0;
+}
+
+namespace addition {
+
+int add(int a, int b) { return a + b; }
+
+int dummy() { return 1; }
+
+int add_works() { return TATL_IS(add(1, 2), 3); }
+
+int dummy_long() {
+ for (int i = 0; i < 100000000; ++i) {
+ }
+
+ return 1;
+}
+
+int dummy_longer() {
+ for (int i = 0; i < 1000000000; ++i) {
+ }
+
+ return 1;
+}
+
+int should_fail() { return TATL_IS(1, 2); }
+
+} // namespace addition
diff --git a/examples/meson.build b/examples/meson.build
new file mode 100644
index 0000000..de2c6c9
--- /dev/null
+++ b/examples/meson.build
@@ -0,0 +1,8 @@
+project_test_files += files('addition.cc')
+
+executable('addition',
+ ['addition.cc'],
+ include_directories : public_header_files,
+ link_with : [project_target],
+ dependencies: [tatl],
+ cpp_args : project_build_args)