|
|
|
@ -155,14 +155,14 @@ int main(void) { |
|
|
|
"BEGIN SELECT RAISE(ABORT,'test invite commit failure'); END", NULL, NULL, NULL) == SQLITE_OK, "install failed commit"); |
|
|
|
"BEGIN SELECT RAISE(ABORT,'test invite commit failure'); END", NULL, NULL, NULL) == SQLITE_OK, "install failed commit"); |
|
|
|
request(4, target, source_id, 0); |
|
|
|
request(4, target, source_id, 0); |
|
|
|
CHECK(wait_result(ua, 4, DM_INVITE_SEND_ERROR) && !message_count(), "failed commit returns error and rolls back PM"); |
|
|
|
CHECK(wait_result(ua, 4, DM_INVITE_SEND_ERROR) && !message_count(), "failed commit returns error and rolls back PM"); |
|
|
|
uint64_t route = 0; |
|
|
|
|
|
|
|
CHECK(!scalar(nodes[0], "SELECT group_id FROM dm_conversations LIMIT 1", &route) && route == source, |
|
|
|
|
|
|
|
"member invitation restores the existing PM's source group route"); |
|
|
|
|
|
|
|
CHECK(sqlite3_exec(nodes[0]->topo_sqlite_db, "DROP TRIGGER fail_invite", NULL, NULL, NULL) == SQLITE_OK, "remove failed commit"); |
|
|
|
CHECK(sqlite3_exec(nodes[0]->topo_sqlite_db, "DROP TRIGGER fail_invite", NULL, NULL, NULL) == SQLITE_OK, "remove failed commit"); |
|
|
|
|
|
|
|
|
|
|
|
request(5, target, "", 0); /* из шапки существующей PM исходная группа не передаётся */ |
|
|
|
request(5, target, "", 0); /* из шапки существующей PM исходная группа не передаётся */ |
|
|
|
request(4, target, "", 1); /* запоздалая отмена другой операции не отменяет текущую */ |
|
|
|
request(4, target, "", 1); /* запоздалая отмена другой операции не отменяет текущую */ |
|
|
|
CHECK(wait_result(ua, 5, DM_INVITE_OK) && message_count() == 1, "one invitation committed for fixed peer"); |
|
|
|
CHECK(wait_result(ua, 5, DM_INVITE_OK) && message_count() == 1, "one invitation committed for fixed peer"); |
|
|
|
|
|
|
|
uint64_t route = 0; |
|
|
|
|
|
|
|
CHECK(!scalar(nodes[0], "SELECT group_id FROM dm_conversations LIMIT 1", &route) && route == source, |
|
|
|
|
|
|
|
"successful PM restores its automatically resolved shared group route"); |
|
|
|
char conv[64], messages[8192]; size_t length = 0; |
|
|
|
char conv[64], messages[8192]; size_t length = 0; |
|
|
|
snprintf(conv, sizeof(conv), "%llu", (unsigned long long)dm_derive_conv_id(nodes[0]->node_id, nodes[1]->node_id)); |
|
|
|
snprintf(conv, sizeof(conv), "%llu", (unsigned long long)dm_derive_conv_id(nodes[0]->node_id, nodes[1]->node_id)); |
|
|
|
deadline = get_time_tb() + 100000; |
|
|
|
deadline = get_time_tb() + 100000; |
|
|
|
|