diff --git a/tests/test_chat_feedback.c b/tests/test_chat_feedback.c index 4c620284..9e87fffc 100644 --- a/tests/test_chat_feedback.c +++ b/tests/test_chat_feedback.c @@ -70,7 +70,7 @@ int main(void) { puts("PASS: message identity is deterministic and binds channel, timestamp and signature"); uint64_t ver; struct chat_feedback_record first, second, cancelled, actual; - uint8_t a[] = {1}, b[] = {1, 2}; + uint8_t a[] = {1, 0}, b[] = {2, 0, 1}, answer_data[] = {1, 0, 0, 0}; assert(chat_feedback_set(&source, "1001", message, CHAT_FEEDBACK_REACTION, a, sizeof(a), &ver) == 1 && ver == 1); assert(chat_feedback_get(&source, "1001", message, source.node_id, CHAT_FEEDBACK_REACTION, &first) == 1); int saved_events = events; @@ -98,17 +98,18 @@ int main(void) { puts("PASS: signature binds version, channel and author; rejection preserves tree and events"); struct chat_feedback_record low = first, high = first; - low.ver = high.ver = 4; low.data[0] = 3; high.data[0] = 4; + low.ver = high.ver = 4; low.data[1] = 3; high.data[1] = 4; sign_record(&source, 1001, &low); sign_record(&source, 1001, &high); assert(chat_feedback_apply(&source, "1001", &low) == 1 && chat_feedback_apply(&source, "1001", &high) == 1); assert(chat_feedback_apply(&target, "1001", &high) == 1 && chat_feedback_apply(&target, "1001", &low) == 0); root(&source, expected); root(&target, received); assert(!memcmp(expected, received, 32)); - assert(chat_feedback_set(&source, "1001", message, CHAT_FEEDBACK_ANSWER, b, sizeof(b), &ver) == 1 && ver == 1); + assert(chat_feedback_set(&source, "1001", message, CHAT_FEEDBACK_ANSWER, answer_data, sizeof(answer_data), &ver) == 1 && ver == 1); puts("PASS: equal-version conflicts converge in both orders; answer and reaction have independent versions"); struct chat_feedback_record newer = high, answer = first; - newer.ver = 5; newer.data[0] = 5; sign_record(&source, 1001, &newer); - answer.kind = CHAT_FEEDBACK_ANSWER; answer.ver = 2; sign_record(&source, 1001, &answer); + newer.ver = 5; newer.data[1] = 5; sign_record(&source, 1001, &newer); + answer.kind = CHAT_FEEDBACK_ANSWER; answer.ver = 2; answer.data_len = sizeof(answer_data); + memcpy(answer.data, answer_data, sizeof(answer_data)); sign_record(&source, 1001, &answer); uint8_t page[2 + 2 * FB_WIRE_MAX]; page[0] = 0; page[1] = 2; int n = fb_encode(&newer, page + 2); assert(n > 0); int m = fb_encode(&answer, page + 2 + n); assert(m > 0); @@ -132,7 +133,7 @@ int main(void) { &cursor, page, &bytes, &next, &more) == 0 && !more); assert(bytes >= 2 + FB_FIXED_SIZE && page[1] >= 1); struct chat_feedback_record decoded; assert(fb_decode(page + 2, bytes - 2, &decoded) > 0); - assert(decoded.ver == 5 && decoded.data[0] == 5); + assert(decoded.ver == 5 && decoded.data[1] == 5); assert(chat_feedback_set(&target, "1001", message, CHAT_FEEDBACK_REACTION, NULL, 0, &ver) == 1 && ver == 1); assert(chat_feedback_set(&target, "1001", message, CHAT_FEEDBACK_REACTION, a, sizeof(a), &ver) == 1 && ver == 2); assert(chat_feedback_set(&target, "1001", message, CHAT_FEEDBACK_REACTION, NULL, 0, &ver) == 1 && ver == 3);