You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/10/21 11:39:45 UTC

svn commit: r1187260 - /subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c

Author: julianfoad
Date: Fri Oct 21 09:39:44 2011
New Revision: 1187260

URL: http://svn.apache.org/viewvc?rev=1187260&view=rev
Log:
* subversion/tests/libsvn_subr/mergeinfo-test.c
  (test_merge_mergeinfo): Simplify, and eliminate some bugs in the error
    messages, by using an existing function to check the results.

Modified:
    subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c

Modified: subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c?rev=1187260&r1=1187259&r2=1187260&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_subr/mergeinfo-test.c Fri Oct 21 09:39:44 2011
@@ -605,6 +605,7 @@ test_merge_mergeinfo(apr_pool_t *pool)
   struct mergeinfo_merge_path_range
     {
       const char *path;
+      int expected_n;
       svn_merge_range_t expected_rngs[MAX_NBR_MERGEINFO_RANGES];
     };
 
@@ -627,75 +628,75 @@ test_merge_mergeinfo(apr_pool_t *pool)
       /* One path, intersecting inheritable ranges */
       { "/trunk: 5-10",
         "/trunk: 6", 1,
-        { {"/trunk", { {4, 10, TRUE} } } } },
+        { {"/trunk", 1, { {4, 10, TRUE} } } } },
 
       /* One path, intersecting non-inheritable ranges */
       { "/trunk: 5-10*",
         "/trunk: 6*", 1,
-        { {"/trunk", { {4, 10, FALSE} } } } },
+        { {"/trunk", 1, { {4, 10, FALSE} } } } },
 
       /* One path, intersecting ranges with different inheritability */
       { "/trunk: 5-10",
         "/trunk: 6*", 1,
-        { {"/trunk", { {4, 10, TRUE} } } } },
+        { {"/trunk", 1, { {4, 10, TRUE} } } } },
 
       /* One path, intersecting ranges with different inheritability */
       { "/trunk: 5-10*",
         "/trunk: 6", 1,
-        { {"/trunk", { {4, 5, FALSE}, {5, 6, TRUE}, {6, 10, FALSE} } } } },
+        { {"/trunk", 3, { {4, 5, FALSE}, {5, 6, TRUE}, {6, 10, FALSE} } } } },
 
       /* Adjacent ranges all inheritable ranges */
       { "/trunk: 1,3,5-11,13",
         "/trunk: 2,4,12,14-22", 1,
-         { {"/trunk", { {0, 22, TRUE} } } } },
+        { {"/trunk", 1, { {0, 22, TRUE} } } } },
 
       /* Adjacent ranges all non-inheritable ranges */
       { "/trunk: 1*,3*,5-11*,13*",
         "/trunk: 2*,4*,12*,14-22*", 1,
-         { {"/trunk", { {0, 22, FALSE} } } } },
+        { {"/trunk", 1, { {0, 22, FALSE} } } } },
 
       /* Adjacent ranges differing inheritability */
       { "/trunk: 1*,3*,5-11*,13*",
         "/trunk: 2,4,12,14-22", 1,
-         { {"/trunk", { { 0,  1, FALSE}, { 1,  2, TRUE},
-                        { 2,  3, FALSE}, { 3,  4, TRUE},
-                        { 4, 11, FALSE}, {11, 12, TRUE},
-                        {12, 13, FALSE}, {13, 22, TRUE} } } } },
+        { {"/trunk", 8, { { 0,  1, FALSE}, { 1,  2, TRUE},
+                          { 2,  3, FALSE}, { 3,  4, TRUE},
+                          { 4, 11, FALSE}, {11, 12, TRUE},
+                          {12, 13, FALSE}, {13, 22, TRUE} } } } },
 
       /* Adjacent ranges differing inheritability */
       { "/trunk: 1,3,5-11,13",
         "/trunk: 2*,4*,12*,14-22*", 1,
-         { {"/trunk", { { 0,  1, TRUE}, { 1,  2, FALSE},
-                        { 2,  3, TRUE}, { 3,  4, FALSE},
-                        { 4, 11, TRUE}, {11, 12, FALSE},
-                        {12, 13, TRUE}, {13, 22, FALSE} } } } },
+        { {"/trunk", 8, { { 0,  1, TRUE}, { 1,  2, FALSE},
+                          { 2,  3, TRUE}, { 3,  4, FALSE},
+                          { 4, 11, TRUE}, {11, 12, FALSE},
+                          {12, 13, TRUE}, {13, 22, FALSE} } } } },
 
       /* Two paths all inheritable ranges */
       { "/trunk::1: 3,5,7-9,10,11,13,14\n/fred:8-10",
         "/trunk::1: 1-4,6\n/fred:9-12", 2,
-        { {"/trunk::1", { {0, 11, TRUE}, {12, 14, TRUE} } },
-          {"/fred",  { {7, 12, TRUE} } } } },
+        { {"/trunk::1", 2, { {0, 11, TRUE}, {12, 14, TRUE} } },
+          {"/fred",     1, { {7, 12, TRUE} } } } },
 
       /* Two paths all non-inheritable ranges */
       { "/trunk: 3*,5*,7-9*,10*,11*,13*,14*\n/fred:8-10*",
         "/trunk: 1-4*,6*\n/fred:9-12*", 2,
-        { {"/trunk", { {0, 11, FALSE}, {12, 14, FALSE} } },
-          {"/fred",  { {7, 12, FALSE} } } } },
+        { {"/trunk", 2, { {0, 11, FALSE}, {12, 14, FALSE} } },
+          {"/fred",  1, { {7, 12, FALSE} } } } },
 
       /* Two paths mixed inheritability */
       { "/trunk: 3,5*,7-9,10,11*,13,14\n/fred:8-10",
         "/trunk: 1-4,6\n/fred:9-12*", 2,
-        { {"/trunk", { { 0,  4, TRUE }, { 4,  5, FALSE}, {5, 10, TRUE},
-                       {10, 11, FALSE}, {12, 14, TRUE } } },
-          {"/fred",  { { 7, 10, TRUE }, {10, 12, FALSE} } } } },
+        { {"/trunk", 5, { { 0,  4, TRUE }, { 4,  5, FALSE}, {5, 10, TRUE},
+                          {10, 11, FALSE}, {12, 14, TRUE } } },
+          {"/fred",  2, { { 7, 10, TRUE }, {10, 12, FALSE} } } } },
 
       /* A slew of different paths but no ranges to be merged */
       { "/trunk: 3,5-9*\n/betty: 2-4",
         "/fred: 1-18\n/:barney: 1,3-43", 4,
-        { {"/trunk",   { {2,  3, TRUE}, {4,  9, FALSE} } },
-          {"/betty",   { {1,  4, TRUE} } },
-          {"/:barney", { {0,  1, TRUE}, {2, 43, TRUE} } },
-          {"/fred",    { {0, 18, TRUE} } } } }
+        { {"/trunk",   2, { {2,  3, TRUE}, {4,  9, FALSE} } },
+          {"/betty",   1, { {1,  4, TRUE} } },
+          {"/:barney", 2, { {0,  1, TRUE}, {2, 43, TRUE} } },
+          {"/fred",    1, { {0, 18, TRUE} } } } }
     };
 
   for (i = 0; i < NBR_MERGEINFO_MERGES; i++)
