refactor: config_create(), main(), send_files() - reduce duplication and complexity
CI / lint (pull_request) Failing after 11s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
CI / lint (pull_request) Failing after 11s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
- #150: Replace 11-parameter config_create() with config_create() that initializes to sensible defaults; callers set fields directly - #149: Extract validate_config() from main(); reduce main() from 325 to 281 lines by extracting validation logic into separate function - #151: Extract run_dry_run(), connect_to_server(), send_manifest(), and print_progress() shared helpers from send_files()/send_files_multithreaded() to eliminate code duplication
This commit is contained in:
+51
-12
@@ -7,9 +7,17 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
static void test_config_lifecycle() {
|
||||
Config* cfg = config_create(str_dup("1.0"), str_dup("/src"), str_dup("/dst"), true, true, false,
|
||||
false, false, 1, false, 0);
|
||||
Config* cfg = config_create();
|
||||
EXPECT_NOT_NULL(cfg);
|
||||
free(cfg->version);
|
||||
cfg->version = str_dup("1.0");
|
||||
cfg->send_directory = str_dup("/src");
|
||||
cfg->receive_root_directory = str_dup("/dst");
|
||||
cfg->save_to_disk = true;
|
||||
cfg->use_multithreading = true;
|
||||
cfg->use_chunk_serialization = false;
|
||||
cfg->use_compression = false;
|
||||
cfg->compression_level = 1;
|
||||
EXPECT_EQ_STR(cfg->version, "1.0");
|
||||
EXPECT_EQ_STR(cfg->send_directory, "/src");
|
||||
EXPECT_EQ_STR(cfg->receive_root_directory, "/dst");
|
||||
@@ -23,9 +31,14 @@ static void test_config_lifecycle() {
|
||||
}
|
||||
|
||||
static void test_config_ssh_dest() {
|
||||
Config* cfg = config_create(str_dup("1.0"), str_dup("/src"), str_dup("user@host:/dst"), true,
|
||||
false, false, false, false, 1, false, 0);
|
||||
Config* cfg = config_create();
|
||||
EXPECT_NOT_NULL(cfg);
|
||||
free(cfg->version);
|
||||
cfg->version = str_dup("1.0");
|
||||
cfg->send_directory = str_dup("/src");
|
||||
cfg->receive_root_directory = str_dup("user@host:/dst");
|
||||
cfg->save_to_disk = true;
|
||||
cfg->compression_level = 1;
|
||||
EXPECT_EQ_INT(cfg->transport, TRANSPORT_TCP);
|
||||
EXPECT_NULL(cfg->ssh_destination);
|
||||
EXPECT_EQ_STR(cfg->receive_root_directory, "user@host:/dst");
|
||||
@@ -38,8 +51,14 @@ static void test_config_ssh_dest() {
|
||||
}
|
||||
|
||||
static void test_config_ssh_dest_local_path() {
|
||||
Config* cfg = config_create(str_dup("1.0"), str_dup("/src"), str_dup("/local/path"), true, false,
|
||||
false, false, false, 1, false, 0);
|
||||
Config* cfg = config_create();
|
||||
EXPECT_NOT_NULL(cfg);
|
||||
free(cfg->version);
|
||||
cfg->version = str_dup("1.0");
|
||||
cfg->send_directory = str_dup("/src");
|
||||
cfg->receive_root_directory = str_dup("/local/path");
|
||||
cfg->save_to_disk = true;
|
||||
cfg->compression_level = 1;
|
||||
config_parse_ssh_dest(cfg);
|
||||
EXPECT_EQ_INT(cfg->transport, TRANSPORT_TCP);
|
||||
EXPECT_NULL(cfg->ssh_destination);
|
||||
@@ -48,8 +67,14 @@ static void test_config_ssh_dest_local_path() {
|
||||
}
|
||||
|
||||
static void test_config_ssh_dest_no_user() {
|
||||
Config* cfg = config_create(str_dup("1.0"), str_dup("/src"), str_dup("host:/remote"), true, false,
|
||||
false, false, false, 1, false, 0);
|
||||
Config* cfg = config_create();
|
||||
EXPECT_NOT_NULL(cfg);
|
||||
free(cfg->version);
|
||||
cfg->version = str_dup("1.0");
|
||||
cfg->send_directory = str_dup("/src");
|
||||
cfg->receive_root_directory = str_dup("host:/remote");
|
||||
cfg->save_to_disk = true;
|
||||
cfg->compression_level = 1;
|
||||
config_parse_ssh_dest(cfg);
|
||||
EXPECT_EQ_INT(cfg->transport, TRANSPORT_SSH);
|
||||
EXPECT_EQ_STR(cfg->ssh_destination, "host:/remote");
|
||||
@@ -58,8 +83,14 @@ static void test_config_ssh_dest_no_user() {
|
||||
}
|
||||
|
||||
static void test_pipeline_sender_lifecycle() {
|
||||
Config* cfg = config_create(str_dup("2.0"), str_dup("/src2"), str_dup("/dst2"), false, false,
|
||||
true, true, false, 1, false, 0);
|
||||
Config* cfg = config_create();
|
||||
free(cfg->version);
|
||||
cfg->version = str_dup("2.0");
|
||||
cfg->send_directory = str_dup("/src2");
|
||||
cfg->receive_root_directory = str_dup("/dst2");
|
||||
cfg->use_chunk_serialization = true;
|
||||
cfg->use_compression = true;
|
||||
cfg->compression_level = 1;
|
||||
Queue* q1 = queue_create(5, NULL);
|
||||
Queue* q2 = queue_create(15, NULL);
|
||||
|
||||
@@ -75,8 +106,16 @@ static void test_pipeline_sender_lifecycle() {
|
||||
}
|
||||
|
||||
static void test_pipeline_receiver_lifecycle() {
|
||||
Config* cfg = config_create(str_dup("3.0"), str_dup("/src3"), str_dup("/dst3"), true, true, true,
|
||||
true, false, 1, false, 0);
|
||||
Config* cfg = config_create();
|
||||
free(cfg->version);
|
||||
cfg->version = str_dup("3.0");
|
||||
cfg->send_directory = str_dup("/src3");
|
||||
cfg->receive_root_directory = str_dup("/dst3");
|
||||
cfg->save_to_disk = true;
|
||||
cfg->use_multithreading = true;
|
||||
cfg->use_chunk_serialization = true;
|
||||
cfg->use_compression = true;
|
||||
cfg->compression_level = 1;
|
||||
Queue* q = queue_create(20, NULL);
|
||||
|
||||
PipelineContextReceiver* pcr = pipeline_context_receiver_create(cfg, q, 42);
|
||||
|
||||
Reference in New Issue
Block a user