summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrm <grm@eyesin.space>2025-08-16 15:00:58 +0300
committergrm <grm@eyesin.space>2025-08-16 15:00:58 +0300
commit73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4 (patch)
treec7454bc5cae79fe21641bff68185f221750faffc
parentd4c386f61c360192af0c0298d018bd2cce85d036 (diff)
downloadsynth-project-73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4.tar.gz
synth-project-73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4.tar.bz2
synth-project-73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4.zip
[tests] add skeleton with check.h
-rw-r--r--b.c30
-rw-r--r--tests/example_test.c70
2 files changed, 100 insertions, 0 deletions
diff --git a/b.c b/b.c
index 6ac5db6..ddcb811 100644
--- a/b.c
+++ b/b.c
@@ -115,6 +115,34 @@ bool build_templates(B_Cmd *cmd, const char **templates, size_t len) {
return true;
}
+bool
+build_tests(B_Cmd *cmd, const char * output_path) {
+ int rebuild_is_needed =
+ b_needs_rebuild1(B_COMPILE, output_path, "tests/example_test.c");
+
+ /* int dep_rebuild = 0; */
+ /* if (rebuild_is_needed == 0) */
+ /* dep_rebuild = */
+ /* b_needs_rebuild(B_COMPILE, output_path, dep_paths, dep_paths_len); */
+
+
+ if (rebuild_is_needed < 0 /* || dep_rebuild < 0 */) return false;
+
+
+ if (force || rebuild_is_needed /* || dep_rebuild */) {
+ cmd->count = 0;
+ cc(cmd);
+ b_cmd_append(cmd, "-o", output_path);
+ b_cmd_append(cmd, "-l", "check");
+ b_cmd_append(cmd, "tests/example_test.c");
+ synth_libs(cmd);
+ return b_cmd_run_sync(*cmd);
+ }
+
+ b_log(B_INFO, "%s is up-to-date", output_path);
+ return true;
+}
+
int
main(int argc, char *argv[])
{
@@ -203,5 +231,7 @@ main(int argc, char *argv[])
B_ARRAY_LEN(synth_deps), BUILD_DIR "synth"))
return 1;
+ if (!build_tests(&cmd, BUILD_DIR "test"))
+ return 1;
return 0;
}
diff --git a/tests/example_test.c b/tests/example_test.c
new file mode 100644
index 0000000..341f6af
--- /dev/null
+++ b/tests/example_test.c
@@ -0,0 +1,70 @@
+#include <check.h>
+#include "osc.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+START_TEST (test_name)
+{
+ //printf("Hello from test!\n");
+ //ck_assert_int_eq(0,109);
+ return;
+}
+END_TEST
+
+START_TEST (badtest_name)
+{
+ //printf("Hello from test!\n");
+ //ck_assert_int_eq(0,109);
+ return;
+}
+END_TEST
+
+
+Suite * osc_suite(void)
+{
+ Suite *s;
+ TCase *tc_osc;
+
+ s = suite_create("osc");
+
+ tc_osc = tcase_create("OSC");
+
+ tcase_add_test(tc_osc, test_name);
+ suite_add_tcase(s, tc_osc);
+
+ return s;
+}
+
+Suite * adsr_suite(void)
+{
+ Suite *s;
+ TCase *tc_adsr;
+
+ s = suite_create("adsr");
+
+ tc_adsr = tcase_create("ADSR");
+
+ tcase_add_test(tc_adsr, test_name);
+ tcase_add_test(tc_adsr, test_name);
+ tcase_add_test(tc_adsr, badtest_name);
+ tcase_add_test(tc_adsr, test_name);
+ suite_add_tcase(s, tc_adsr);
+
+ return s;
+}
+
+int main(void)
+{
+ int number_failed;
+ SRunner *sr;
+
+ sr = srunner_create(osc_suite());
+ srunner_add_suite(sr, adsr_suite());
+ srunner_add_suite(sr, adsr_suite());
+
+ srunner_set_tap(sr, "results.tap");
+ srunner_run_all(sr, CK_NORMAL);
+ number_failed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}