Author: rhuijben
Date: Tue Feb 17 22:58:49 2015
New Revision: 1660529
URL: http://svn.apache.org/r1660529
Log:
Update the test data in db-test.c to at least pass the current static
validations. Add two missing intermediate directories, and remove
values that shouldn't be set.
* subversion/libsvn_wc/wc-checks.sql
(STMT_STATIC_VERIFY): Add column for op-depth value to queries.
* subversion/libsvn_wc/wc_db_wcroot.c
(verify_sqlite): Update usage.
* subversion/tests/libsvn_wc/db-test.c
(TESTING_DATA): Tweak values to set columns NULL that should be NULL.
(test_children): Update expected results.
(test_working_info): Update expected results.
Modified:
subversion/trunk/subversion/libsvn_wc/wc-checks.sql
subversion/trunk/subversion/libsvn_wc/wc_db_wcroot.c
subversion/trunk/subversion/tests/libsvn_wc/db-test.c
Modified: subversion/trunk/subversion/libsvn_wc/wc-checks.sql
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc-checks.sql?rev=1660529&r1=1660528&r2=1660529&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc-checks.sql (original)
+++ subversion/trunk/subversion/libsvn_wc/wc-checks.sql Tue Feb 17 22:58:49 2015
@@ -76,7 +76,7 @@ BEGIN
END;
-- STMT_STATIC_VERIFY
-SELECT local_relpath, 'SV001: No ancestor in NODES'
+SELECT local_relpath, op_depth, 'SV001: No ancestor in NODES'
FROM nodes n WHERE local_relpath != ''
AND file_external IS NULL
AND NOT EXISTS(SELECT 1 from nodes i
@@ -85,7 +85,7 @@ FROM nodes n WHERE local_relpath != ''
UNION ALL
-SELECT local_relpath, 'SV002: No ancestor in ACTUAL'
+SELECT local_relpath, -1, 'SV002: No ancestor in ACTUAL'
FROM actual_node a WHERE local_relpath != ''
AND NOT EXISTS(SELECT 1 from nodes i
WHERE i.wc_id=a.wc_id
@@ -96,7 +96,7 @@ FROM actual_node a WHERE local_relpath !
UNION ALL
-SELECT a.local_relpath, 'SV003: Bad or Unneeded actual data'
+SELECT a.local_relpath, -1, 'SV003: Bad or Unneeded actual data'
FROM actual_node a
LEFT JOIN nodes n on n.wc_id = a.wc_id AND n.local_relpath = a.local_relpath
AND n.op_depth = (SELECT MAX(op_depth) from nodes i
@@ -111,7 +111,7 @@ WHERE (a.properties IS NOT NULL
UNION ALL
-SELECT local_relpath, 'SV004: Unneeded node data'
+SELECT local_relpath, op_depth, 'SV004: Unneeded node data'
FROM nodes
WHERE presence NOT IN (MAP_NORMAL, MAP_INCOMPLETE)
AND (properties IS NOT NULL
@@ -129,7 +129,7 @@ AND (properties IS NOT NULL
UNION ALL
-SELECT local_relpath, 'SV005: Unneeded base-deleted node data'
+SELECT local_relpath, op_depth, 'SV005: Unneeded base-deleted node data'
FROM nodes
WHERE presence IN (MAP_BASE_DELETED)
AND (repos_id IS NOT NULL
Modified: subversion/trunk/subversion/libsvn_wc/wc_db_wcroot.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db_wcroot.c?rev=1660529&r1=1660528&r2=1660529&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db_wcroot.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db_wcroot.c Tue Feb 17 22:58:49
2015
@@ -178,9 +178,13 @@ verify_sqlite(svn_sqlite__db_t *sdb,
while (have_row)
{
const char *item = svn_sqlite__column_text(stmt, 0, scratch_pool);
- const char *msg = svn_sqlite__column_text(stmt, 1, scratch_pool);
+ int op_depth = svn_sqlite__column_int(stmt, 1);
+ const char *msg = svn_sqlite__column_text(stmt, 2, scratch_pool);
- SVN_DBG(("DB-VRFY: %s: %s: %s", wc_abspath, item, msg));
+ if (op_depth >= 0)
+ SVN_DBG(("DB-VRFY: %s: %s:%d: %s", wc_abspath, item, op_depth, msg));
+ else
+ SVN_DBG(("DB-VRFY: %s: %s: %s", wc_abspath, item, msg));
SVN_ERR(svn_sqlite__step(&have_row, stmt));
}
Modified: subversion/trunk/subversion/tests/libsvn_wc/db-test.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/db-test.c?rev=1660529&r1=1660528&r2=1660529&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_wc/db-test.c Tue Feb 17 22:58:49
2015
@@ -217,24 +217,28 @@ static const char * const TESTING_DATA =
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-c', 2, 'J', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, 'dir', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-c/J-c-a', 2, 'J/J-c', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, 'dir', null, null, 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, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '"
AUTHOR_2 "',"
" 10, null, null, null, null);"
"insert into nodes values ("
+ " 1, 'moved', 0, '', 2, 'moved', 2, 'normal',"
+ " null, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, null, null, null);"
+ "insert into nodes values ("
" 1, 'moved/file', 0, 'moved', 2, 'moved/file', 2, 'normal',"
" null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ",
'" AUTHOR_2 "',"
" 10, null, null, null, null);"
"insert into nodes values ("
- " 1, 'moved/file', 2, 'moved', 2, 'moved/file', 2, 'base-deleted',"
- " null, 'J/J-d', 'file', '()', null, null, null, null, null, null,"
- " 10, null, null, null, null);"
+ " 1, 'moved/file', 2, 'moved', null, null, null, 'base-deleted',"
+ " null, 'J/J-d', 'file', null, null, null, null, null, null, null,"
+ " null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-e', 1, 'J', null, null, null, 'normal',"
" null, null, 'dir', '()', null, null, null, null, null, null,"
@@ -249,19 +253,19 @@ static const char * const TESTING_DATA =
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-e', 2, 'J', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, 'dir', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-e/J-e-a', 2, 'J/J-e', null, null, null, 'base-deleted',"
- " null, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, 'file', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-e/J-e-b', 2, 'J/J-e', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, 'dir', null, null, 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, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, 'file', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
@@ -269,19 +273,19 @@ static const char * const TESTING_DATA =
" 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',"
- " null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, 'dir', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'K', 1, '', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', null, null, null, null, null, null,"
+ " null, null, 'dir', null, null, 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',"
- " null, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, 'file', null, null, 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',"
- " null, null, 'file', '()', null, null, null, null, null, null,"
+ " null, null, 'file', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'L', 1, '', null, null, null, 'normal',"
@@ -297,11 +301,15 @@ static const char * const TESTING_DATA =
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'L/L-a', 2, 'L', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, 'dir', null, null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'L/L-a/L-a-a', 2, 'L/L-a', null, null, null, 'base-deleted',"
- " null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, 'dir', null, null, null, null, null, null, null,"
+ " null, null, null, null, null);"
+ "insert into nodes values ("
+ " 1, 'other', 0, '', 2, 'other', 2, 'normal',"
+ " null, null, 'dir', '()', null, null, null, null, null, null,"
" null, null, null, null, null);"
"insert into nodes values ("
" 1, 'other/place', 2, 'other', null, null, null, 'normal',"
@@ -320,7 +328,7 @@ static const char * const TESTING_DATA =
" null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 1, " TIME_1s ",
'" AUTHOR_1 "',"
" 15, null, null, null, null);"
"insert into actual_node values ("
- " 1, 'I', '', null, null, null, null, null, 'changelist', null, "
+ " 1, 'A', '', null, null, null, null, null, 'changelist', null, "
" null, null, null, null, null);"
"insert into actual_node values ("
" 1, 'F', '', null, null, null, null, null, null, null, "
@@ -776,11 +784,17 @@ test_children(apr_pool_t *pool)
SVN_ERR(svn_wc__db_base_get_children(&children,
db, local_abspath,
pool, pool));
- SVN_TEST_ASSERT(children->nelts == 11);
+ SVN_TEST_ASSERT(children->nelts == 13);
for (i = children->nelts; i--; )
{
const char *name = APR_ARRAY_IDX(children, i, const char *);
+ if (strcmp(name, "moved") == 0
+ || strcmp(name, "other") == 0)
+ {
+ continue;
+ }
+
SVN_TEST_ASSERT(strlen(name) == 1);
/* ### check the actual values */
}
@@ -788,11 +802,17 @@ test_children(apr_pool_t *pool)
SVN_ERR(svn_wc__db_read_children(&children,
db, local_abspath,
pool, pool));
- SVN_TEST_ASSERT(children->nelts == 12);
+ SVN_TEST_ASSERT(children->nelts == 14);
for (i = children->nelts; i--; )
{
const char *name = APR_ARRAY_IDX(children, i, const char *);
+ if (strcmp(name, "moved") == 0
+ || strcmp(name, "other") == 0)
+ {
+ continue;
+ }
+
SVN_TEST_ASSERT(strlen(name) == 1);
/* ### check the actual values */
}
@@ -863,7 +883,7 @@ test_working_info(apr_pool_t *pool)
SVN_TEST_ASSERT(checksum == NULL);
SVN_TEST_ASSERT(recorded_size == SVN_INVALID_FILESIZE);
SVN_TEST_ASSERT(target == NULL);
- SVN_TEST_STRING_ASSERT(changelist, "changelist");
+ SVN_TEST_STRING_ASSERT(changelist, NULL);
SVN_TEST_STRING_ASSERT(original_repos_relpath, "some/dir");
SVN_TEST_STRING_ASSERT(original_root_url, ROOT_TWO);
SVN_TEST_STRING_ASSERT(original_uuid, UUID_TWO);
@@ -881,8 +901,31 @@ test_working_info(apr_pool_t *pool)
/* ### we need a hojillion more tests in here. I just want to get this
### round checked in, so I'm skipping more tests at this point. */
-
-
+ SVN_ERR(svn_wc__db_read_info(
+ &status, &kind, &revision,
+ &repos_relpath, &repos_root_url, &repos_uuid,
+ &changed_rev, &changed_date, &changed_author,
+ &depth, &checksum, &target, &original_repos_relpath,
+ &original_root_url, &original_uuid, &original_revnum,
+ &lock, &recorded_size, &recorded_time, &changelist,
+ &conflicted, &op_root, &had_props, &props_mod,
+ &have_base, &have_more_work, &have_work,
+ db, svn_dirent_join(local_abspath, "A", pool),
+ pool, pool));
+ SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
+ SVN_TEST_ASSERT(kind == svn_node_file);
+ SVN_TEST_STRING_ASSERT(changelist, "changelist");
+ SVN_TEST_ASSERT(revision == 1);
+ SVN_TEST_STRING_ASSERT(repos_relpath, "A");
+ SVN_TEST_STRING_ASSERT(repos_root_url, "http://example.com/one");
+ SVN_TEST_STRING_ASSERT(repos_uuid, "uuid1");
+ SVN_TEST_ASSERT(changed_rev == 1);
+ SVN_TEST_ASSERT(changed_date == TIME_1a);
+ SVN_TEST_STRING_ASSERT(changed_author, AUTHOR_1);
+ SVN_TEST_ASSERT(depth == svn_depth_unknown);
+ SVN_TEST_ASSERT(checksum != NULL);
+ SVN_TEST_ASSERT(recorded_size == 10);
+ SVN_TEST_ASSERT(target == NULL);
return SVN_NO_ERROR;
}