diff options
author | Christian Kamm <mail@ckamm.de> | 2017-11-28 11:41:52 +0300 |
---|---|---|
committer | ckamm <mail@ckamm.de> | 2017-12-07 16:38:21 +0300 |
commit | 1c3d5ab15860809f4e437b95dde2cb5926f84bae (patch) | |
tree | c4e0b3875c33000bb058ab1a71fe3a48a2c2667d /test | |
parent | 5d668eca4062a89525a8ff7544c533aa33f30bec (diff) |
Excludes: Introduce dir-only regex matches
Diffstat (limited to 'test')
-rw-r--r-- | test/csync/csync_tests/check_csync_exclude.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/test/csync/csync_tests/check_csync_exclude.cpp b/test/csync/csync_tests/check_csync_exclude.cpp index 9329ca6de..c8e3a48ad 100644 --- a/test/csync/csync_tests/check_csync_exclude.cpp +++ b/test/csync/csync_tests/check_csync_exclude.cpp @@ -113,12 +113,12 @@ static void check_csync_exclude_add(void **) excludedFiles->prepare(); assert_true(excludedFiles->_nonRegexExcludes.contains("/tmp/check_csync1/*")); - assert_false(excludedFiles->_regex.pattern().contains("csync1")); + assert_false(excludedFiles->_bnameRegexFileDir.pattern().contains("csync1")); excludedFiles->addManualExclude("foo"); excludedFiles->prepare(); assert_true(excludedFiles->_nonRegexExcludes.size() == 1); - assert_true(excludedFiles->_regex.pattern().contains("foo")); + assert_true(excludedFiles->_bnameRegexFileDir.pattern().contains("foo")); } static void check_csync_excluded(void **) @@ -356,6 +356,32 @@ static void check_csync_excluded_traversal(void **) assert_int_equal(check_file_traversal("a * ?"), CSYNC_FILE_EXCLUDE_LIST); } +static void check_csync_dir_only(void **) +{ + excludedFiles->addManualExclude("filedir"); + excludedFiles->addManualExclude("dir/"); + excludedFiles->prepare(); + + assert_int_equal(check_file_traversal("other"), CSYNC_NOT_EXCLUDED); + assert_int_equal(check_file_traversal("filedir"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_file_traversal("dir"), CSYNC_NOT_EXCLUDED); + assert_int_equal(check_file_traversal("s/other"), CSYNC_NOT_EXCLUDED); + assert_int_equal(check_file_traversal("s/filedir"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_file_traversal("s/dir"), CSYNC_NOT_EXCLUDED); + + assert_int_equal(check_dir_traversal("other"), CSYNC_NOT_EXCLUDED); + assert_int_equal(check_dir_traversal("filedir"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_dir_traversal("dir"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_dir_traversal("s/other"), CSYNC_NOT_EXCLUDED); + assert_int_equal(check_dir_traversal("s/filedir"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_dir_traversal("s/dir"), CSYNC_FILE_EXCLUDE_LIST); + + assert_int_equal(check_dir_full("filedir/foo"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_file_full("filedir/foo"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_dir_full("dir/foo"), CSYNC_FILE_EXCLUDE_LIST); + assert_int_equal(check_file_full("dir/foo"), CSYNC_FILE_EXCLUDE_LIST); +} + static void check_csync_pathes(void **) { excludedFiles->addManualExclude("/exclude"); @@ -495,6 +521,7 @@ int torture_run_tests(void) cmocka_unit_test_setup_teardown(check_csync_exclude_add, setup, teardown), cmocka_unit_test_setup_teardown(check_csync_excluded, setup_init, teardown), cmocka_unit_test_setup_teardown(check_csync_excluded_traversal, setup_init, teardown), + cmocka_unit_test_setup_teardown(check_csync_dir_only, setup_init, teardown), cmocka_unit_test_setup_teardown(check_csync_pathes, setup_init, teardown), cmocka_unit_test_setup_teardown(check_csync_is_windows_reserved_word, setup_init, teardown), cmocka_unit_test_setup_teardown(check_csync_excluded_performance, setup_init, teardown), |