tests: add autoping, helpers and XEP functional tests
All checks were successful
CI Code / Check spelling (pull_request) Successful in 20s
CI Code / Check coding style (pull_request) Successful in 35s
CI Code / Code Coverage (pull_request) Successful in 4m54s
CI Code / Linux (ubuntu) (pull_request) Successful in 6m23s
CI Code / Linux (debian) (pull_request) Successful in 9m12s
CI Code / Linux (arch) (pull_request) Successful in 11m12s

- Add 15 unit tests for autoping logic (XEP-0199)
- Add 10 helper tests for refactoring validation
- Add Last Activity functional tests (XEP-0012)
- Add MUC affiliation/kick tests (XEP-0045)
This commit is contained in:
2026-02-05 00:01:16 +03:00
parent 58dd89be40
commit 6f136bde88
11 changed files with 942 additions and 0 deletions

View File

@@ -36,6 +36,8 @@
#include "test_form.h"
#include "test_callbacks.h"
#include "test_plugins_disco.h"
#include "test_helpers.h"
#include "test_autoping.h"
#define muc_unit_test(f) cmocka_unit_test_setup_teardown(f, muc_before_test, muc_after_test)
@@ -656,6 +658,35 @@ main(int argc, char* argv[])
cmocka_unit_test_setup_teardown(test_allow_unencrypted_message_confirms_on_second_attempt, load_preferences, close_preferences),
cmocka_unit_test_setup_teardown(test_cmd_force_encryption_invalid_policy, load_preferences, close_preferences),
cmocka_unit_test_setup_teardown(test_allow_unencrypted_message_invalid_mode, load_preferences, close_preferences),
// Helper function tests
cmocka_unit_test(test_subwin_width_clamps_to_min),
cmocka_unit_test(test_subwin_width_clamps_to_max),
cmocka_unit_test(test_subwin_width_valid_unchanged),
cmocka_unit_test(test_subwin_width_small_cols),
cmocka_unit_test(test_hash_table_iter_finds_all_keys),
cmocka_unit_test(test_hash_table_iter_empty_table),
cmocka_unit_test(test_hash_table_iter_early_exit),
cmocka_unit_test(test_nested_hash_table_feature_lookup),
cmocka_unit_test(test_calloc_array_iteration_bug),
cmocka_unit_test(test_format_string_with_percent),
// Autoping tests (XEP-0199)
cmocka_unit_test(test_autoping_cancel_resets_state),
cmocka_unit_test(test_autoping_send_fails_when_disconnected),
cmocka_unit_test(test_autoping_send_succeeds_when_connected),
cmocka_unit_test(test_autoping_send_fails_if_already_waiting),
cmocka_unit_test(test_autoping_check_not_connected),
cmocka_unit_test(test_autoping_check_not_waiting),
cmocka_unit_test(test_autoping_check_no_timer),
cmocka_unit_test(test_autoping_check_ok_within_timeout),
cmocka_unit_test(test_autoping_check_ok_when_timeout_disabled),
cmocka_unit_test(test_autoping_timer_extend_resets_timer),
cmocka_unit_test(test_autoping_timer_extend_noop_without_timer),
cmocka_unit_test(test_autoping_pong_received_cancels_wait),
cmocka_unit_test(test_autoping_can_send_after_pong),
cmocka_unit_test(test_autoping_respects_connection_state_changes),
cmocka_unit_test(test_autoping_timeout_detection),
};
return cmocka_run_group_tests(all_tests, NULL, NULL);
}