@@ -730,36 +731,18 @@ test_merge_mergeinfo(apr_pool_t *pool)
 
       for (j = 0; j < mergeinfo[i].expected_paths; j++)
         {
-          int k;
           apr_array_header_t *rangelist =
             apr_hash_get(info1, mergeinfo[i].path_rngs[j].path,
                          APR_HASH_KEY_STRING);
           if (!rangelist)
             return fail(pool, "Missing path '%s' in merged mergeinfo",
-                        mergeinfo[i].path_rngs->path);
-          for (k = 0; k < rangelist->nelts; k++)
-            {
-              svn_merge_range_t *ranges =
-                APR_ARRAY_IDX(rangelist, k, svn_merge_range_t *);
-              if (ranges->start
-                    != mergeinfo[i].path_rngs[j].expected_rngs[k].start
-                  || ranges->end
-                    != mergeinfo[i].path_rngs[j].expected_rngs[k].end
-                  || ranges->inheritable
-                    != mergeinfo[i].path_rngs[j].expected_rngs[k].inheritable)
-                return fail(
-                  pool,
-                  "Range'%i-%i%s' not found in merged mergeinfo",
-                  mergeinfo[i].path_rngs->expected_rngs[k].start,
-                  mergeinfo[i].path_rngs->expected_rngs[k].end,
-                  mergeinfo[i].path_rngs->expected_rngs[k].inheritable
-                  ? "" : "*");
-            }
-          /* Were more ranges expected? */
-          if (k < MAX_NBR_MERGEINFO_RANGES
-              && mergeinfo[i].path_rngs[j].expected_rngs[k].start != 0)
-            return fail(pool,
-                        "Not all expected ranges found in merged mergeinfo");
+                        mergeinfo[i].path_rngs[j].path);
+          SVN_ERR(verify_ranges_match(
+                    rangelist,
+                    mergeinfo[i].path_rngs[j].expected_rngs,
+                    mergeinfo[i].path_rngs[j].expected_n,
+                    apr_psprintf(pool, "svn_rangelist_merge case %i:%i", i, j),
+                    "merge", pool));
         }
     }
 
@@ -1721,7 +1704,7 @@ struct svn_test_descriptor_t test_funcs[
     SVN_TEST_PASS2(test_diff_mergeinfo,
                    "diff of mergeinfo"),
     SVN_TEST_PASS2(test_merge_mergeinfo,
-                   "merging of mergeinfo hashs"),
+                   "merging of mergeinfo hashes"),
     SVN_TEST_PASS2(test_mergeinfo_intersect,
                    "intersection of mergeinfo"),
     SVN_TEST_PASS2(test_rangelist_to_string,