You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2010/12/02 21:55:18 UTC
svn commit: r1041580 [33/35] - in
/subversion/branches/gpg-agent-password-store: ./ build/ build/ac-macros/
build/generator/ build/generator/templates/ build/win32/
contrib/hook-scripts/ contrib/server-side/ notes/http-and-webdav/
notes/wc-ng/ subversi...
Modified: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_diff/parse-diff-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_diff/parse-diff-test.c?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_diff/parse-diff-test.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_diff/parse-diff-test.c Thu Dec 2 20:55:08 2010
@@ -301,10 +301,7 @@ check_content(svn_diff_hunk_t *hunk, svn
SVN_TEST_ASSERT(exp_eof == hunk_eof);
if (exp_eof)
break;
- if (strcmp(exp_buf->data, hunk_buf->data))
- return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
- "Expected '%s' but was '%s'", exp_buf->data,
- hunk_buf->data);
+ SVN_TEST_STRING_ASSERT(exp_buf->data, hunk_buf->data);
}
SVN_TEST_ASSERT(hunk_buf->len == 0);
@@ -345,8 +342,8 @@ test_parse_unidiff(apr_pool_t *pool)
ignore_whitespace, iterpool,
iterpool));
SVN_TEST_ASSERT(patch);
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/C/gamma"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/C/gamma"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "A/C/gamma");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "A/C/gamma");
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
hunk = APR_ARRAY_IDX(patch->hunks, 0, svn_diff_hunk_t *);
@@ -365,13 +362,13 @@ test_parse_unidiff(apr_pool_t *pool)
SVN_TEST_ASSERT(patch);
if (reverse)
{
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/D/gamma.orig"));
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/D/gamma"));
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "A/D/gamma.orig");
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "A/D/gamma");
}
else
{
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/D/gamma.orig"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/D/gamma"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "A/D/gamma.orig");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "A/D/gamma");
}
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -409,8 +406,8 @@ test_parse_git_diff(apr_pool_t *pool)
FALSE, /* ignore_whitespace */
pool, pool));
SVN_TEST_ASSERT(patch);
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/mu"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/mu"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "A/mu");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "A/mu");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_deleted);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
@@ -420,8 +417,8 @@ test_parse_git_diff(apr_pool_t *pool)
FALSE, /* ignore_whitespace */
pool, pool));
SVN_TEST_ASSERT(patch);
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/C/gamma"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/C/gamma"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "A/C/gamma");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "A/C/gamma");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_modified);
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -443,8 +440,8 @@ test_parse_git_diff(apr_pool_t *pool)
pool, pool));
SVN_TEST_ASSERT(patch);
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "iota"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "iota.copied"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "iota");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "iota.copied");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_copied);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
@@ -455,8 +452,8 @@ test_parse_git_diff(apr_pool_t *pool)
pool, pool));
SVN_TEST_ASSERT(patch);
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "new"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "new"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "new");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "new");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
@@ -482,8 +479,8 @@ test_parse_git_tree_and_text_diff(apr_po
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.copied"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "iota");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "iota.copied");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_copied);
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -504,8 +501,8 @@ test_parse_git_tree_and_text_diff(apr_po
FALSE, /* ignore_whitespace */
pool, pool));
SVN_TEST_ASSERT(patch);
- SVN_TEST_ASSERT(! strcmp(patch->old_filename, "A/mu"));
- SVN_TEST_ASSERT(! strcmp(patch->new_filename, "A/mu.moved"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "A/mu");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "A/mu.moved");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_moved);
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -525,8 +522,8 @@ test_parse_git_tree_and_text_diff(apr_po
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_STRING_ASSERT(patch->old_filename, "/dev/null");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "new");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -545,8 +542,8 @@ test_parse_git_tree_and_text_diff(apr_po
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_STRING_ASSERT(patch->old_filename, "A/B/lambda");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "/dev/null");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_deleted);
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -579,8 +576,8 @@ test_bad_git_diff_headers(apr_pool_t *po
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.copied"));
+ SVN_TEST_STRING_ASSERT(patch->old_filename, "iota");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "iota.copied");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_copied);
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
@@ -617,8 +614,8 @@ test_parse_property_diff(apr_pool_t *poo
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_STRING_ASSERT(patch->old_filename, "iota");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "iota");
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
SVN_TEST_ASSERT(apr_hash_count(patch->prop_patches) == 3);
@@ -720,8 +717,8 @@ test_parse_property_and_text_diff(apr_po
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_STRING_ASSERT(patch->old_filename, "iota");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "iota");
SVN_TEST_ASSERT(patch->hunks->nelts == 1);
SVN_TEST_ASSERT(apr_hash_count(patch->prop_patches) == 1);
@@ -775,8 +772,8 @@ test_parse_diff_symbols_in_prop_unidiff(
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_STRING_ASSERT(patch->old_filename, "iota");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "iota");
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
SVN_TEST_ASSERT(apr_hash_count(patch->prop_patches) == 3);
@@ -873,8 +870,8 @@ test_git_diffs_with_spaces_diff(apr_pool
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_STRING_ASSERT(patch->old_filename, "path 1");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "path 1");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
@@ -883,8 +880,8 @@ test_git_diffs_with_spaces_diff(apr_pool
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_STRING_ASSERT(patch->old_filename, "path one 1");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "path one 1");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
@@ -893,8 +890,8 @@ test_git_diffs_with_spaces_diff(apr_pool
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_STRING_ASSERT(patch->old_filename, "dir/ b/path");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, "dir/ b/path");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
@@ -903,8 +900,8 @@ test_git_diffs_with_spaces_diff(apr_pool
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_STRING_ASSERT(patch->old_filename, " b/path 1");
+ SVN_TEST_STRING_ASSERT(patch->new_filename, " b/path 1");
SVN_TEST_ASSERT(patch->operation == svn_diff_op_added);
SVN_TEST_ASSERT(patch->hunks->nelts == 0);
Modified: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_base/strings-reps-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_base/strings-reps-test.c?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_base/strings-reps-test.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_base/strings-reps-test.c Thu Dec 2 20:55:08 2010
@@ -188,8 +188,8 @@ read_rep(const svn_test_opts_t *opts,
(pool, "((fulltext 0 (md5 16 XXXXXXXXXXXXXXXX)) kfogel31337");
char *new_rep_after = apr_pstrdup
(pool, "((fulltext 0 (md5 16 XXXXXXXXXXXXXXXX)) a83t2Z0");
- int rep_after_len = strlen(rep_after);
- int new_rep_after_len = strlen(new_rep_after);
+ size_t rep_after_len = strlen(rep_after);
+ size_t new_rep_after_len = strlen(new_rep_after);
/* Replace the fake fake checksums with the real fake checksums.
And someday, when checksums are actually calculated, we can
Modified: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_fs/fs-pack-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_fs/fs-pack-test.c?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_fs/fs-pack-test.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_fs_fs/fs-pack-test.c Thu Dec 2 20:55:08 2010
@@ -34,16 +34,14 @@
#include "../svn_test_fs.h"
-/*-----------------------------------------------------------------*/
-/** The actual fs-tests called by `make check` **/
+/*** Helper Functions ***/
/* Write the format number and maximum number of files per directory
- to a new format file in PATH, overwriting a previously existing file.
+ to a new format file in PATH, overwriting a previously existing
+ file. Use POOL for temporary allocation.
- Use POOL for temporary allocation.
-
- This implementation is largely stolen from libsvn_fs_fs/fs_fs.c. */
+ (This implementation is largely stolen from libsvn_fs_fs/fs_fs.c.) */
static svn_error_t *
write_format(const char *path,
int format,
@@ -97,12 +95,15 @@ get_rev_contents(svn_revnum_t rev, apr_p
return apr_psprintf(pool, "%" APR_INT64_T_FMT "\n", num);
}
-/* Create a packed filesystem in DIR. Set the shard size to SHARD_SIZE
- and create MAX_REV number of revisions. Use POOL for allocations. */
+/* Create a packed filesystem in DIR. Set the shard size to
+ SHARD_SIZE and create NUM_REVS number of revisions (in addition to
+ r0). Use POOL for allocations. After this function successfully
+ completes, the filesystem's youngest revision number will be the
+ same as NUM_REVS. */
static svn_error_t *
create_packed_filesystem(const char *dir,
const svn_test_opts_t *opts,
- int max_rev,
+ int num_revs,
int shard_size,
apr_pool_t *pool)
{
@@ -133,9 +134,9 @@ create_packed_filesystem(const char *dir
SVN_ERR(svn_test__create_greek_tree(txn_root, subpool));
SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, subpool));
- /* Revisions 2-11: A bunch of random changes. */
+ /* Revisions 2 thru NUM_REVS-1: content tweaks to "iota". */
iterpool = svn_pool_create(subpool);
- while (after_rev < max_rev + 1)
+ while (after_rev < num_revs)
{
svn_pool_clear(iterpool);
SVN_ERR(svn_fs_begin_txn(&txn, fs, after_rev, iterpool));
@@ -153,7 +154,10 @@ create_packed_filesystem(const char *dir
return svn_fs_pack(dir, NULL, NULL, NULL, NULL, pool);
}
-/* Pack a filesystem. */
+
+/*** Tests ***/
+
+/* ------------------------------------------------------------------------ */
#define REPO_NAME "test-repo-fsfs-pack"
#define SHARD_SIZE 7
#define MAX_REV 53
@@ -181,7 +185,8 @@ pack_filesystem(const svn_test_opts_t *o
for (i = 0; i < (MAX_REV + 1) / SHARD_SIZE; i++)
{
path = svn_path_join_many(pool, REPO_NAME, "revs",
- apr_psprintf(pool, "%d.pack", i / SHARD_SIZE), "pack", NULL);
+ apr_psprintf(pool, "%d.pack", i / SHARD_SIZE),
+ "pack", NULL);
/* These files should exist. */
SVN_ERR(svn_io_check_path(path, &kind, pool));
@@ -190,7 +195,8 @@ pack_filesystem(const svn_test_opts_t *o
"Expected pack file '%s' not found", path);
path = svn_path_join_many(pool, REPO_NAME, "revs",
- apr_psprintf(pool, "%d.pack", i / SHARD_SIZE), "manifest", NULL);
+ apr_psprintf(pool, "%d.pack", i / SHARD_SIZE),
+ "manifest", NULL);
SVN_ERR(svn_io_check_path(path, &kind, pool));
if (kind != svn_node_file)
return svn_error_createf(SVN_ERR_FS_GENERAL, NULL,
@@ -199,7 +205,8 @@ pack_filesystem(const svn_test_opts_t *o
/* This directory should not exist. */
path = svn_path_join_many(pool, REPO_NAME, "revs",
- apr_psprintf(pool, "%d", i / SHARD_SIZE), NULL);
+ apr_psprintf(pool, "%d", i / SHARD_SIZE),
+ NULL);
SVN_ERR(svn_io_check_path(path, &kind, pool));
if (kind != svn_node_none)
return svn_error_createf(SVN_ERR_FS_GENERAL, NULL,
@@ -220,12 +227,12 @@ pack_filesystem(const svn_test_opts_t *o
/* Finally, make sure the final revision directory does exist. */
path = svn_path_join_many(pool, REPO_NAME, "revs",
- apr_psprintf(pool, "%d", (i / SHARD_SIZE) + 1), NULL);
+ apr_psprintf(pool, "%d", (i / SHARD_SIZE) + 1),
+ NULL);
SVN_ERR(svn_io_check_path(path, &kind, pool));
if (kind != svn_node_none)
return svn_error_createf(SVN_ERR_FS_GENERAL, NULL,
- "Expected directory '%s' not found",
- path);
+ "Expected directory '%s' not found", path);
return SVN_NO_ERROR;
@@ -234,10 +241,10 @@ pack_filesystem(const svn_test_opts_t *o
#undef SHARD_SIZE
#undef MAX_REV
-/* Pack a filesystem. */
+/* ------------------------------------------------------------------------ */
#define REPO_NAME "test-repo-fsfs-pack-even"
#define SHARD_SIZE 4
-#define MAX_REV 10
+#define MAX_REV 11
static svn_error_t *
pack_even_filesystem(const svn_test_opts_t *opts,
apr_pool_t *pool)
@@ -265,8 +272,10 @@ pack_even_filesystem(const svn_test_opts
#undef SHARD_SIZE
#undef MAX_REV
-/* Check reading from a packed filesystem. */
+/* ------------------------------------------------------------------------ */
#define REPO_NAME "test-repo-read-packed-fs"
+#define SHARD_SIZE 5
+#define MAX_REV 11
static svn_error_t *
read_packed_fs(const svn_test_opts_t *opts,
apr_pool_t *pool)
@@ -281,10 +290,10 @@ read_packed_fs(const svn_test_opts_t *op
|| (opts->server_minor_version && (opts->server_minor_version < 6)))
return SVN_NO_ERROR;
- SVN_ERR(create_packed_filesystem(REPO_NAME, opts, 11, 5, pool));
+ SVN_ERR(create_packed_filesystem(REPO_NAME, opts, MAX_REV, SHARD_SIZE, pool));
SVN_ERR(svn_fs_open(&fs, REPO_NAME, NULL, pool));
- for (i = 1; i < 12; i++)
+ for (i = 1; i < (MAX_REV + 1); i++)
{
svn_fs_root_t *rev_root;
svn_stringbuf_t *sb;
@@ -306,9 +315,13 @@ read_packed_fs(const svn_test_opts_t *op
return SVN_NO_ERROR;
}
#undef REPO_NAME
+#undef SHARD_SIZE
+#undef MAX_REV
-/* Check reading from a packed filesystem. */
+/* ------------------------------------------------------------------------ */
#define REPO_NAME "test-repo-commit-packed-fs"
+#define SHARD_SIZE 5
+#define MAX_REV 10
static svn_error_t *
commit_packed_fs(const svn_test_opts_t *opts,
apr_pool_t *pool)
@@ -325,11 +338,11 @@ commit_packed_fs(const svn_test_opts_t *
return SVN_NO_ERROR;
/* Create the packed FS and open it. */
- SVN_ERR(create_packed_filesystem(REPO_NAME, opts, 11, 5, pool));
+ SVN_ERR(create_packed_filesystem(REPO_NAME, opts, MAX_REV, 5, pool));
SVN_ERR(svn_fs_open(&fs, REPO_NAME, NULL, pool));
/* Now do a commit. */
- SVN_ERR(svn_fs_begin_txn(&txn, fs, 12, pool));
+ SVN_ERR(svn_fs_begin_txn(&txn, fs, MAX_REV, pool));
SVN_ERR(svn_fs_txn_root(&txn_root, txn, pool));
SVN_ERR(svn_test__set_file_contents(txn_root, "iota",
"How much better is it to get wisdom than gold! and to get "
@@ -339,9 +352,11 @@ commit_packed_fs(const svn_test_opts_t *
return SVN_NO_ERROR;
}
#undef REPO_NAME
+#undef MAX_REV
+#undef SHARD_SIZE
-/* Get/set revprop while repository is being packed in background. */
-#define REPO_NAME "test-get-set-revprop-packed-fs"
+/* ------------------------------------------------------------------------ */
+#define REPO_NAME "test-repo-get-set-revprop-packed-fs"
#define SHARD_SIZE 4
#define MAX_REV 1
static svn_error_t *
@@ -367,7 +382,7 @@ get_set_revprop_packed_fs(const svn_test
subpool = svn_pool_create(pool);
/* Do a commit to trigger packing. */
- SVN_ERR(svn_fs_begin_txn(&txn, fs, MAX_REV + 1, subpool));
+ SVN_ERR(svn_fs_begin_txn(&txn, fs, MAX_REV, subpool));
SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool));
SVN_ERR(svn_test__set_file_contents(txn_root, "iota", "new-iota", subpool));
SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, subpool));
@@ -377,14 +392,81 @@ get_set_revprop_packed_fs(const svn_test
SVN_ERR(svn_fs_pack(REPO_NAME, NULL, NULL, NULL, NULL, pool));
/* Try to get revprop for revision 0. */
- SVN_ERR(svn_fs_revision_prop(&prop_value, fs, 0, SVN_PROP_REVISION_AUTHOR, pool));
+ SVN_ERR(svn_fs_revision_prop(&prop_value, fs, 0, SVN_PROP_REVISION_AUTHOR,
+ pool));
/* Try to change revprop for revision 0. */
SVN_ERR(svn_fs_change_rev_prop(fs, 0, SVN_PROP_REVISION_AUTHOR,
- svn_string_create("tweaked-author", pool), pool));
+ svn_string_create("tweaked-author", pool),
+ pool));
return SVN_NO_ERROR;
}
+#undef REPO_NAME
+#undef MAX_REV
+#undef SHARD_SIZE
+
+/* ------------------------------------------------------------------------ */
+/* Regression test for issue #3571 (fsfs 'svnadmin recover' expects
+ youngest revprop to be outside revprops.db). */
+#define REPO_NAME "test-repo-recover-fully-packed"
+#define SHARD_SIZE 4
+#define MAX_REV 7
+static svn_error_t *
+recover_fully_packed(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ apr_pool_t *subpool;
+ svn_fs_t *fs;
+ svn_fs_txn_t *txn;
+ svn_fs_root_t *txn_root;
+ const char *conflict;
+ svn_revnum_t after_rev;
+ svn_error_t *err;
+
+ /* Bail (with success) on known-untestable scenarios */
+ if ((strcmp(opts->fs_type, "fsfs") != 0)
+ || (opts->server_minor_version && (opts->server_minor_version < 7)))
+ return SVN_NO_ERROR;
+
+ /* Create a packed FS for which every revision will live in a pack
+ digest file, and then recover it. */
+ SVN_ERR(create_packed_filesystem(REPO_NAME, opts, MAX_REV, SHARD_SIZE, pool));
+ SVN_ERR(svn_fs_recover(REPO_NAME, NULL, NULL, pool));
+
+ /* Add another revision, re-pack, re-recover. */
+ subpool = svn_pool_create(pool);
+ SVN_ERR(svn_fs_open(&fs, REPO_NAME, NULL, subpool));
+ SVN_ERR(svn_fs_begin_txn(&txn, fs, MAX_REV, subpool));
+ SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool));
+ SVN_ERR(svn_test__set_file_contents(txn_root, "A/mu", "new-mu", subpool));
+ SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, subpool));
+ svn_pool_destroy(subpool);
+ SVN_ERR(svn_fs_pack(REPO_NAME, NULL, NULL, NULL, NULL, pool));
+ SVN_ERR(svn_fs_recover(REPO_NAME, NULL, NULL, pool));
+
+ /* Now, delete the youngest revprop file, and recover again. This
+ time we want to see an error! */
+ SVN_ERR(svn_io_remove_file2(
+ svn_dirent_join_many(pool, REPO_NAME, PATH_REVPROPS_DIR,
+ apr_psprintf(pool, "%ld/%ld",
+ after_rev / SHARD_SIZE,
+ after_rev),
+ NULL),
+ FALSE, pool));
+ err = svn_fs_recover(REPO_NAME, NULL, NULL, pool);
+ if (! err)
+ return svn_error_create(SVN_ERR_TEST_FAILED, NULL,
+ "Expected SVN_ERR_FS_CORRUPT error; got none");
+ if (err->apr_err != SVN_ERR_FS_CORRUPT)
+ return svn_error_create(SVN_ERR_TEST_FAILED, err,
+ "Expected SVN_ERR_FS_CORRUPT error; got:");
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+}
+#undef REPO_NAME
+#undef MAX_REV
+#undef SHARD_SIZE
/* ------------------------------------------------------------------------ */
@@ -403,5 +485,7 @@ struct svn_test_descriptor_t test_funcs[
"commit to a packed FSFS filesystem"),
SVN_TEST_OPTS_PASS(get_set_revprop_packed_fs,
"get/set revprop while packing FSFS filesystem"),
+ SVN_TEST_OPTS_PASS(recover_fully_packed,
+ "recover a fully packed filesystem"),
SVN_TEST_NULL
};
Modified: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/dirent_uri-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/dirent_uri-test.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/dirent_uri-test.c Thu Dec 2 20:55:08 2010
@@ -1514,7 +1514,6 @@ test_relpath_is_ancestor(apr_pool_t *poo
} tests[] = {
{ "foo", "foo/bar", TRUE},
{ "food/bar", "foo/bar", FALSE},
- { "/", "/foo", TRUE},
{ "", "foo", TRUE},
{ "", ".bar", TRUE},
{ "foo/bar", "foo", FALSE},
@@ -1640,7 +1639,7 @@ test_dirent_skip_ancestor(apr_pool_t *po
if (strcmp(tests[i].result, retval))
return svn_error_createf(
SVN_ERR_TEST_FAILED, NULL,
- "test_dirent_skip_ancestor (%s, %s) returned %s instead of %s",
+ "svn_dirent_skip_ancestor (%s, %s) returned %s instead of %s",
tests[i].path1, tests[i].path2, retval, tests[i].result);
}
return SVN_NO_ERROR;
@@ -1846,8 +1845,8 @@ test_relpath_get_longest_ancestor(apr_po
{
const char *retval;
- retval = svn_uri_get_longest_ancestor(tests[i].path1, tests[i].path2,
- pool);
+ retval = svn_relpath_get_longest_ancestor(tests[i].path1, tests[i].path2,
+ pool);
if (strcmp(tests[i].result, retval))
return svn_error_createf
@@ -2859,6 +2858,198 @@ test_dirent_is_under_root(apr_pool_t *po
return SVN_NO_ERROR;
}
+static svn_error_t *
+test_fspath_is_canonical(apr_pool_t *pool)
+{
+ struct {
+ const char *path;
+ svn_boolean_t canonical;
+ } tests[] = {
+ { "", FALSE },
+ { ".", FALSE },
+ { "/", TRUE },
+ { "/a", TRUE },
+ { "/a/", FALSE },
+ { "//a", FALSE },
+ { "/a/b", TRUE },
+ { "/a//b", FALSE },
+ { "\\", FALSE },
+ { "\\a", FALSE },
+ { "/\\a", TRUE }, /* a single component */
+ { "/a\\", TRUE }, /* a single component */
+ { "/a\\b", TRUE }, /* a single component */
+ };
+ int i;
+
+ for (i = 0; i < COUNT_OF(tests); i++)
+ {
+ svn_boolean_t canonical
+ = svn_fspath__is_canonical(tests[i].path);
+
+ if (tests[i].canonical != canonical)
+ return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+ "svn_fspath__is_canonical(\"%s\") returned "
+ "\"%s\" expected \"%s\"",
+ tests[i].path,
+ canonical ? "TRUE" : "FALSE",
+ tests[i].canonical ? "TRUE" : "FALSE");
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_fspath_join(apr_pool_t *pool)
+{
+ int i;
+
+ static const char * const joins[][3] = {
+ { "/", "", "/" },
+ { "/", "d", "/d" },
+ { "/", "d/e", "/d/e" },
+ { "/abc", "", "/abc" },
+ { "/abc", "d", "/abc/d" },
+ { "/abc", "d/e", "/abc/d/e" },
+ };
+
+ for (i = 0; i < COUNT_OF(joins); i++ )
+ {
+ char *result = svn_fspath__join(joins[i][0], joins[i][1], pool);
+
+ SVN_TEST_STRING_ASSERT(result, joins[i][2]);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_fspath_is_child(apr_pool_t *pool)
+{
+ int i, j;
+
+ static const char * const paths[] = {
+ "/",
+ "/f",
+ "/foo",
+ "/foo/bar",
+ "/foo/bars",
+ "/foo/bar/baz",
+ };
+
+ static const char * const
+ remainders[COUNT_OF(paths)][COUNT_OF(paths)] = {
+ { 0, "f", "foo", "foo/bar", "foo/bars", "foo/bar/baz" },
+ { 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, "bar", "bars", "bar/baz" },
+ { 0, 0, 0, 0, 0, "baz" },
+ { 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 0, 0 },
+ };
+
+ for (i = 0; i < COUNT_OF(paths); i++)
+ {
+ for (j = 0; j < COUNT_OF(paths); j++)
+ {
+ const char *remainder
+ = svn_fspath__is_child(paths[i], paths[j], pool);
+
+ SVN_TEST_STRING_ASSERT(remainder, remainders[i][j]);
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_fspath_dirname_basename_split(apr_pool_t *pool)
+{
+ int i;
+
+ static const struct {
+ const char *path;
+ const char *dirname;
+ const char *basename;
+ } tests[] = {
+ { "/", "/", "" },
+ { "/a", "/", "a" },
+ { "/abc", "/", "abc" },
+ { "/x/abc", "/x", "abc" },
+ { "/x/y/abc", "/x/y", "abc" },
+ };
+
+ for (i = 0; i < COUNT_OF(tests); i++)
+ {
+ const char *result_dirname, *result_basename;
+
+ result_dirname = svn_fspath__dirname(tests[i].path, pool);
+ SVN_TEST_STRING_ASSERT(result_dirname, tests[i].dirname);
+
+ result_basename = svn_fspath__basename(tests[i].path, pool);
+ SVN_TEST_STRING_ASSERT(result_basename, tests[i].basename);
+
+ svn_fspath__split(&result_dirname, &result_basename, tests[i].path,
+ pool);
+ SVN_TEST_STRING_ASSERT(result_dirname, tests[i].dirname);
+ SVN_TEST_STRING_ASSERT(result_basename, tests[i].basename);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_fspath_get_longest_ancestor(apr_pool_t *pool)
+{
+ int i;
+
+ /* Paths to test and their expected results. Same as in
+ * test_relpath_get_longest_ancestor() but with '/' prefix. */
+ struct {
+ const char *path1;
+ const char *path2;
+ const char *result;
+ } tests[] = {
+ { "/foo", "/foo/bar", "/foo" },
+ { "/foo/bar", "/foo/bar", "/foo/bar" },
+ { "/", "/foo", "/" },
+ { "/", "/foo", "/" },
+ { "/", "/.bar", "/" },
+ { "/.bar", "/", "/" },
+ { "/foo/bar", "/foo", "/foo" },
+ { "/foo/bar", "/foo", "/foo" },
+ { "/rif", "/raf", "/" },
+ { "/foo", "/bar", "/" },
+ { "/foo", "/foo/bar", "/foo" },
+ { "/foo.", "/foo./.bar", "/foo." },
+ { "/", "/", "/" },
+ { "/http:/test", "/http:/test", "/http:/test" },
+ { "/http:/test", "/http:/taste", "/http:" },
+ { "/http:/test", "/http:/test/foo", "/http:/test" },
+ { "/http:/test", "/file:/test/foo", "/" },
+ { "/http:/test", "/http:/testF", "/http:" },
+ { "/file:/A/C", "/file:/B/D", "/file:" },
+ { "/file:/A/C", "/file:/A/D", "/file:/A" },
+ { "/X:/foo", "/X:", "/X:" },
+ { "/X:/folder1", "/X:/folder2", "/X:" },
+ { "/X:", "/X:foo", "/" },
+ { "/X:foo", "/X:bar", "/" },
+ };
+
+ for (i = 0; i < COUNT_OF(tests); i++)
+ {
+ const char *result;
+
+ result = svn_fspath__get_longest_ancestor(tests[i].path1, tests[i].path2,
+ pool);
+ SVN_TEST_STRING_ASSERT(tests[i].result, result);
+
+ /* changing the order of the paths should return the same result */
+ result = svn_fspath__get_longest_ancestor(tests[i].path2, tests[i].path1,
+ pool);
+ SVN_TEST_STRING_ASSERT(tests[i].result, result);
+ }
+ return SVN_NO_ERROR;
+}
+
/* The test table. */
@@ -2906,9 +3097,9 @@ struct svn_test_descriptor_t test_funcs[
SVN_TEST_PASS2(test_dirent_split,
"test svn_dirent_split"),
SVN_TEST_PASS2(test_relpath_split,
- "test test_relpath_split"),
+ "test svn_relpath_split"),
SVN_TEST_PASS2(test_uri_split,
- "test test_uri_split"),
+ "test svn_uri_split"),
SVN_TEST_PASS2(test_dirent_get_longest_ancestor,
"test svn_dirent_get_longest_ancestor"),
SVN_TEST_PASS2(test_relpath_get_longest_ancestor,
@@ -2928,11 +3119,11 @@ struct svn_test_descriptor_t test_funcs[
SVN_TEST_PASS2(test_uri_is_ancestor,
"test svn_uri_is_ancestor"),
SVN_TEST_PASS2(test_dirent_skip_ancestor,
- "test test_dirent_skip_ancestor"),
+ "test svn_dirent_skip_ancestor"),
SVN_TEST_PASS2(test_relpath_skip_ancestor,
- "test test_relpath_skip_ancestor"),
+ "test svn_relpath_skip_ancestor"),
SVN_TEST_PASS2(test_uri_skip_ancestor,
- "test test_uri_skip_ancestor"),
+ "test svn_uri_skip_ancestor"),
SVN_TEST_PASS2(test_dirent_get_absolute,
"test svn_dirent_get_absolute"),
#ifdef WIN32
@@ -2959,5 +3150,15 @@ struct svn_test_descriptor_t test_funcs[
"test svn_uri_get_file_url_from_dirent"),
SVN_TEST_PASS2(test_dirent_is_under_root,
"test svn_dirent_is_under_root"),
+ SVN_TEST_PASS2(test_fspath_is_canonical,
+ "test svn_fspath__is_canonical"),
+ SVN_TEST_PASS2(test_fspath_join,
+ "test svn_fspath__join"),
+ SVN_TEST_PASS2(test_fspath_is_child,
+ "test svn_fspath__is_child"),
+ SVN_TEST_PASS2(test_fspath_dirname_basename_split,
+ "test svn_fspath__dirname/basename/split"),
+ SVN_TEST_PASS2(test_fspath_get_longest_ancestor,
+ "test svn_fspath__get_longest_ancestor"),
SVN_TEST_NULL
};
Modified: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/string-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/string-test.c?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/string-test.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_subr/string-test.c Thu Dec 2 20:55:08 2010
@@ -231,13 +231,13 @@ test10(apr_pool_t *pool)
block_len_2 = (s->blocksize);
/* Test that:
- * - The initial block was just the right fit.
+ * - The initial block was at least the right fit.
+ * - The initial block was not excessively large.
* - The block more than doubled (because second string so long).
- * - The block grew by a power of 2.
*/
- if ((len_1 == (block_len_1 - 1))
- && ((block_len_2 / block_len_1) > 2)
- && (((block_len_2 / block_len_1) % 2) == 0))
+ if ((len_1 <= (block_len_1 - 1))
+ && ((block_len_1 - len_1) <= APR_ALIGN_DEFAULT(1))
+ && ((block_len_2 / block_len_1) > 2))
return SVN_NO_ERROR;
else
return fail(pool, "test failed");
Propchange: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_wc/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Dec 2 20:55:08 2010
@@ -6,3 +6,4 @@ fake-wc
pristine-store-test
svn-test-work
entries-compat-test
+op-depth-test
Modified: subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_wc/db-test.c?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/gpg-agent-password-store/subversion/tests/libsvn_wc/db-test.c Thu Dec 2 20:55:08 2010
@@ -75,7 +75,8 @@
#define MD5_2 "5d41402abc4b2a76b9719d911017c592"
#define SHA1_1 "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
-#define I_TC_DATA "((conflict F file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file)) (conflict G file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file)) )"
+#define F_TC_DATA "(conflict F file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file))"
+#define G_TC_DATA "(conflict G file update edited deleted (version 22 " ROOT_ONE " 1 2 branch1/ft/F none) (version 22 " ROOT_ONE " 1 3 branch1/ft/F file))"
static const char * const TESTING_DATA = (
/* Load our test data.
@@ -87,415 +88,197 @@ static const char * const TESTING_DATA =
"insert into repository values (2, '" ROOT_TWO "', '" UUID_TWO "'); "
"insert into wcroot values (1, null); "
- /* ### The file_externals column in BASE_NODE is temporary, and will be
+ /* ### The file_externals column in NODES is temporary, and will be
### removed. However, to keep the tests passing, we need to add it
### to the following insert statements. *Be sure to remove it*. */
-#ifndef SVN_WC__NODES_ONLY
- "insert into base_node values ("
- " 1, '', 1, '', null, 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', 'infinity', null, null, '()', null, 0, "
- " null); "
- "insert into base_node values ("
- " 1, 'A', null, null, '', 'normal', 'file', "
- " 1, '$md5 $" MD5_1 "', 10, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'B', null, null, '', 'excluded', 'symlink', "
- " null, null, null, "
- " null, null, null, null, null, null, null, null, null, null); "
- "insert into base_node values ("
- " 1, 'C', null, null, '', 'absent', 'unknown', "
- " null, null, null, "
- " null, null, null, null, null, null, null, null, null, null); "
- "insert into base_node values ("
- " 1, 'D', null, null, '', 'not-present', 'unknown', "
- " null, null, null, "
- " null, null, null, null, null, null, null, null, null, null); "
- "insert into base_node values ("
- " 1, 'E', null, null, '', 'incomplete', 'unknown', "
- " null, null, null, "
- " null, null, null, null, null, null, null, null, null, null); "
- "insert into base_node values ("
- " 1, 'F', null, null, '', 'normal', 'file', "
- " 1, '$sha1$" SHA1_1 "', 15, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'G', 2, 'G-alt', '', 'normal', 'file', "
- " 1, '$sha1$" SHA1_1 "', 15, "
- " 2, " TIME_2s ", '" AUTHOR_2 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'H', null, null, '', 'normal', 'symlink', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, 'H-target', null, '()', null, "
- " null, null); "
- "insert into base_node values ("
- " 1, 'I', null, null, '', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J', null, null, '', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J/J-e', null, null, 'J', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J/J-e/J-e-a', null, null, 'J/J-e', 'normal', 'file', "
- " 1, '$sha1$" SHA1_1 "', 15, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J/J-e/J-e-b', null, null, 'J/J-e', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J/J-e/J-e-b/Jeba', null, null, 'J/J-e/J-e-b', 'normal', 'file', "
- " 1, '$sha1$" SHA1_1 "', 15, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J/J-f', null, null, 'J', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'J/J-f/J-f-a', null, null, 'J/J-f', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'K', null, null, '', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'K/K-a', null, null, 'K', 'normal', 'file', "
- " 1, '$sha1$" SHA1_1 "', 15, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into base_node values ("
- " 1, 'K/K-b', null, null, 'K', 'normal', 'file', "
- " 1, '$sha1$" SHA1_1 "', 15, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- " "
-#endif
-#ifdef SVN_WC__NODES
+
/* load the base nodes into the nodes table */
"insert into nodes values ("
- " 1, '', 0, null, 1, '', 1, 'normal', 'infinity',"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'A', 0, '', null, null, 1, 'normal', null,"
- " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$md5 $" MD5_1 "',"
- " '()', 10, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'B', 0, '', null, null, null, 'excluded', null,"
- " null, null, 'symlink', null, null, null, null,"
- " null, null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'C', 0, '', null, null, null, 'absent', null,"
- " null, null, 'unknown', null, null, null, null,"
- " null, null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'D', 0, '', null, null, null, 'not-present', null,"
- " null, null, 'unknown', null, null, null, null,"
- " null, null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'E', 0, '', null, null, null, 'incomplete', null,"
- " null, null, 'unknown', null, null, null, null,"
- " null, null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'F', 0, '', null, null, 1, 'normal', null,"
- " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
- " '()', 15, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'G', 0, '', 2, 'G-alt', 1, 'normal', null,"
- " null, null, 'file', 2, " TIME_2s ", '" AUTHOR_2 "', '$sha1$" SHA1_1 "',"
- " '()', 15, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'H', 0, '', null, null, 1, 'normal', null,"
- " null, null, 'symlink', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, 'H-target', null);"
- "insert into nodes values ("
- " 1, 'I', 0, '', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J', 0, '', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-e', 0, 'J', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-e/J-e-a', 0, 'J/J-e', null, null, 1, 'normal', null,"
- " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
- " '()', 15, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-e/J-e-b', 0, 'J/J-e', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-e/J-e-b/Jeba', 0, 'J/J-e/J-e-b', null, null, 1, 'normal', null,"
- " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
- " '()', 15, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-f', 0, 'J', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-f/J-f-a', 0, 'J/J-f', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'K', 0, '', null, null, 1, 'normal', null,"
- " null, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null,"
- " '()', null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'K/K-a', 0, 'K', null, null, 1, 'normal', null,"
- " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
- " '()', 15, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'K/K-b', 0, 'K', null, null, 1, 'normal', null,"
- " null, null, 'file', 1, " TIME_1s ", '" AUTHOR_1 "', '$sha1$" SHA1_1 "',"
- " '()', 15, null, null, null, null);"
+ " 1, '', 0, null, 1, '', 1, 'normal',"
+ " null, null, 'dir', '()', 'infinity', null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'A', 0, '', 1, 'A', 1, 'normal',"
+ " null, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " 10, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'B', 0, '', 1, 'B', null, 'excluded',"
+ " null, null, 'symlink', null, null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'C', 0, '', 1, 'C', null, 'absent',"
+ " null, null, 'unknown', null, null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'D', 0, '', 1, 'D', null, 'not-present',"
+ " null, null, 'unknown', null, null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'E', 0, '', 1, 'E', null, 'incomplete',"
+ " null, null, 'unknown', null, null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'F', 0, '', 1, 'F', 1, 'normal',"
+ " null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " 15, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'G', 0, '', 2, 'G-alt', 1, 'normal',"
+ " null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+ " 15, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'H', 0, '', 1, 'H', 1, 'normal',"
+ " null, null, 'symlink', '()', null, null, 'H-target', 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'I', 0, '', 1, 'I', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J', 0, '', 1, 'J', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e', 0, 'J', 1, 'J/J-e', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e/J-e-a', 0, 'J/J-e', 1, 'J/J-e/J-e-a', 1, 'normal',"
+ " null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " 15, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e/J-e-b', 0, 'J/J-e', 1, 'J/J-e/J-e-b', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e/J-e-b/Jeba', 0, 'J/J-e/J-e-b', 1, 'J/J-e/J-e-b/Jeba', 1, 'normal',"
+ " null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " 15, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-f', 0, 'J', 1, 'J/J-f', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-f/J-f-a', 0, 'J/J-f', 1, 'J/J-f/J-f-a', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'K', 0, '', 1, 'K', 1, 'normal',"
+ " null, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'K/K-a', 0, 'K', 1, 'K/K-a', 1, 'normal',"
+ " null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " 15, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'K/K-b', 0, 'K', 1, 'K/K-b', 1, 'normal',"
+ " null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " 15, null, null, null);"
""
-#endif
-#ifndef SVN_WC__NODES_ONLY
- "insert into working_node values ("
- " 1, 'I', '', 'normal', 'dir', "
- " null, null, "
- " 2, " TIME_2s ", '" AUTHOR_2 "', 'immediates', null, "
- " 2, 'some/dir', 2, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J', '', 'normal', 'dir', "
- " null, null, "
- " null, null, null, 'immediates', null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-a', 'J', 'normal', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-b', 'J', 'normal', 'dir', "
- " null, null, "
- " 2, " TIME_2s ", '" AUTHOR_2 "', 'infinity', null, "
- " 2, 'some/dir', 2, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-b/J-b-a', 'J/J-b', 'normal', 'dir', "
- " null, null, "
- " 2, " TIME_2s ", '" AUTHOR_2 "', 'infinity', null, "
- " 2, 'another/dir', 2, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-b/J-b-b', 'J/J-b', 'normal', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-c', 'J', 'not-present', 'dir', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-c/J-c-a', 'J/J-c', 'not-present', 'dir', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-d', 'J', 'normal', 'file', "
- " '$md5 $" MD5_1 "', 10, "
- " 2, " TIME_2s ", '" AUTHOR_2 "', null, null, "
- " 2, 'moved/file', 2, 1, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-e', 'J', 'not-present', 'dir', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, 'other/place', null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-e/J-e-a', 'J/J-e', 'not-present', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-e/J-e-b', 'J/J-e', 'not-present', 'dir', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-e/J-e-b/Jeba', 'J/J-e/J-e-b', 'base-deleted', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-f', 'J', 'normal', 'dir', "
- " null, null, "
- " null, null, null, 'immediates', null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'J/J-f/J-f-a', 'J/J-f', 'base-deleted', 'dir', "
- " null, null, "
- " null, null, null, 'immediates', null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'K', '', 'base-deleted', 'dir', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'K/K-a', 'K', 'base-deleted', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'K/K-b', 'K', 'base-deleted', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, 'moved/away', null, '()', 0); "
- "insert into working_node values ("
- " 1, 'L', '', 'normal', 'dir', "
- " null, null, "
- " null, null, null, 'immediates', null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'L/L-a', 'L', 'not-present', 'dir', "
- " null, null, "
- " null, null, null, 'immediates', null, "
- " null, null, null, 0, null, null, '()', 0); "
- "insert into working_node values ("
- " 1, 'L/L-a/L-a-a', 'L', 'not-present', 'dir', "
- " null, null, "
- " null, null, null, 'immediates', null, "
- " null, null, null, 0, null, null, '()', 0); "
- " "
-#endif
-#ifdef SVN_WC__NODES
/* Load data into NODES table;
### op_depths have not been calculated by me yet;
the value 1 is just 'good enough' to make the nodes WORKING nodes. */
"insert into nodes values ("
- " 1, 'I', 1, '', 2, 'some/dir', 2, 'normal', 'immediates',"
- " 0, null, 'dir', 2, " TIME_2s ", '" AUTHOR_2 "', null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J', 1, '', null, null, null, 'normal', 'immediates',"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-a', 1, 'J', null, null, null, 'normal', null,"
- " 0, null, 'file', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-b', 1, 'J', 2, 'some/dir', 2, 'normal', 'infinity',"
- " 0, null, 'dir', 2, " TIME_2s ", '" AUTHOR_2 "', null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-b/J-b-a', 1, 'J/J-b', 2, 'another/dir', 2, 'normal', 'infinity',"
- " 0, null, 'dir', 2, " TIME_2s ", '" AUTHOR_2 "', null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-b/J-b-b', 1, 'J/J-b', null, null, null, 'normal', null,"
- " 0, null, 'file', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-c', 1, 'J', null, null, null, 'not-present', null,"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-c/J-c-a', 1, 'J/J-c', null, null, null, 'not-present', null,"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-d', 1, 'J', 2, 'moved/file', 2, 'normal', null,"
- " 1, null, 'file', 2, " TIME_2s ", '" AUTHOR_2 "', '$md5 $" MD5_1 "',"
- " '()', 10, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-e', 1, 'J', null, null, null, 'not-present', null,"
- " 0, 'other/place', 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'J/J-e/J-e-a', 1, 'J/J-e', null, null, null, 'not-present', null,"
- " 0, null, 'file', null, null, null, null, '()',"
- " null, null, null, null, null);"
+ " 1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
+ " 0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J', 1, '', null, null, null, 'normal',"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-a', 1, 'J', null, null, null, 'normal',"
+ " 0, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-b', 2, 'J', 2, 'some/dir', 2, 'normal',"
+ " 0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-b/J-b-a', 3, 'J/J-b', 2, 'another/dir', 2, 'normal',"
+ " 0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-b/J-b-b', 2, 'J/J-b', null, null, 2, 'normal',"
+ " 0, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-c', 1, 'J', null, null, null, 'not-present',"
+ " 0, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-c/J-c-a', 1, 'J/J-c', null, null, null, 'not-present',"
+ " 0, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-d', 2, 'J', 2, 'moved/file', 2, 'normal',"
+ " 1, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+ " 10, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e', 1, 'J', null, null, null, 'not-present',"
+ " 0, 'other/place', 'dir', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e/J-e-a', 1, 'J/J-e', null, null, null, 'not-present',"
+ " 0, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-e/J-e-b', 1, 'J/J-e', null, null, null, 'not-present',"
- " null, 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
+ " 0, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-e/J-e-b/Jeba', 1, 'J/J-e/J-e-b', null, null, null, 'base-deleted',"
- " null, 0, null, 'file', null, null, null, null, '()',"
- " null, null, null, null, null);"
+ " 0, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
"insert into nodes values ("
- " 1, 'J/J-f', 1, 'J', null, null, null, 'normal', 'immediates',"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
+ " 1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-f/J-f-a', 1, 'J/J-f', null, null, null, 'base-deleted',"
- " 'immediates', 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
"insert into nodes values ("
- " 1, 'K', 1, '', null, null, null, 'base-deleted', null,"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted', null,"
- " 0, null, 'file', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted', null,"
- " 0, 'moved/away', 'file', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'L', 1, '', null, null, null, 'normal', 'immediates',"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'L/L-a', 1, 'L', null, null, null, 'not-present', 'immediates',"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
- "insert into nodes values ("
- " 1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'not-present', 'immediates',"
- " 0, null, 'dir', null, null, null, null, '()',"
- " null, null, null, null, null);"
-#endif
+ " 1, 'K', 1, '', null, null, null, 'base-deleted',"
+ " 0, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted',"
+ " 0, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted',"
+ " 0, 'moved/away', 'file', '()', null, null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'L', 1, '', null, null, null, 'normal',"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'L/L-a', 1, 'L', null, null, null, 'not-present',"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'not-present',"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
"insert into actual_node values ("
" 1, 'I', '', null, null, null, null, null, 'changelist', null, "
- "'" I_TC_DATA "', null, null, null, null);"
+ " null, null, null, null, null);"
+ "insert into actual_node values ("
+ " 1, 'F', '', null, null, null, null, null, null, null, "
+ " '" F_TC_DATA "', null, null, null, null);"
+ "insert into actual_node values ("
+ " 1, 'G', '', null, null, null, null, null, null, null, "
+ " '" G_TC_DATA "', null, null, null, null);"
" "
-#ifndef SVN_WC__NODES_ONLY
- "insert into base_node values ("
- " 1, 'M', null, null, '', 'normal', 'dir', "
- " 1, null, null, "
- " 1, " TIME_1s ", '" AUTHOR_1 "', null, null, null, '()', null, null, "
- " null); "
- "insert into working_node values ("
- " 1, 'M/M-a', 'M', 'not-present', 'file', "
- " null, null, "
- " null, null, null, null, null, "
- " null, null, null, 0, null, null, '()', 0); "
-#endif
-#ifdef SVN_WC__NODES
"insert into nodes values ("
- " 1, 'M', 0, '', null, null, null, 'normal', null, "
- " 1, null, 'dir', 1, " TIME_1s ", '" AUTHOR_1 "', null, '()', "
- " null, null, null, null, null);"
+ " 1, 'M', 0, '', 1, 'M', null, 'normal', "
+ " 1, null, 'dir', '()', null, null, null, 1, " TIME_1s ", '" AUTHOR_1 "',"
+ " null, null, null, null);"
"insert into nodes values ("
- " 1, 'M/M-a', 1, 'M', null, null, null, 'not-present', null, "
- " null, null, 'file', null, null, null, null, '()', "
- " null, 0, null, null, null);"
-#endif
+ " 1, 'M/M-a', 1, 'M', null, null, null, 'not-present', "
+ " null, null, 'file', '()', null, null, null, null, null, null,"
+ " null, 0, null, null);"
);
WC_QUERIES_SQL_DECLARE_STATEMENTS(statements);
@@ -510,9 +293,7 @@ create_fake_wc(const char *subdir, int f
svn_sqlite__db_t *sdb;
const char * const my_statements[] = {
statements[STMT_CREATE_SCHEMA],
-#ifdef SVN_WC__NODES
statements[STMT_CREATE_NODES],
-#endif
TESTING_DATA,
NULL
};
@@ -628,7 +409,7 @@ test_getting_info(apr_pool_t *pool)
SVN_TEST_ASSERT(target == NULL);
SVN_TEST_ASSERT(lock == NULL);
- /* Test: NULL params, file-specific values, inherit repos info. */
+ /* Test: file-specific values. */
SVN_ERR(svn_wc__db_base_get_info(
NULL, &kind, NULL,
&repos_relpath, &repos_root_url, &repos_uuid,
@@ -637,17 +418,8 @@ test_getting_info(apr_pool_t *pool)
db, svn_dirent_join(local_abspath, "A", pool),
pool, pool));
SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
- SVN_TEST_ASSERT(repos_relpath == NULL);
- SVN_TEST_ASSERT(repos_root_url == NULL);
- SVN_TEST_ASSERT(repos_uuid == NULL);
SVN_TEST_STRING_ASSERT(MD5_1, svn_checksum_to_cstring(checksum, pool));
SVN_TEST_ASSERT(translated_size == 10);
-
- /* Grab the inherited info. */
- SVN_ERR(svn_wc__db_scan_base_repos(
- &repos_relpath, &repos_root_url, &repos_uuid,
- db, svn_dirent_join(local_abspath, "A", pool),
- pool, pool));
SVN_TEST_STRING_ASSERT(repos_relpath, "A");
SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
@@ -663,9 +435,9 @@ test_getting_info(apr_pool_t *pool)
SVN_TEST_ASSERT(kind == svn_wc__db_kind_symlink);
SVN_TEST_ASSERT(status == svn_wc__db_status_excluded);
SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(revision));
- SVN_TEST_ASSERT(repos_relpath == NULL);
- SVN_TEST_ASSERT(repos_root_url == NULL);
- SVN_TEST_ASSERT(repos_uuid == NULL);
+ SVN_TEST_STRING_ASSERT(repos_relpath, "B");
+ SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
+ SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(changed_rev));
SVN_TEST_ASSERT(changed_date == 0);
SVN_TEST_ASSERT(changed_author == NULL);
@@ -806,38 +578,41 @@ validate_node(svn_wc__db_t *db,
}
value = apr_hash_get(props, "p1", APR_HASH_KEY_STRING);
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+ SVN_TEST_STRING_ASSERT(value->data, "v1");
SVN_ERR(svn_wc__db_base_get_prop(&value, db, path, "p1",
scratch_pool, scratch_pool));
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+ SVN_TEST_STRING_ASSERT(value->data, "v1");
value = apr_hash_get(props, "for-file", APR_HASH_KEY_STRING);
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, relpath) == 0);
+ SVN_TEST_STRING_ASSERT(value->data, relpath);
SVN_ERR(svn_wc__db_base_get_prop(&value, db, path, "for-file",
scratch_pool, scratch_pool));
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, relpath) == 0);
+ SVN_TEST_STRING_ASSERT(value->data, relpath);
SVN_ERR(svn_wc__db_read_props(&props, db, path,
scratch_pool, scratch_pool));
SVN_TEST_ASSERT(props != NULL);
value = apr_hash_get(props, "p1", APR_HASH_KEY_STRING);
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+ SVN_TEST_STRING_ASSERT(value->data, "v1");
SVN_ERR(svn_wc__db_read_pristine_props(&props, db, path,
scratch_pool, scratch_pool));
SVN_TEST_ASSERT(props != NULL);
value = apr_hash_get(props, "p1", APR_HASH_KEY_STRING);
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+ SVN_TEST_STRING_ASSERT(value->data, "v1");
/* Now add a property value and read it back (all on actual) */
- apr_hash_set(props, "p999", APR_HASH_KEY_STRING, value);
-
- SVN_ERR(svn_wc__db_op_set_props(db, path, props, NULL, NULL, scratch_pool));
- SVN_ERR(svn_wc__db_read_props(&props, db, path,
- scratch_pool, scratch_pool));
- SVN_TEST_ASSERT(props != NULL);
- value = apr_hash_get(props, "p999", APR_HASH_KEY_STRING);
- SVN_TEST_ASSERT(value != NULL && strcmp(value->data, "v1") == 0);
+ {
+ apr_hash_t *actual_props = apr_hash_copy(scratch_pool, props);
+ apr_hash_set(actual_props, "p999", APR_HASH_KEY_STRING, value);
+ SVN_ERR(svn_wc__db_op_set_props(db, path, actual_props,
+ NULL, NULL, scratch_pool));
+ SVN_ERR(svn_wc__db_read_props(&props, db, path,
+ scratch_pool, scratch_pool));
+ SVN_TEST_ASSERT(props != NULL);
+ value = apr_hash_get(props, "p999", APR_HASH_KEY_STRING);
+ SVN_TEST_STRING_ASSERT(value->data, "v1");
+ }
return SVN_NO_ERROR;
}
@@ -1491,12 +1266,7 @@ test_global_relocate(apr_pool_t *pool)
/* The UUID should still be the same. */
SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
- /* While we're at it, let's see if the children have been relocated, too.
-
- ### Relocate doesn't change anything in the child since the
- repos_id is inherited (null). Should we have some children
- where the repos_id is not null but equal to the parent or
- root? */
+ /* While we're at it, let's see if the children have been relocated, too. */
SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL,
&repos_relpath, &repos_root_url, &repos_uuid,
NULL, NULL, NULL, NULL,
@@ -1506,9 +1276,9 @@ test_global_relocate(apr_pool_t *pool)
db, svn_dirent_join(local_abspath, "F",
pool),
pool, pool));
- SVN_TEST_STRING_ASSERT(repos_relpath, NULL);
- SVN_TEST_STRING_ASSERT(repos_root_url, NULL);
- SVN_TEST_STRING_ASSERT(repos_uuid, NULL);
+ SVN_TEST_STRING_ASSERT(repos_relpath, "F");
+ SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_THREE);
+ SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
/* Alternate repository is not relocated. */
SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL,