diff options
author | grm <grm@eyesin.space> | 2025-08-16 15:00:58 +0300 |
---|---|---|
committer | grm <grm@eyesin.space> | 2025-08-16 15:00:58 +0300 |
commit | 73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4 (patch) | |
tree | c7454bc5cae79fe21641bff68185f221750faffc | |
parent | d4c386f61c360192af0c0298d018bd2cce85d036 (diff) | |
download | synth-project-73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4.tar.gz synth-project-73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4.tar.bz2 synth-project-73d4d4229c58bb649c5df0c8fbf6a95ce6c879a4.zip |
[tests] add skeleton with check.h
-rw-r--r-- | b.c | 30 | ||||
-rw-r--r-- | tests/example_test.c | 70 |
2 files changed, 100 insertions, 0 deletions
@@ -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; +} |