You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2013/02/21 20:12:25 UTC

svn commit: r1448775 - in /subversion/trunk/subversion/tests: cmdline/update_tests.py libsvn_wc/op-depth-test.c

Author: philip
Date: Thu Feb 21 19:12:25 2013
New Revision: 1448775

URL: http://svn.apache.org/r1448775
Log:
Add another XFail test for issue 4111 to show NODES problem.

* subversion/tests/libsvn_wc/op-depth-test.c
  (update_child_under_add): New test.
  (test_funcs): Add new test.

* subversion/tests/cmdline/update_tests.py
  (update_child_below_add): Tweak comment.

Modified:
    subversion/trunk/subversion/tests/cmdline/update_tests.py
    subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c

Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/update_tests.py?rev=1448775&r1=1448774&r2=1448775&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/update_tests.py Thu Feb 21 19:12:25 2013
@@ -6745,7 +6745,7 @@ def update_child_below_add(sbox):
 
   sbox.simple_update('A/B', 0)
 
-  # Update skips A/B/E because A/B doesn't have a BASE node.
+  # Update skips A/B/E because A/B has a not-present BASE node.
   expected_output = svntest.wc.State(wc_dir, {
       'A/B/E' : Item(verb='Skipped'),
   })

Modified: subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c?rev=1448775&r1=1448774&r2=1448775&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c Thu Feb 21 19:12:25 2013
@@ -6939,6 +6939,48 @@ move_not_present_variants(const svn_test
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+update_child_under_add(const svn_test_opts_t *opts, apr_pool_t *pool)
+{
+  svn_test__sandbox_t b;
+  svn_error_t *err;
+  nodes_row_t nodes[] = {
+    {0, "",        "normal",      1, ""},
+    {0, "A",       "normal",      1, "A"},
+    {0, "A/B",     "not-present", 0, "A/B"},
+    {2, "A/B",     "normal",      NO_COPY_FROM},
+    {3, "A/B/C",   "normal",      NO_COPY_FROM},
+    {4, "A/B/C/D", "normal",      NO_COPY_FROM},
+    {0}
+  };
+
+  SVN_ERR(svn_test__sandbox_create(&b, "update_child_under_add",
+                                   opts, pool));
+
+  SVN_ERR(sbox_wc_mkdir(&b, "A"));
+  SVN_ERR(sbox_wc_mkdir(&b, "A/B"));
+  SVN_ERR(sbox_wc_mkdir(&b, "A/B/C"));
+  SVN_ERR(sbox_wc_mkdir(&b, "A/B/C/D"));
+  SVN_ERR(sbox_wc_commit(&b, ""));
+  SVN_ERR(sbox_wc_update(&b, "", 1));
+  SVN_ERR(sbox_wc_update(&b, "A/B", 0));
+  SVN_ERR(sbox_wc_mkdir(&b, "A/B"));
+  SVN_ERR(sbox_wc_mkdir(&b, "A/B/C"));
+  SVN_ERR(sbox_wc_mkdir(&b, "A/B/C/D"));
+  SVN_ERR(check_db_rows(&b, "", nodes));
+
+  /* A/B/C/D is skipped as it has no base node parent */
+  SVN_ERR(sbox_wc_update(&b, "A/B/C/D", 1));
+  SVN_ERR(check_db_rows(&b, "", nodes));
+
+  /* A/B/C should be skipped as it has a not-present base node parent */
+  err = sbox_wc_update(&b, "A/B/C", 1);
+  svn_error_clear(err); /* Allow any error and always check NODES. */
+  SVN_ERR(check_db_rows(&b, "", nodes));
+
+  return SVN_NO_ERROR;
+}
+
 
 /* ---------------------------------------------------------------------- */
 /* The list of test functions */
@@ -7071,5 +7113,7 @@ struct svn_test_descriptor_t test_funcs[
                        "move_away_delete_update"),
     SVN_TEST_OPTS_PASS(move_not_present_variants,
                        "move_not_present_variants"),
+    SVN_TEST_OPTS_XFAIL(update_child_under_add,
+                        "update_child_under_add (issue 4111)"),
     SVN_TEST_NULL
   };