Modified: subversion/branches/performance/subversion/tests/libsvn_diff/parse-diff-test.c URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/libsvn_diff/parse-diff-test.c?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/subversion/tests/libsvn_diff/parse-diff-test.c (original) +++ subversion/branches/performance/subversion/tests/libsvn_diff/parse-diff-test.c Mon Sep 6 20:02:15 2010 @@ -59,11 +59,11 @@ static const char *unidiff = static const char *git_unidiff = "Index: A/mu (deleted)" NL "===================================================================" NL - "git --diff a/A/mu b/A/mu" NL + "diff --git a/A/mu b/A/mu" NL "deleted file mode 100644" NL "Index: A/C/gamma" NL "===================================================================" NL - "git --diff a/A/C/gamma b/A/C/gamma" NL + "diff --git a/A/C/gamma b/A/C/gamma" NL "--- a/A/C/gamma\t(revision 2)" NL "+++ b/A/C/gamma\t(working copy)" NL "@@ -1 +1,2 @@" NL @@ -71,32 +71,52 @@ static const char *git_unidiff = "+some more bytes to 'gamma'" NL "Index: iota" NL "===================================================================" NL - "git --diff a/iota b/iota.copied" NL + "diff --git a/iota b/iota.copied" NL "copy from iota" NL "copy to iota.copied" NL "Index: new" NL "===================================================================" NL - "git --diff a/new b/new" NL + "diff --git a/new b/new" NL "new file mode 100644" NL "" NL; static const char *git_tree_and_text_unidiff = "Index: iota.copied" NL "===================================================================" NL - "git --diff a/iota b/iota.copied" NL + "diff --git a/iota b/iota.copied" NL "copy from iota" NL "copy to iota.copied" NL + "--- a/iota\t(revision 2)" NL + "+++ b/iota.copied\t(working copy)" NL "@@ -1 +1,2 @@" NL " This is the file 'iota'." NL "+some more bytes to 'iota'" NL "Index: A/mu.moved" NL "===================================================================" NL - "git --diff a/A/mu b/A/mu.moved" NL - "move from A/mu" NL - "move to A/mu.moved" NL + "diff --git a/A/mu b/A/mu.moved" NL + "rename from A/mu" NL + "rename to A/mu.moved" NL + "--- a/A/mu\t(revision 2)" NL + "+++ b/A/mu.moved\t(working copy)" NL "@@ -1 +1,2 @@" NL " This is the file 'mu'." NL "+some more bytes to 'mu'" NL + "Index: new" NL + "===================================================================" NL + "diff --git a/new b/new" NL + "new file mode 100644" NL + "--- /dev/null\t(revision 0)" NL + "+++ b/new\t(working copy)" NL + "@@ -0,0 +1 @@" NL + "+This is the file 'new'." NL + "Index: A/B/lambda" NL + "===================================================================" NL + "diff --git a/A/B/lambda b/A/B/lambda" NL + "deleted file mode 100644" NL + "--- a/A/B/lambda\t(revision 2)" NL + "+++ /dev/null\t(working copy)" NL + "@@ -1 +0,0 @@" NL + "-This is the file 'lambda'." NL "" NL; /* Only the last git diff header is valid. The other ones either misses a @@ -104,22 +124,22 @@ static const char *git_tree_and_text_uni static const char *bad_git_diff_header = "Index: iota.copied" NL "===================================================================" NL - "git --diff a/foo1 b/" NL - "git --diff a/foo2 b" NL - "git --diff a/foo3 " NL - "git --diff a/foo3 " NL - "git --diff foo4 b/foo4" NL - "git --diff a/foo5 b/foo5" NL + "diff --git a/foo1 b/" NL + "diff --git a/foo2 b" NL + "diff --git a/foo3 " NL + "diff --git a/foo3 " NL + "diff --git foo4 b/foo4" NL + "diff --git a/foo5 b/foo5" NL "random noise" NL "copy from foo5" NL "copy to foo5" NL - "git --diff a/foo6 b/foo6" NL + "diff --git a/foo6 b/foo6" NL "copy from foo6" NL "random noise" NL "copy to foo6" NL - "git --diff a/foo6 b/foo6" NL + "diff --git a/foo6 b/foo6" NL "copy from foo6" NL - "git --diff a/iota b/iota.copied" NL + "diff --git a/iota b/iota.copied" NL "copy from iota" NL "copy to iota.copied" NL "@@ -1 +1,2 @@" NL @@ -179,6 +199,53 @@ static const char *bad_git_diff_header = "## -0,0 +1 ##" NL "+value" NL; + /* A unidiff containing diff symbols in the body of the hunks. */ + static const char *diff_symbols_in_prop_unidiff = + "Index: iota" NL + "===================================================================" NL + "--- iota" NL + "+++ iota" NL + "" NL + "Property changes on: iota" NL + "___________________________________________________________________" NL + "Added: prop_add" NL + "## -0,0 +1,3 ##" NL + "+Added: bogus_prop" NL + "+## -0,0 +20 ##" NL + "+@@ -1,2 +0,0 @@" NL + "Deleted: prop_del" NL + "## -1,2 +0,0 ##" NL + "---- iota" NL + "-+++ iota" NL + "Modified: non-existent" NL + "blah, just noise - no valid hunk header" NL + "Modified: prop_mod" NL + "## -1,4 +1,4 ##" NL + "-## -1,2 +1,2 ##" NL + "+## -1,3 +1,3 ##" NL + " ## -1,5 -0,0 ##" NL + " @@ -1,5 -0,0 @@" NL + " Modified: prop_mod" NL + "## -10,4 +10,4 ##" NL + " context" NL + " context" NL + " context" NL + "-## -0,0 +1 ##" NL + "+## -1,2 +1,4 ##" NL + "" NL; + + /* A unidiff containing paths with spaces. */ + static const char *path_with_spaces_unidiff = + "diff --git a/path 1 b/path 1" NL + "new file mode 100644" NL + "diff --git a/path one 1 b/path one 1" NL + "new file mode 100644" NL + "diff --git a/dir/ b/path b/dir/ b/path" NL + "new file mode 100644" NL + "diff --git a/ b/path 1 b/ b/path 1" NL + "new file mode 100644" NL; + + /* Create a PATCH_FILE with name FNAME containing the contents of DIFF. */ static svn_error_t * create_patch_file(apr_file_t **patch_file, const char *fname, @@ -209,7 +276,7 @@ create_patch_file(apr_file_t **patch_fil * If ORIGINAL is TRUE, read the original hunk text; else, read the * modified hunk text. */ static svn_error_t * -check_content(svn_hunk_t *hunk, svn_boolean_t original, +check_content(svn_diff_hunk_t *hunk, svn_boolean_t original, const char *expected, apr_pool_t *pool) { svn_stream_t *exp; @@ -263,7 +330,7 @@ test_parse_unidiff(apr_pool_t *pool) for (i = 0; i < 2; i++) { svn_patch_t *patch; - svn_hunk_t *hunk; + svn_diff_hunk_t *hunk; apr_off_t pos; svn_pool_clear(iterpool); @@ -282,7 +349,7 @@ test_parse_unidiff(apr_pool_t *pool) SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/C/gamma")); SVN_TEST_ASSERT(patch->hunks->nelts == 1); - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, ! reverse, "This is the file 'gamma'." NL, pool)); @@ -308,7 +375,7 @@ test_parse_unidiff(apr_pool_t *pool) } SVN_TEST_ASSERT(patch->hunks->nelts == 1); - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, ! reverse, "This is the file 'gamma'." NL "some less bytes to 'gamma'" NL, @@ -331,7 +398,7 @@ test_parse_git_diff(apr_pool_t *pool) apr_file_t *patch_file; svn_patch_t *patch; - svn_hunk_t *hunk; + svn_diff_hunk_t *hunk; const char *fname = "test_parse_git_diff.patch"; SVN_ERR(create_patch_file(&patch_file, fname, git_unidiff, pool)); @@ -358,7 +425,7 @@ test_parse_git_diff(apr_pool_t *pool) SVN_TEST_ASSERT(patch->operation == svn_diff_op_modified); SVN_TEST_ASSERT(patch->hunks->nelts == 1); - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "This is the file 'gamma'." NL, @@ -403,7 +470,7 @@ test_parse_git_tree_and_text_diff(apr_po apr_file_t *patch_file; svn_patch_t *patch; - svn_hunk_t *hunk; + svn_diff_hunk_t *hunk; const char *fname = "test_parse_git_tree_and_text_diff.patch"; SVN_ERR(create_patch_file(&patch_file, fname, git_tree_and_text_unidiff, @@ -420,7 +487,7 @@ test_parse_git_tree_and_text_diff(apr_po SVN_TEST_ASSERT(patch->operation == svn_diff_op_copied); SVN_TEST_ASSERT(patch->hunks->nelts == 1); - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "This is the file 'iota'." NL, @@ -442,7 +509,7 @@ test_parse_git_tree_and_text_diff(apr_po SVN_TEST_ASSERT(patch->operation == svn_diff_op_moved); SVN_TEST_ASSERT(patch->hunks->nelts == 1); - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "This is the file 'mu'." NL, @@ -453,6 +520,45 @@ test_parse_git_tree_and_text_diff(apr_po "some more bytes to 'mu'" NL, pool)); + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, "/dev/null")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, "new")); + SVN_TEST_ASSERT(patch->operation == svn_diff_op_added); + SVN_TEST_ASSERT(patch->hunks->nelts == 1); + + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); + + SVN_ERR(check_content(hunk, TRUE, + "", + pool)); + + SVN_ERR(check_content(hunk, FALSE, + "This is the file 'new'." NL, + pool)); + + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/B/lambda")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, "/dev/null")); + SVN_TEST_ASSERT(patch->operation == svn_diff_op_deleted); + SVN_TEST_ASSERT(patch->hunks->nelts == 1); + + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); + + SVN_ERR(check_content(hunk, TRUE, + "This is the file 'lambda'." NL, + pool)); + + SVN_ERR(check_content(hunk, FALSE, + "", + pool)); return SVN_NO_ERROR; } @@ -462,7 +568,7 @@ test_bad_git_diff_headers(apr_pool_t *po { apr_file_t *patch_file; svn_patch_t *patch; - svn_hunk_t *hunk; + svn_diff_hunk_t *hunk; const char *fname = "test_bad_git_diff_header.patch"; SVN_ERR(create_patch_file(&patch_file, fname, bad_git_diff_header, @@ -478,7 +584,7 @@ test_bad_git_diff_headers(apr_pool_t *po SVN_TEST_ASSERT(patch->operation == svn_diff_op_copied); SVN_TEST_ASSERT(patch->hunks->nelts == 1); - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "This is the file 'iota'." NL, @@ -500,7 +606,7 @@ test_parse_property_diff(apr_pool_t *poo apr_file_t *patch_file; svn_patch_t *patch; svn_prop_patch_t *prop_patch; - svn_hunk_t *hunk; + svn_diff_hunk_t *hunk; apr_array_header_t *hunks; const char *fname = "test_parse_property_diff.patch"; @@ -524,7 +630,7 @@ test_parse_property_diff(apr_pool_t *poo hunks = prop_patch->hunks; SVN_TEST_ASSERT(hunks->nelts == 1); - hunk = APR_ARRAY_IDX(hunks, 0 , svn_hunk_t *); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "value" NL, @@ -543,7 +649,7 @@ test_parse_property_diff(apr_pool_t *poo hunks = prop_patch->hunks; SVN_TEST_ASSERT(hunks->nelts == 1); - hunk = APR_ARRAY_IDX(hunks, 0 , svn_hunk_t *); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "", @@ -561,7 +667,7 @@ test_parse_property_diff(apr_pool_t *poo hunks = prop_patch->hunks; SVN_TEST_ASSERT(hunks->nelts == 2); - hunk = APR_ARRAY_IDX(hunks, 0 , svn_hunk_t *); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "value" NL @@ -577,7 +683,7 @@ test_parse_property_diff(apr_pool_t *poo "context" NL, pool)); - hunk = APR_ARRAY_IDX(hunks, 1 , svn_hunk_t *); + hunk = APR_ARRAY_IDX(hunks, 1 , svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "context" NL @@ -602,7 +708,7 @@ test_parse_property_and_text_diff(apr_po apr_file_t *patch_file; svn_patch_t *patch; svn_prop_patch_t *prop_patch; - svn_hunk_t *hunk; + svn_diff_hunk_t *hunk; apr_array_header_t *hunks; const char *fname = "test_parse_property_and_text_diff.patch"; @@ -620,7 +726,7 @@ test_parse_property_and_text_diff(apr_po SVN_TEST_ASSERT(apr_hash_count(patch->prop_patches) == 1); /* Check contents of text hunk */ - hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_hunk_t *); + hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "This is the file 'iota'." NL, @@ -638,7 +744,7 @@ test_parse_property_and_text_diff(apr_po hunks = prop_patch->hunks; SVN_TEST_ASSERT(hunks->nelts == 1); - hunk = APR_ARRAY_IDX(hunks, 0 , svn_hunk_t *); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); SVN_ERR(check_content(hunk, TRUE, "", @@ -651,7 +757,159 @@ test_parse_property_and_text_diff(apr_po return SVN_NO_ERROR; } +static svn_error_t * +test_parse_diff_symbols_in_prop_unidiff(apr_pool_t *pool) +{ + svn_patch_t *patch; + apr_file_t *patch_file; + svn_prop_patch_t *prop_patch; + svn_diff_hunk_t *hunk; + apr_array_header_t *hunks; + const char *fname = "test_parse_diff_symbols_in_prop_unidiff.patch"; + + SVN_ERR(create_patch_file(&patch_file, fname, diff_symbols_in_prop_unidiff, + pool)); + + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, "iota")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, "iota")); + SVN_TEST_ASSERT(patch->hunks->nelts == 0); + SVN_TEST_ASSERT(apr_hash_count(patch->prop_patches) == 3); + + /* Check the added property */ + prop_patch = apr_hash_get(patch->prop_patches, "prop_add", + APR_HASH_KEY_STRING); + SVN_TEST_ASSERT(prop_patch->operation == svn_diff_op_added); + + hunks = prop_patch->hunks; + SVN_TEST_ASSERT(hunks->nelts == 1); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); + + SVN_ERR(check_content(hunk, TRUE, + "", + pool)); + SVN_ERR(check_content(hunk, FALSE, + "Added: bogus_prop" NL + "## -0,0 +20 ##" NL + "@@ -1,2 +0,0 @@" NL, + pool)); + + /* Check the deleted property */ + prop_patch = apr_hash_get(patch->prop_patches, "prop_del", + APR_HASH_KEY_STRING); + SVN_TEST_ASSERT(prop_patch->operation == svn_diff_op_deleted); + + hunks = prop_patch->hunks; + SVN_TEST_ASSERT(hunks->nelts == 1); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); + + SVN_ERR(check_content(hunk, TRUE, + "--- iota" NL + "+++ iota" NL, + pool)); + + SVN_ERR(check_content(hunk, FALSE, + "", + pool)); + + /* Check the modified property */ + prop_patch = apr_hash_get(patch->prop_patches, "prop_mod", + APR_HASH_KEY_STRING); + SVN_TEST_ASSERT(prop_patch->operation == svn_diff_op_modified); + hunks = prop_patch->hunks; + SVN_TEST_ASSERT(hunks->nelts == 2); + hunk = APR_ARRAY_IDX(hunks, 0 , svn_diff_hunk_t *); + + SVN_ERR(check_content(hunk, TRUE, + "## -1,2 +1,2 ##" NL + "## -1,5 -0,0 ##" NL + "@@ -1,5 -0,0 @@" NL + "Modified: prop_mod" NL, + pool)); + + SVN_ERR(check_content(hunk, FALSE, + "## -1,3 +1,3 ##" NL + "## -1,5 -0,0 ##" NL + "@@ -1,5 -0,0 @@" NL + "Modified: prop_mod" NL, + pool)); + + hunk = APR_ARRAY_IDX(hunks, 1 , svn_diff_hunk_t *); + + SVN_ERR(check_content(hunk, TRUE, + "context" NL + "context" NL + "context" NL + "## -0,0 +1 ##" NL, + pool)); + + SVN_ERR(check_content(hunk, FALSE, + "context" NL + "context" NL + "context" NL + "## -1,2 +1,4 ##" NL, + pool)); + + return SVN_NO_ERROR; +} + +static svn_error_t * +test_git_diffs_with_spaces_diff(apr_pool_t *pool) +{ + apr_file_t *patch_file; + svn_patch_t *patch; + const char *fname = "test_git_diffs_with_spaces_diff.patch"; + + SVN_ERR(create_patch_file(&patch_file, fname, path_with_spaces_unidiff, + pool)); + + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, "path 1")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, "path 1")); + SVN_TEST_ASSERT(patch->operation == svn_diff_op_added); + SVN_TEST_ASSERT(patch->hunks->nelts == 0); + + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, "path one 1")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, "path one 1")); + SVN_TEST_ASSERT(patch->operation == svn_diff_op_added); + SVN_TEST_ASSERT(patch->hunks->nelts == 0); + + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, "dir/ b/path")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, "dir/ b/path")); + SVN_TEST_ASSERT(patch->operation == svn_diff_op_added); + SVN_TEST_ASSERT(patch->hunks->nelts == 0); + + SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file, + FALSE, /* reverse */ + FALSE, /* ignore_whitespace */ + pool, pool)); + SVN_TEST_ASSERT(patch); + SVN_TEST_ASSERT(! strcmp(patch->old_filename, " b/path 1")); + SVN_TEST_ASSERT(! strcmp(patch->new_filename, " b/path 1")); + SVN_TEST_ASSERT(patch->operation == svn_diff_op_added); + SVN_TEST_ASSERT(patch->hunks->nelts == 0); + + return SVN_NO_ERROR; +} /* ========================================================================== */ struct svn_test_descriptor_t test_funcs[] = @@ -662,12 +920,16 @@ struct svn_test_descriptor_t test_funcs[ SVN_TEST_PASS2(test_parse_git_diff, "test git unidiff parsing"), SVN_TEST_PASS2(test_parse_git_tree_and_text_diff, - "test git unidiff parsing of tree and text changes"), + "test git unidiff parsing of tree and text changes"), SVN_TEST_XFAIL2(test_bad_git_diff_headers, "test badly formatted git diff headers"), SVN_TEST_PASS2(test_parse_property_diff, "test property unidiff parsing"), SVN_TEST_PASS2(test_parse_property_and_text_diff, "test property and text unidiff parsing"), + SVN_TEST_PASS2(test_parse_diff_symbols_in_prop_unidiff, + "test property diffs with odd symbols"), + SVN_TEST_PASS2(test_git_diffs_with_spaces_diff, + "test git diffs with spaces in paths"), SVN_TEST_NULL };
Modified: subversion/branches/performance/subversion/tests/libsvn_subr/dirent_uri-test.c URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/subversion/tests/libsvn_subr/dirent_uri-test.c (original) +++ subversion/branches/performance/subversion/tests/libsvn_subr/dirent_uri-test.c Mon Sep 6 20:02:15 2010 @@ -2792,6 +2792,73 @@ test_file_url_from_dirent(apr_pool_t *po return SVN_NO_ERROR; } +static svn_error_t * +test_dirent_is_under_root(apr_pool_t *pool) +{ + struct { + const char *base_path; + const char *path; + svn_boolean_t under_root; + const char *result; + } tests[] = { + { "/", "/base", FALSE}, + { "/aa", "/aa/bb", FALSE}, + { "/base", "/base2", FALSE}, + { "/b", "bb", TRUE, "/b/bb"}, + { "/b", "../bb", FALSE}, + { "/b", "r/./bb", TRUE, "/b/r/bb"}, + { "/b", "r/../bb", TRUE, "/b/bb"}, + { "/b", "r/../../bb", FALSE}, + { "/b", "./bb", TRUE, "/b/bb"}, + { "/b", ".", TRUE, "/b"}, + { "/b", "", TRUE, "/b"}, + { "b", "b", TRUE, "b/b"}, +#ifdef SVN_USE_DOS_PATHS + { "C:/file", "a\\d", TRUE, "C:/file/a/d"}, + { "C:/file", "aa\\..\\d", TRUE, "C:/file/d"}, + { "C:/file", "aa\\..\\..\\d", FALSE}, +#else + { "C:/file", "a\\d", TRUE, "C:/file/a\\d"}, + { "C:/file", "aa\\..\\d", TRUE, "C:/file/aa\\..\\d"}, + { "C:/file", "aa\\..\\..\\d", TRUE, "C:/file/aa\\..\\..\\d"}, +#endif /* SVN_USE_DOS_PATHS */ + }; + int i; + + for (i = 0; i < COUNT_OF(tests); i++) + { + svn_boolean_t under_root; + const char *result; + + SVN_ERR(svn_dirent_is_under_root(&under_root, + &result, + tests[i].base_path, + tests[i].path, + pool)); + + if (under_root != tests[i].under_root) + return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, + "svn_dirent_is_under_root(..\"%s\", \"%s\"..)" + " returned %s expected %s.", + tests[i].base_path, + tests[i].path, + under_root ? "TRUE" : "FALSE", + tests[i].under_root ? "TRUE" : "FALSE"); + + if (under_root + && strcmp(result, tests[i].result) != 0) + return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, + "svn_dirent_is_under_root(..\"%s\", \"%s\"..)" + " found \"%s\" expected \"%s\".", + tests[i].base_path, + tests[i].path, + result, + tests[i].result); + } + + return SVN_NO_ERROR; +} + /* The test table. */ @@ -2890,5 +2957,7 @@ struct svn_test_descriptor_t test_funcs[ "test svn_uri_get_dirent_from_file_url errors"), SVN_TEST_PASS2(test_file_url_from_dirent, "test svn_uri_get_file_url_from_dirent"), + SVN_TEST_PASS2(test_dirent_is_under_root, + "test svn_dirent_is_under_root"), SVN_TEST_NULL }; Modified: subversion/branches/performance/subversion/tests/libsvn_wc/db-test.c URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/libsvn_wc/db-test.c?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/subversion/tests/libsvn_wc/db-test.c (original) +++ subversion/branches/performance/subversion/tests/libsvn_wc/db-test.c Mon Sep 6 20:02:15 2010 @@ -324,6 +324,9 @@ create_fake_wc(const char *subdir, int f #ifdef SVN_WC__NODE_DATA statements[STMT_CREATE_NODE_DATA], #endif +#ifdef SVN_WC__NODES + statements[STMT_CREATE_NODES], +#endif TESTING_DATA, NULL }; @@ -1288,8 +1291,7 @@ test_global_relocate(apr_pool_t *pool) SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE); /* Test relocating to a repos not existant in the db */ - SVN_ERR(svn_wc__db_global_relocate(db, local_abspath, ROOT_THREE, TRUE, - pool)); + SVN_ERR(svn_wc__db_global_relocate(db, local_abspath, ROOT_THREE, pool)); SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL, &repos_relpath, &repos_root_url, &repos_uuid, NULL, NULL, NULL, NULL, Modified: subversion/branches/performance/subversion/tests/libsvn_wc/pristine-store-test.c URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/tests/libsvn_wc/pristine-store-test.c?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/subversion/tests/libsvn_wc/pristine-store-test.c (original) +++ subversion/branches/performance/subversion/tests/libsvn_wc/pristine-store-test.c Mon Sep 6 20:02:15 2010 @@ -162,7 +162,7 @@ pristine_write_read(const svn_test_opts_ svn_boolean_t present; SVN_ERR(svn_wc__db_pristine_check(&present, db, wc_abspath, data_sha1, - svn_wc__db_checkmode_usable, pool)); + pool)); SVN_ERR_ASSERT(! present); } @@ -175,7 +175,7 @@ pristine_write_read(const svn_test_opts_ svn_boolean_t present; SVN_ERR(svn_wc__db_pristine_check(&present, db, wc_abspath, data_sha1, - svn_wc__db_checkmode_usable, pool)); + pool)); SVN_ERR_ASSERT(present); } @@ -220,7 +220,7 @@ pristine_write_read(const svn_test_opts_ svn_boolean_t present; SVN_ERR(svn_wc__db_pristine_check(&present, db, wc_abspath, data_sha1, - svn_wc__db_checkmode_usable, pool)); + pool)); SVN_ERR_ASSERT(! present); } Modified: subversion/branches/performance/tools/backup/hot-backup.py.in URL: http://svn.apache.org/viewvc/subversion/branches/performance/tools/backup/hot-backup.py.in?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/tools/backup/hot-backup.py.in (original) +++ subversion/branches/performance/tools/backup/hot-backup.py.in Mon Sep 6 20:02:15 2010 @@ -106,6 +106,7 @@ Options: zip : Creates a compressed zip file. zip64: Creates a zip64 file (can be > 2GB). --num-backups=N Number of prior backups to keep around (0 to keep all). + --verify Verify the backup. --help -h Print this help message and exit. """ % (scriptname,)) @@ -114,6 +115,7 @@ Options: try: opts, args = getopt.gnu_getopt(sys.argv[1:], "h?", ["archive-type=", "num-backups=", + "verify", "help"]) except getopt.GetoptError, e: sys.stderr.write("ERROR: %s\n\n" % e) @@ -122,12 +124,15 @@ except getopt.GetoptError, e: sys.exit(2) archive_type = None +verify_copy = False for o, a in opts: if o == "--archive-type": archive_type = a elif o == "--num-backups": num_backups = int(a) + elif o == "--verify": + verify_copy = True elif o in ("-h", "--help", "-?"): usage() sys.exit() @@ -266,8 +271,18 @@ if err_code != 0: else: print("Done.") +### Step 4: Verify the hotcopy +if verify_copy: + print("Verifying backup...") + err_code = subprocess.call([svnadmin, "verify", "--quiet", backup_subdir]) + if err_code != 0: + sys.stderr.write("Backup verification failed.\n") + sys.stderr.flush() + sys.exit(err_code) + else: + print("Done.") -### Step 4: Make an archive of the backup if required. +### Step 5: Make an archive of the backup if required. if archive_type: archive_path = backup_subdir + archive_map[archive_type] err_msg = "" @@ -321,7 +336,7 @@ if archive_type: print("Archive created, removing backup '" + backup_subdir + "'...") safe_rmtree(backup_subdir, 1) -### Step 5: finally, remove all repository backups other than the last +### Step 6: finally, remove all repository backups other than the last ### NUM_BACKUPS. if num_backups > 0: Modified: subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd URL: http://svn.apache.org/viewvc/subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd (original) +++ subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd Mon Sep 6 20:02:15 2010 @@ -29,6 +29,17 @@ IF ERRORLEVEL 1 ( EXIT /B 0 ) +PATH %PATH%;%TESTDIR%\bin +SET result=0 + + +echo python win-tests.py -r -f fsfs --javahl "%TESTDIR%\tests" +python win-tests.py -r -f fsfs --javahl "%TESTDIR%\tests" +IF ERRORLEVEL 1 ( + echo [python reported error %ERRORLEVEL%] + SET result=1 +) + IF EXIST "%TESTDIR%\swig" rmdir /s /q "%TESTDIR%\swig" mkdir "%TESTDIR%\swig\py-release\libsvn" mkdir "%TESTDIR%\swig\py-release\svn" @@ -38,16 +49,12 @@ xcopy "release\subversion\bindings\swig\ xcopy "subversion\bindings\swig\python\*.py" "%TESTDIR%\swig\py-release\libsvn\*.py" xcopy "subversion\bindings\swig\python\svn\*.py" "%TESTDIR%\swig\py-release\svn\*.py" -PATH %PATH%;%TESTDIR%\bin SET PYTHONPATH=%TESTDIR%\swig\py-release -SET result=0 - python subversion\bindings\swig\python\tests\run_all.py -IF ERRORLEVEL 1 SET result=1 - -echo win-tests.py -r -f fsfs --javahl "%TESTDIR%\tests" -win-tests.py -r -f fsfs --javahl "%TESTDIR%\tests" -IF ERRORLEVEL 1 SET result=1 +IF ERRORLEVEL 1 ( + echo [Python reported error %ERRORLEVEL%] + SET result=1 +) -exit /b %RESULT% +exit /b %result% Modified: subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd URL: http://svn.apache.org/viewvc/subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd (original) +++ subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd Mon Sep 6 20:02:15 2010 @@ -51,9 +51,14 @@ POPD taskkill /im svn.exe /f 2> nul: taskkill /im svnadmin.exe /f 2> nul: taskkill /im svnserve.exe /f 2> nul: +taskkill /im svnrdump.exe /f 2> nul: +taskkill /im svnsync.exe /f 2> nul: taskkill /im httpd.exe /f 2> nul: IF EXIST "%TESTDIR%\tests\subversion\tests\cmdline\httpd\" ( rmdir /s /q "%TESTDIR%\tests\subversion\tests\cmdline\httpd" ) +del "%TESTDIR%\tests\*.log" 2> nul: + + exit /B 0 Propchange: subversion/branches/performance/tools/dev/svnraisetreeconflict/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Mon Sep 6 20:02:15 2010 @@ -1 +1,2 @@ .libs +svnraisetreeconflict Modified: subversion/branches/performance/tools/dev/unix-build/Makefile.svn URL: http://svn.apache.org/viewvc/subversion/branches/performance/tools/dev/unix-build/Makefile.svn?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/tools/dev/unix-build/Makefile.svn (original) +++ subversion/branches/performance/tools/dev/unix-build/Makefile.svn Mon Sep 6 20:02:15 2010 @@ -10,6 +10,7 @@ ENABLE_JAVA_BINDINGS ?= no # they don't USE_APR_ICONV ?= no # set to yes to use APR iconv instead of GNU iconv PWD = $(shell pwd) +UNAME = $(shell uname) TAG ?= none ifeq ($(TAG),none) @@ -36,7 +37,8 @@ GNU_ICONV_VER = 1.13.1 APR_UTIL_VER = 1.3.9 HTTPD_VER = 2.2.15 NEON_VER = 0.29.3 -SERF_VER = 0.6.x +SERF_VER = 0.7.x +CYRUS_SASL_VER = 2.1.23 SQLITE_VER = 3.6.23.1 BDB_DIST = db-$(BDB_VER).tar.gz @@ -45,6 +47,7 @@ GNU_ICONV_DIST = libiconv-$(GNU_ICONV_VE NEON_DIST = neon-$(NEON_VER).tar.gz #SERF_DIST = serf-$(SERF_VER).tar.gz SQLITE_DIST = sqlite-$(SQLITE_VER).tar.gz +CYRUS_SASL_DIST = cyrus-sasl-$(CYRUS_SASL_VER).tar.gz HTTPD_DIST = httpd-$(HTTPD_VER).tar.bz2 DISTFILES = $(DISTDIR)/$(NEON_DIST) \ @@ -52,7 +55,8 @@ DISTFILES = $(DISTDIR)/$(NEON_DIST) \ $(DISTDIR)/$(SQLITE_DIST) \ $(DISTDIR)/$(HTTPD_DIST) \ $(DISTDIR)/$(APR_ICONV_DIST) \ - $(DISTDIR)/$(GNU_ICONV_DIST) + $(DISTDIR)/$(GNU_ICONV_DIST) \ + $(DISTDIR)/$(CYRUS_SASL_DIST) FETCH_CMD = wget -c @@ -67,6 +71,7 @@ NEON_URL = http://webdav.org/neon/$(NEON #SERF_URL = http://serf.googlecode.com/files/$(SERF_DIST) SERF_URL = http://serf.googlecode.com/svn/branches/$(SERF_VER) SQLITE_URL = http://www.sqlite.org/$(SQLITE_DIST) +CYRUS_SASL_URL = ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/$(CYRUS_SASL_DIST) BDB_SRCDIR = $(SRCDIR)/db-$(BDB_VER) APR_SRCDIR = $(SRCDIR)/apr-$(APR_VER) @@ -77,6 +82,7 @@ HTTPD_SRCDIR = $(SRCDIR)/httpd-$(HTTPD_V NEON_SRCDIR = $(SRCDIR)/neon-$(NEON_VER) SERF_SRCDIR = $(SRCDIR)/serf-$(SERF_VER) SQLITE_SRCDIR = $(SRCDIR)/sqlite-$(SQLITE_VER) +CYRUS_SASL_SRCDIR = $(SRCDIR)/cyrus-sasl-$(CYRUS_SASL_VER) SVN_SRCDIR = $(SVN_WC) BDB_OBJDIR = $(OBJDIR)/db-$(BDB_VER) @@ -88,6 +94,7 @@ HTTPD_OBJDIR = $(OBJDIR)/httpd-$(HTTPD_V NEON_OBJDIR = $(OBJDIR)/neon-$(NEON_VER) SERF_OBJDIR = $(OBJDIR)/serf-$(SERF_VER) SQLITE_OBJDIR = $(OBJDIR)/sqlite-$(SQLITE_VER) +CYRUS_SASL_OBJDIR = $(OBJDIR)/cyrus-sasl-$(CYRUS_SASL_VER) SVN_OBJDIR = $(OBJDIR)/$(SVN_REL_WC) # Tweak this for out-of-tree builds. Note that running individual @@ -102,16 +109,17 @@ svn_builddir ?=$(SVN_WC) .PHONY: all reset clean nuke all: dirs-create bdb-install apr-install iconv-install apr-util-install \ - httpd-install neon-install serf-install sqlite-install svn-install \ - svn-bindings-install + httpd-install neon-install serf-install sqlite-install \ + cyrus-sasl-install svn-install svn-bindings-install # Use these to start a build from the beginning. reset: dirs-reset bdb-reset apr-reset iconv-reset apr-util-reset \ - httpd-reset neon-reset serf-reset sqlite-reset svn-reset + httpd-reset neon-reset serf-reset sqlite-reset cyrus-sasl-reset \ + svn-reset # Use to save disc space. clean: bdb-clean apr-clean iconv-clean apr-util-clean httpd-clean \ - neon-clean serf-clean svn-clean + neon-clean serf-clean cyrus-sasl-clean svn-clean # Nukes everything (including installed binaries!) # Use this to start ALL OVER AGAIN! Use with caution! @@ -129,7 +137,7 @@ nuke: yes) echo "You said $$ANSWER. I will continue."; \ echo rm -rf $(SRCDIR) $(OBJDIR) $(PREFIX); \ rm -rf $(SRCDIR) $(OBJDIR) $(PREFIX); \ - echo "Remember to reset the build!"; \ + $(MAKE) reset; \ ;; \ "") echo "You said no."; \ ;; \ @@ -528,11 +536,22 @@ $(NEON_OBJDIR)/.retrieved: $(DISTDIR)/$( tar -C $(SRCDIR) -zxf $(DISTDIR)/$(NEON_DIST) touch $@ +# OpenBSD does not have krb5-config in PATH, but the neon port has +# a suitable replacement. +ifeq ($(UNAME),OpenBSD) +KRB5_CONFIG_PATH=/usr/ports/net/neon/files +endif + # configure neon $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved cd $(NEON_SRCDIR) && ./autogen.sh + if [ -n "$(KRB5_CONFIG_PATH)" -a -d "$(KRB5_CONFIG_PATH)" ]; then \ + cp $(KRB5_CONFIG_PATH)/krb5-config $(NEON_OBJDIR); \ + chmod +x $(NEON_OBJDIR)/krb5-config; \ + fi cd $(NEON_OBJDIR) \ && env CFLAGS="-g" $(NEON_SRCDIR)/configure \ + PATH=$(NEON_OBJDIR):$$PATH \ --prefix=$(PREFIX)/neon \ --with-ssl \ --enable-shared @@ -644,6 +663,56 @@ $(SQLITE_OBJDIR)/.installed: $(SQLITE_OB touch $@ ####################################################################### +# cyrus-sasl +####################################################################### + +cyrus-sasl-retrieve: $(CYRUS_SASL_OBJDIR)/.retrieved +cyrus-sasl-configure: $(CYRUS_SASL_OBJDIR)/.configured +cyrus-sasl-compile: $(CYRUS_SASL_OBJDIR)/.compiled +cyrus-sasl-install: $(CYRUS_SASL_OBJDIR)/.installed +cyrus-sasl-reset: + $(foreach f, .retrieved .configured .compiled .installed, \ + rm -f $(CYRUS_SASL_OBJDIR)/$(f);) + +cyrus-sasl-clean: + -(cd $(CYRUS_SASL_OBJDIR) && make clean) + +# fetch distfile for cyrus-sasl +$(DISTDIR)/$(CYRUS_SASL_DIST): + cd $(DISTDIR) && $(FETCH_CMD) $(CYRUS_SASL_URL) + +# retrieve cyrus-sasl +$(CYRUS_SASL_OBJDIR)/.retrieved: $(DISTDIR)/$(CYRUS_SASL_DIST) + [ -d $(CYRUS_SASL_OBJDIR) ] || mkdir -p $(CYRUS_SASL_OBJDIR) + tar -C $(SRCDIR) -zxf $(DISTDIR)/$(CYRUS_SASL_DIST) + touch $@ + +# configure cyrus-sasl +$(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved + cd $(CYRUS_SASL_OBJDIR) \ + && env CFLAGS="-g" $(CYRUS_SASL_SRCDIR)/configure \ + --with-dbpath=$(PREFIX)/cyrus-sasl/etc/sasldb2 \ + --with-plugindir=$(PREFIX)/cyrus-sasl/lib/sasl2 \ + --with-configdir=$(PREFIX)/cyrus-sasl/lib/sasl2 \ + --with-bdb-libdir=$(PREFIX)/bdb/lib \ + --with-bdb-incdir=$(PREFIX)/bdb/include \ + --with-dblib=berkeley \ + --with-sqlite=$(PREFIX)/sqlite \ + --prefix=$(PREFIX)/cyrus-sasl + touch $@ + +# compile cyrus-sasl +$(CYRUS_SASL_OBJDIR)/.compiled: $(CYRUS_SASL_OBJDIR)/.configured + (cd $(CYRUS_SASL_OBJDIR) && make) + touch $@ + +# install cyrus-sasl +$(CYRUS_SASL_OBJDIR)/.installed: $(CYRUS_SASL_OBJDIR)/.compiled + (cd $(CYRUS_SASL_OBJDIR) && make install) + touch $@ + + +####################################################################### # svn ####################################################################### @@ -734,7 +803,7 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR) --with-serf="$(PREFIX)/serf" \ --with-sqlite="$(PREFIX)/sqlite" \ --with-berkeley-db="$(BDB_FLAG)" \ - --with-sasl="no" \ + --with-sasl="$(PREFIX)/cyrus-sasl" \ --with-ruby-sitedir="$(SVN_PREFIX)/lib/ruby/site_ruby" \ --disable-mod-activation \ $(JAVAHL_FLAG) Propchange: subversion/branches/performance/tools/server-side/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Mon Sep 6 20:02:15 2010 @@ -1,3 +1,4 @@ .libs svn-populate-node-origins-index svnauthz-validate +svn-rep-sharing-stats Modified: subversion/branches/performance/win-tests.py URL: http://svn.apache.org/viewvc/subversion/branches/performance/win-tests.py?rev=993141&r1=993140&r2=993141&view=diff ============================================================================== --- subversion/branches/performance/win-tests.py (original) +++ subversion/branches/performance/win-tests.py Mon Sep 6 20:02:15 2010 @@ -59,6 +59,7 @@ def _usage_exit(): print(" -u URL, --url=URL : run ra_dav or ra_svn tests against URL;") print(" will start svnserve for ra_svn tests") print(" -v, --verbose : talk more") + print(" -q, --quiet : talk less") print(" -f, --fs-type=type : filesystem type to use (fsfs is default)") print(" -c, --cleanup : cleanup after running a test") print(" -t, --test=TEST : Run the TEST test (all is default); use") @@ -111,9 +112,9 @@ for section in gen_obj.sections.values() dll_basename = section.name + "-" + str(gen_obj.version) + ".dll" svn_dlls.append(os.path.join("subversion", section.name, dll_basename)) -opts, args = my_getopt(sys.argv[1:], 'hrdvct:pu:f:', - ['release', 'debug', 'verbose', 'cleanup', 'test=', - 'url=', 'svnserve-args=', 'fs-type=', 'asp.net-hack', +opts, args = my_getopt(sys.argv[1:], 'hrdvqct:pu:f:', + ['release', 'debug', 'verbose', 'quiet', 'cleanup', + 'test=', 'url=', 'svnserve-args=', 'fs-type=', 'asp.net-hack', 'httpd-dir=', 'httpd-port=', 'httpd-daemon', 'httpd-server', 'http-library=', 'help', 'fsfs-packing', 'fsfs-sharding=', 'javahl', @@ -123,7 +124,7 @@ if len(args) > 1: print('Warning: non-option arguments after the first one will be ignored') # Interpret the options and set parameters -base_url, fs_type, verbose, cleanup = None, None, None, None +base_url, fs_type, verbose, quiet, cleanup = None, None, None, None, None repo_loc = 'local repository.' objdir = 'Debug' log = 'tests.log' @@ -154,6 +155,8 @@ for opt, val in opts: fs_type = val elif opt in ('-v', '--verbose'): verbose = 1 + elif opt in ('-q', '--quiet'): + quiet = 1 elif opt in ('-c', '--cleanup'): cleanup = 1 elif opt in ('-t', '--test'): @@ -468,6 +471,7 @@ class Httpd: fp.write(self._sys_module('authn_file_module', 'mod_authn_file.so')) else: fp.write(self._sys_module('auth_module', 'mod_auth.so')) + fp.write(self._sys_module('alias_module', 'mod_alias.so')) fp.write(self._sys_module('mime_module', 'mod_mime.so')) fp.write(self._sys_module('log_config_module', 'mod_log_config.so')) @@ -479,10 +483,16 @@ class Httpd: fp.write(self._svn_repo('repositories')) fp.write(self._svn_repo('local_tmp')) + # And two redirects for the redirect tests + fp.write('RedirectMatch permanent ^/svn-test-work/repositories/' + 'REDIRECT-PERM-(.*)$ /svn-test-work/repositories/$1\n') + fp.write('RedirectMatch ^/svn-test-work/repositories/' + 'REDIRECT-TEMP-(.*)$ /svn-test-work/repositories/$1\n') + fp.write('TypesConfig ' + self._quote(self.httpd_mime_types) + '\n') fp.write('LogLevel Debug\n') fp.write('HostNameLookups Off\n') - + fp.close() def __del__(self): @@ -653,8 +663,8 @@ if not test_javahl: os.path.join(abs_builddir, log), os.path.join(abs_builddir, faillog), base_url, fs_type, http_library, - server_minor_version, 1, cleanup, - enable_sasl, parallel, config_file, + server_minor_version, not quiet, + cleanup, enable_sasl, parallel, config_file, fsfs_sharding, fsfs_packing, list_tests, svn_bin) old_cwd = os.getcwd()
