}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(4);
+ testsuite_add_test(test_native);
+ testsuite_add_test(test_supported);
+ testsuite_add_test(test_compatible);
+ testsuite_add_test(test_machine);
- testsuite_add_test(ts, test_native);
- testsuite_add_test(ts, test_supported);
- testsuite_add_test(ts, test_compatible);
- testsuite_add_test(ts, test_machine);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(3);
+ testsuite_add_test(test_open);
+ testsuite_add_test(test_extract);
+ testsuite_add_test(test_import);
- testsuite_add_test(ts, test_open);
- testsuite_add_test(ts, test_extract);
- testsuite_add_test(ts, test_import);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(1);
+ testsuite_add_test(test_does_not_exist);
- testsuite_add_test(ts, test_does_not_exist);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(3);
+ testsuite_add_test(test_init);
+ testsuite_add_test(test_import);
+ testsuite_add_test(test_export);
- testsuite_add_test(ts, test_init);
- testsuite_add_test(ts, test_import);
- testsuite_add_test(ts, test_export);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(2);
+ testsuite_add_test(test_init);
+ testsuite_add_test(test_path);
- testsuite_add_test(ts, test_init);
- testsuite_add_test(ts, test_path);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(1);
+ testsuite_add_test(test_parse);
- testsuite_add_test(ts, test_parse);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(1);
+ testsuite_add_test(test_parser);
- testsuite_add_test(ts, test_parser);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
}
int main(int argc, char** argv) {
- testsuite_t* ts = testsuite_create(3);
+ testsuite_add_test(test_basename);
+ testsuite_add_test(test_dirname);
+ testsuite_add_test(test_string_startswith);
- testsuite_add_test(ts, test_basename);
- testsuite_add_test(ts, test_dirname);
- testsuite_add_test(ts, test_string_startswith);
-
- return testsuite_run(ts);
+ return testsuite_run();
}
const char* TEST_SRC_PATH = ABS_TOP_SRCDIR "/tests";
+testsuite_t ts;
+
static int test_run(test_t* t) {
LOG("running %s\n", t->name);
return r;
}
-testsuite_t* testsuite_create(size_t n) {
- testsuite_t* ts = calloc(1, sizeof(*ts));
- if (!ts)
- exit(EXIT_FAILURE);
-
- // Make space for n tests
- ts->tests = calloc(n + 1, sizeof(*ts->tests));
- ts->left = n;
-
- return ts;
-};
-
-int __testsuite_add_test(testsuite_t* ts, const char* name, test_function_t func) {
- if (ts->left == 0)
+int __testsuite_add_test(const char* name, test_function_t func) {
+ // Check if any space is left
+ if (ts.num >= MAX_TESTS) {
+ LOG("ERROR: We are out of space for tests\n");
exit(EXIT_FAILURE);
-
- test_t** last = ts->tests;
- while (*last)
- last++;
-
- test_t* test = *last = calloc(1, sizeof(**last));
- if (test) {
- test->name = name;
- test->func = func;
}
- ts->left--;
+ struct test* test = &ts.tests[ts.num++];
+
+ // Set parameters
+ test->name = name;
+ test->func = func;
return 0;
}
-int testsuite_run(testsuite_t* ts) {
- for (test_t** t = ts->tests; *t; t++) {
- int r = test_run(*t);
+int testsuite_run() {
+ for (unsigned int i = 0; i < ts.num; i++) {
+ int r = test_run(&ts.tests[i]);
if (r)
exit(r);
}
#include <pakfire/pakfire.h>
+#define MAX_TESTS 128
+
extern const char* TEST_SRC_PATH;
// Forward declaration
} test_t;
typedef struct testsuite {
- test_t** tests;
- size_t left;
+ test_t tests[MAX_TESTS];
+ size_t num;
} testsuite_t;
-testsuite_t* testsuite_create(size_t n);
-int __testsuite_add_test(testsuite_t* ts, const char* name, test_function_t func);
-int testsuite_run(testsuite_t* ts);
+extern testsuite_t ts;
+
+int __testsuite_add_test(const char* name, test_function_t func);
+int testsuite_run();
#define _LOG(prefix, fmt, ...) fprintf(stderr, "TESTS: " prefix fmt, ## __VA_ARGS__);
#define LOG(fmt, ...) _LOG("", fmt, ## __VA_ARGS__);
#define LOG_WARN(fmt, ...) _LOG("WARN: ", fmt, ## __VA_ARGS__);
#define LOG_ERROR(fmt, ...) _LOG("ERROR: ", fmt, ## __VA_ARGS__);
-#define testsuite_add_test(ts, func) __testsuite_add_test(ts, #func, func)
+#define testsuite_add_test(func) __testsuite_add_test(#func, func)
#define assert_return(expr, r) \
do { \