aboutsummaryrefslogtreecommitdiff
path: root/tests/test_multiprocessing.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-10-22 01:33:35 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-10-22 01:33:35 -0400
commitb46552ef9e37e60f7913c9776f73637e17a1d9e6 (patch)
tree4a4879cc92ecef71abd6b4b0d7a819ce8b75134f /tests/test_multiprocessing.c
parent66201ea20070376b76325f24ac40835aea48e6c8 (diff)
downloadstasis-b46552ef9e37e60f7913c9776f73637e17a1d9e6.tar.gz
Update test_mp_fail_fast
* Record status(s) and just verify they're non-zero. Checking for exact values is difficult when you don't know the hardware ahead of time. * Apply HOLD state
Diffstat (limited to 'tests/test_multiprocessing.c')
-rw-r--r--tests/test_multiprocessing.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/tests/test_multiprocessing.c b/tests/test_multiprocessing.c
index 750a001..13a343d 100644
--- a/tests/test_multiprocessing.c
+++ b/tests/test_multiprocessing.c
@@ -140,22 +140,28 @@ void test_mp_fail_fast() {
struct result {
int total_signaled;
- int total_status;
+ int total_status_fail;
+ int total_status_success;
int total_unused;
} result = {
.total_signaled = 0,
- .total_status = 0,
+ .total_status_fail = 0,
+ .total_status_success = 0,
.total_unused = 0,
};
for (size_t i = 0; i < p->num_used; i++) {
struct MultiProcessingTask *task = &p->task[i];
if (task->signaled_by) result.total_signaled++;
- if (task->status) result.total_status++;
- if (task->pid == MP_POOL_PID_UNUSED) result.total_unused++;
+ if (task->status > 0) result.total_status_fail++;
+ if (task->status == 0) result.total_status_success++;
+ if (task->pid == MP_POOL_PID_UNUSED && task->status == MP_POOL_TASK_STATUS_INITIAL) result.total_unused++;
}
- STASIS_ASSERT(result.total_status == 1, "Unexpected status count");
- STASIS_ASSERT(result.total_signaled == 3, "Unexpected signal count");
- STASIS_ASSERT(result.total_unused > 0, "Unexpected PIDs present. Should be marked UNUSED.");
+ fprintf(stderr, "total_status_fail = %d\ntotal_status_success = %d\ntotal_signaled = %d\ntotal_unused = %d\n",
+ result.total_status_fail, result.total_status_success, result.total_signaled, result.total_unused);
+ STASIS_ASSERT(result.total_status_fail, "Should have failures");
+ STASIS_ASSERT(result.total_status_success, "Should have successes");
+ STASIS_ASSERT(result.total_signaled, "Should have signaled PIDs");
+ STASIS_ASSERT(result.total_unused, "Should have PIDs marked UNUSED.");
mp_pool_show_summary(p);
mp_pool_free(&p);
}