aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-09-27 09:58:43 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-09-27 09:58:43 -0400
commit40d1de9306d6de8a57d4398fef696ad8e1395c08 (patch)
tree21d53119aaef5f858d11eee67605c1fc2aede6cb
parentcfa8d04c01cb46c39f1a76005d777bd9e3ddd51d (diff)
downloadstasis-40d1de9306d6de8a57d4398fef696ad8e1395c08.tar.gz
Add comments
-rw-r--r--src/delivery_test.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/delivery_test.c b/src/delivery_test.c
index 177a9e7..cb8b434 100644
--- a/src/delivery_test.c
+++ b/src/delivery_test.c
@@ -36,14 +36,33 @@ void delivery_tests_run(struct Delivery *ctx) {
exit(1);
}
+ // Test block scripts shall exit non-zero on error.
+ // This will fail a test block immediately if "string" is not found in file.txt:
+ // grep string file.txt
+ //
+ // And this is how to avoid that scenario:
+ // #1:
+ // if ! grep string file.txt; then
+ // # handle error
+ // fi
+ //
+ // #2:
+ // grep string file.txt || handle error
+ //
+ // #3:
+ // # Use ':' as a NO-OP if/when the result doesn't matter
+ // grep string file.txt || :
const char *runner_cmd_fmt = "set -e -x\n%s\n";
+
+ // Iterate over our test records, retrieving the source code for each package, and assigning its scripted tasks
+ // to the appropriate processing pool
for (size_t i = 0; i < sizeof(ctx->tests) / sizeof(ctx->tests[0]); i++) {
struct Test *test = &ctx->tests[i];
if (!test->name && !test->repository && !test->script) {
// skip unused test records
continue;
}
- msg(STASIS_MSG_L2, "Executing tests for %s %s\n", test->name, test->version);
+ msg(STASIS_MSG_L2, "Loading tests for %s %s\n", test->name, test->version);
if (!test->script || !strlen(test->script)) {
msg(STASIS_MSG_WARN | STASIS_MSG_L3, "Nothing to do. To fix, declare a 'script' in section: [test:%s]\n",
test->name);
@@ -80,7 +99,7 @@ void delivery_tests_run(struct Delivery *ctx) {
exit(1);
}
- msg(STASIS_MSG_L3, "Testing %s\n", test->name);
+ msg(STASIS_MSG_L3, "Queuing task for %s\n", test->name);
memset(&proc, 0, sizeof(proc));
strcpy(cmd, test->script);
@@ -190,6 +209,7 @@ void delivery_tests_run(struct Delivery *ctx) {
opt_flags |= MP_POOL_FAIL_FAST;
}
+ // Execute all queued tasks
for (size_t p = 0; p < sizeof(pool) / sizeof(*pool); p++) {
int pool_status;
long jobs = globals.cpu_limit;