fix: prioritize whole-file validation
CI / lint (pull_request) Successful in 11s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / sanitizers (address) (pull_request) Successful in 38s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m16s
CI / valgrind (pull_request) Successful in 34s
CI / lint (pull_request) Successful in 11s
CI / sanitizers (undefined) (pull_request) Successful in 37s
CI / sanitizers (address) (pull_request) Successful in 38s
CI / fuzz-build (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 31s
CI / build-and-test (pull_request) Successful in 1m16s
CI / valgrind (pull_request) Successful in 34s
This commit is contained in:
@@ -23,15 +23,15 @@ bool validate_config(const Config* config) {
|
|||||||
log_message(LOG_LEVEL_ERROR, "--incremental is not supported with -s (chunk serialization)");
|
log_message(LOG_LEVEL_ERROR, "--incremental is not supported with -s (chunk serialization)");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (config->use_delta && !config->use_incremental) {
|
if (config->use_delta && !config->whole_file && !config->use_incremental) {
|
||||||
log_message(LOG_LEVEL_ERROR, "--delta requires --incremental");
|
log_message(LOG_LEVEL_ERROR, "--delta requires --incremental");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (config->use_delta && config->use_chunk_serialization) {
|
if (config->use_delta && !config->whole_file && config->use_chunk_serialization) {
|
||||||
log_message(LOG_LEVEL_ERROR, "--delta cannot be combined with -s (chunk serialization)");
|
log_message(LOG_LEVEL_ERROR, "--delta cannot be combined with -s (chunk serialization)");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (config->use_delta && config->use_sendfile) {
|
if (config->use_delta && !config->whole_file && config->use_sendfile) {
|
||||||
log_message(LOG_LEVEL_ERROR, "--delta cannot be combined with -f (sendfile)");
|
log_message(LOG_LEVEL_ERROR, "--delta cannot be combined with -f (sendfile)");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,13 @@ static void test_validate_config_delta_sendfile_constraints() {
|
|||||||
cfg->use_incremental = true;
|
cfg->use_incremental = true;
|
||||||
cfg->use_sendfile = true;
|
cfg->use_sendfile = true;
|
||||||
EXPECT_FALSE(validate_config(cfg));
|
EXPECT_FALSE(validate_config(cfg));
|
||||||
|
|
||||||
|
/* Whole-file makes delta selection inactive, so these combinations are valid. */
|
||||||
|
cfg->whole_file = true;
|
||||||
|
EXPECT_TRUE(validate_config(cfg));
|
||||||
|
|
||||||
|
cfg->use_incremental = false;
|
||||||
|
EXPECT_TRUE(validate_config(cfg));
|
||||||
config_delete(cfg);
|
config_delete(cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user