From 06463b75b4e064172e51efa121a7f4ab8b7423e0 Mon Sep 17 00:00:00 2001 From: "jabber.developer2" Date: Mon, 9 Mar 2026 12:54:55 +0300 Subject: [PATCH] style: apply clang-format and const qualifiers from master --- src/database_export.c | 2 +- src/database_sqlite.c | 42 ++++++++++++------------- tests/functionaltests/functionaltests.c | 7 +++-- tests/functionaltests/proftest.c | 29 +++++++++++------ tests/functionaltests/proftest.h | 12 +++---- tests/functionaltests/test_history.c | 33 +++++++++---------- tests/functionaltests/test_history.h | 24 +++++++------- 7 files changed, 81 insertions(+), 68 deletions(-) diff --git a/src/database_export.c b/src/database_export.c index e16660c1..5fe24c51 100644 --- a/src/database_export.c +++ b/src/database_export.c @@ -379,7 +379,7 @@ log_database_export_to_flatfile(const gchar* const contact_jid) g_slist_free_full(merged, (GDestroyNotify)ff_parsed_line_free); fflush(fp); - fsync(fd); // ensure data is on disk before atomic rename + fsync(fd); // ensure data is on disk before atomic rename fclose(fp); // also releases flock // Atomic rename diff --git a/src/database_sqlite.c b/src/database_sqlite.c index 75af6b03..ec3ceb8b 100644 --- a/src/database_sqlite.c +++ b/src/database_sqlite.c @@ -55,7 +55,7 @@ static sqlite3* g_chatlog_database; -static void _add_to_db(ProfMessage* message, char* type, const Jid* const from_jid, const Jid* const to_jid); +static void _add_to_db(ProfMessage* message, const char* type, const Jid* const from_jid, const Jid* const to_jid); static char* _get_db_filename(ProfAccount* account); static prof_msg_type_t _get_message_type_type(const char* const type); static prof_enc_t _get_message_enc_type(const char* const encstr); @@ -147,22 +147,22 @@ _sqlite_init(ProfAccount* account) return TRUE; } - char* query = "CREATE TABLE IF NOT EXISTS `ChatLogs` (" - "`id` INTEGER PRIMARY KEY AUTOINCREMENT, " - "`from_jid` TEXT NOT NULL, " - "`to_jid` TEXT NOT NULL, " - "`from_resource` TEXT, " - "`to_resource` TEXT, " - "`message` TEXT, " - "`timestamp` TEXT, " - "`type` TEXT, " - "`stanza_id` TEXT, " - "`archive_id` TEXT, " - "`encryption` TEXT, " - "`marked_read` INTEGER, " - "`replace_id` TEXT, " - "`replaces_db_id` INTEGER, " - "`replaced_by_db_id` INTEGER)"; + const char* query = "CREATE TABLE IF NOT EXISTS `ChatLogs` (" + "`id` INTEGER PRIMARY KEY AUTOINCREMENT, " + "`from_jid` TEXT NOT NULL, " + "`to_jid` TEXT NOT NULL, " + "`from_resource` TEXT, " + "`to_resource` TEXT, " + "`message` TEXT, " + "`timestamp` TEXT, " + "`type` TEXT, " + "`stanza_id` TEXT, " + "`archive_id` TEXT, " + "`encryption` TEXT, " + "`marked_read` INTEGER, " + "`replace_id` TEXT, " + "`replaces_db_id` INTEGER, " + "`replaced_by_db_id` INTEGER)"; if (SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) { goto out; } @@ -251,7 +251,7 @@ _sqlite_add_incoming(ProfMessage* message) } static void -_log_database_add_outgoing(char* type, const char* const id, const char* const barejid, const char* const message, const char* const replace_id, prof_enc_t enc) +_log_database_add_outgoing(const char* type, const char* const id, const char* const barejid, const char* const message, const char* const replace_id, prof_enc_t enc) { ProfMessage* msg = message_init(); @@ -350,8 +350,8 @@ _sqlite_get_previous_chat(const gchar* const contact_barejid, const gchar* start return DB_RESPONSE_ERROR; } - gchar* sort1 = from_start ? "ASC" : "DESC"; - gchar* sort2 = !flip ? "ASC" : "DESC"; + const gchar* sort1 = from_start ? "ASC" : "DESC"; + const gchar* sort2 = !flip ? "ASC" : "DESC"; GDateTime* now = g_date_time_new_now_local(); auto_gchar gchar* end_date_fmt = end_time ? g_strdup(end_time) : g_date_time_format_iso8601(now); auto_sqlite gchar* query = sqlite3_mprintf("SELECT * FROM (" @@ -571,7 +571,7 @@ _get_message_enc_type(const char* const encstr) // --- Core write logic --- static void -_add_to_db(ProfMessage* message, char* type, const Jid* const from_jid, const Jid* const to_jid) +_add_to_db(ProfMessage* message, const char* type, const Jid* const from_jid, const Jid* const to_jid) { auto_gchar gchar* pref_dblog = prefs_get_string(PREF_DBLOG); sqlite_int64 original_message_id = -1; diff --git a/tests/functionaltests/functionaltests.c b/tests/functionaltests/functionaltests.c index b9c35214..db1a7ff3 100644 --- a/tests/functionaltests/functionaltests.c +++ b/tests/functionaltests/functionaltests.c @@ -66,7 +66,7 @@ int main(int argc, char* argv[]) { - int group = 0; /* 0 = all groups */ + int group = 0; /* 0 = all groups */ if (argc > 1) { group = atoi(argv[1]); if (group < 1 || group > 4) { @@ -79,7 +79,7 @@ main(int argc, char* argv[]) char group_env[16]; snprintf(group_env, sizeof(group_env), "%d", group); setenv("PROF_TEST_GROUP", group_env, 1); - + fprintf(stderr, "[PROF_TEST] Starting functional tests, group=%d\n", group); /* ============================================================ @@ -268,7 +268,8 @@ main(int argc, char* argv[]) }; /* Test group registry for easy extension */ - struct { + struct + { const char* name; const struct CMUnitTest* tests; size_t count; diff --git a/tests/functionaltests/proftest.c b/tests/functionaltests/proftest.c index 1b0586af..8b654a80 100644 --- a/tests/functionaltests/proftest.c +++ b/tests/functionaltests/proftest.c @@ -377,11 +377,6 @@ init_prof_test(void **state) "[notifications]\n" "message=false\n" "room=false\n"); - const char *flatfile_env = getenv("PROF_FLATFILE"); - if (flatfile_env && strcmp(flatfile_env, "1") == 0) { - fprintf(prc, "[logging]\ndblog=flatfile\n"); - printf("[PROF_TEST] Wrote profrc with dblog=flatfile: %s\n", profrc_path); - } fclose(prc); } @@ -441,17 +436,33 @@ prof_stop(void) { if (fd > 0 && child_pid > 0) { prof_input("/quit"); - sleep(1); - waitpid(child_pid, NULL, 0); + sleep_ms(QUIT_GRACE_MS); close(fd); fd = 0; + int exited = 0; + for (int i = 0; i < SHUTDOWN_POLL_MAX; i++) { + if (waitpid(child_pid, NULL, WNOHANG) != 0) { + exited = 1; + break; + } + sleep_ms(SHUTDOWN_POLL_MS); + } + if (!exited) { + kill(child_pid, SIGTERM); + for (int i = 0; i < SIGTERM_POLL_MAX; i++) { + if (waitpid(child_pid, NULL, WNOHANG) != 0) { exited = 1; break; } + sleep_ms(SHUTDOWN_POLL_MS); + } + if (!exited) { + kill(child_pid, SIGKILL); + waitpid(child_pid, NULL, 0); + } + } child_pid = 0; } /* Reset output buffer for clean restart */ output_len = 0; output_buffer[0] = '\0'; - /* Brief delay to let stabber release old connection state */ - usleep(200000); /* 200ms */ } void diff --git a/tests/functionaltests/proftest.h b/tests/functionaltests/proftest.h index c1d9d218..4e4bd255 100644 --- a/tests/functionaltests/proftest.h +++ b/tests/functionaltests/proftest.h @@ -11,17 +11,17 @@ extern char xdg_data_home[256]; extern int stub_port; -int init_prof_test(void **state); -int close_prof_test(void **state); +int init_prof_test(void** state); +int close_prof_test(void** state); void prof_start(void); void prof_stop(void); void prof_connect(void); -void prof_connect_with_roster(const char *roster); -void prof_input(const char *input); +void prof_connect_with_roster(const char* roster); +void prof_input(const char* input); -int prof_output_exact(const char *text); -int prof_output_regex(const char *text); +int prof_output_exact(const char* text); +int prof_output_regex(const char* text); void prof_timeout(int timeout); void prof_timeout_reset(void); diff --git a/tests/functionaltests/test_history.c b/tests/functionaltests/test_history.c index 5242e6d9..61b2dfba 100644 --- a/tests/functionaltests/test_history.c +++ b/tests/functionaltests/test_history.c @@ -36,7 +36,7 @@ * it was persisted to and read back from the database */ void -message_db_history_on_reopen(void **state) +message_db_history_on_reopen(void** state) { prof_connect(); @@ -81,7 +81,7 @@ message_db_history_on_reopen(void **state) * we can reliably synchronise on each delivery before proceeding. */ void -message_db_history_multiple(void **state) +message_db_history_multiple(void** state) { prof_connect(); @@ -131,7 +131,7 @@ message_db_history_multiple(void **state) * 3. Open buddy1 → verify buddy1's body present, buddy2's body absent */ void -message_db_history_contact_isolation(void **state) +message_db_history_contact_isolation(void** state) { prof_connect(); @@ -177,7 +177,7 @@ message_db_history_contact_isolation(void **state) * characters and return them unchanged. */ void -message_db_history_special_chars(void **state) +message_db_history_special_chars(void** state) { prof_connect(); @@ -210,7 +210,7 @@ message_db_history_special_chars(void **state) * and catches crashes in the outgoing DB code. */ void -message_db_history_outgoing(void **state) +message_db_history_outgoing(void** state) { prof_connect(); @@ -238,7 +238,7 @@ message_db_history_outgoing(void **state) * and the outgoing write path completed without error. */ void -message_db_history_dialog(void **state) +message_db_history_dialog(void** state) { prof_connect(); @@ -279,7 +279,7 @@ message_db_history_dialog(void **state) * does not crash and the window is usable. */ void -message_db_history_empty(void **state) +message_db_history_empty(void** state) { prof_connect(); @@ -299,7 +299,7 @@ message_db_history_empty(void **state) * Test: a long message (1000+ characters) is not truncated by the DB. */ void -message_db_history_long_message(void **state) +message_db_history_long_message(void** state) { prof_connect(); @@ -313,10 +313,11 @@ message_db_history_long_message(void **state) char xml[1500]; snprintf(xml, sizeof(xml), - "" - "%s" - "", body); + "" + "%s" + "", + body); stbbr_send(xml); assert_true(prof_output_exact("<< chat message: Buddy1/phone (win 2)")); @@ -335,7 +336,7 @@ message_db_history_long_message(void **state) * Uses XML character reference for literal newline in body. */ void -message_db_history_newline(void **state) +message_db_history_newline(void** state) { prof_connect(); @@ -364,7 +365,7 @@ message_db_history_newline(void **state) * percent, braces, brackets, equals) survive DB round-trip. */ void -message_db_history_service_chars(void **state) +message_db_history_service_chars(void** state) { prof_connect(); @@ -389,7 +390,7 @@ message_db_history_service_chars(void **state) * Test: /history verify reports no issues after normal message writes. */ void -message_db_history_verify(void **state) +message_db_history_verify(void** state) { prof_connect(); @@ -425,7 +426,7 @@ message_db_history_verify(void **state) * text should appear — the original should be absent. */ void -message_db_history_lmc(void **state) +message_db_history_lmc(void** state) { prof_connect(); diff --git a/tests/functionaltests/test_history.h b/tests/functionaltests/test_history.h index 551bfc8d..14fc6cd2 100644 --- a/tests/functionaltests/test_history.h +++ b/tests/functionaltests/test_history.h @@ -1,12 +1,12 @@ -void message_db_history_on_reopen(void **state); -void message_db_history_multiple(void **state); -void message_db_history_contact_isolation(void **state); -void message_db_history_special_chars(void **state); -void message_db_history_outgoing(void **state); -void message_db_history_dialog(void **state); -void message_db_history_empty(void **state); -void message_db_history_long_message(void **state); -void message_db_history_newline(void **state); -void message_db_history_service_chars(void **state); -void message_db_history_verify(void **state); -void message_db_history_lmc(void **state); +void message_db_history_on_reopen(void** state); +void message_db_history_multiple(void** state); +void message_db_history_contact_isolation(void** state); +void message_db_history_special_chars(void** state); +void message_db_history_outgoing(void** state); +void message_db_history_dialog(void** state); +void message_db_history_empty(void** state); +void message_db_history_long_message(void** state); +void message_db_history_newline(void** state); +void message_db_history_service_chars(void** state); +void message_db_history_verify(void** state); +void message_db_history_lmc(void** state);