You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by yl...@apache.org on 2015/03/14 00:55:12 UTC

svn commit: r1666616 - in /apr/apr/branches/1.5.x: ./ test/testskiplist.c

Author: ylavic
Date: Fri Mar 13 23:55:12 2015
New Revision: 1666616

URL: http://svn.apache.org/r1666616
Log:
Merge r1666611 from trunk.

testskiplist: Add a test to show that comparek == compare is required for
apr_skiplist_remove() and apr_skiplist_find() to work.

It also shows that a single compare function can be used for add semantic
with apr_skiplist_insert() (and unique pointers).

Modified:
    apr/apr/branches/1.5.x/   (props changed)
    apr/apr/branches/1.5.x/test/testskiplist.c

Propchange: apr/apr/branches/1.5.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar 13 23:55:12 2015
@@ -1,4 +1,4 @@
 /apr/apr/branches/1.4.x:1003369,1101301
 /apr/apr/branches/1.6.x:1593600,1593612,1648831
-/apr/apr/trunk:733052,739635,746310,747990,748080,748361,748371,748565,748888,748902,748988,749810,760443,775683,782838,783398,783958,784633,784773,788588,789050,793192-793193,794118,794485,795267,799497,800627,809745,809854,810472,811455,813063,821306,829490,831641,832904,835607,888669,892028,892159,892909,896382,896653,908427,910419,910597,917819,917837-917838,925965,929796,931973,951771,960665,960671,979891,983618,989450,990435,1003338,1044440,1044447,1055657,1072165,1078845,1081462,1081495,1083038,1083242,1084662,1086695,1088023,1089031,1089129,1089438,1099348,1103310,1183683,1183685-1183686,1183688,1183693,1183698,1213382,1235047,1236970,1237078,1237507,1240472,1340286,1340288,1340470,1341193,1341196,1343233,1343243,1367050,1368819,1370494,1372018,1372022,1372093,1372849,1376957,1384764,1389077,1400200,1402868,1405985,1406690,1420106,1420109,1425356,1428809,1438940,1438958,1442903,1449568,1456418,1459994,1460179,1460241,1460399,1460405,1462738,1462813,1470186,1470348,1475509,14
 78905,1480067,1481262,1481265,1484271,1487796,1489517,1496407,1502804,1510354,1516261,1523384,1523479,1523484,1523505,1523521,1523604,1523613,1523615,1523844-1523845,1523853,1524014,1524031,1528797,1528809,1529488,1529495,1529515,1529521,1529668,1530786,1530800,1530988,1531554,1531768,1531884,1532022,1533104,1533111,1533979,1535027,1535157,1536744,1538171,1539374,1539389,1539455,1539603,1541054,1541061,1541486,1541655,1541666,1541744,1542601,1542779,1543033,1543056,1548575,1550907,1551650,1551659,1558905,1559382,1559873,1559975,1561260,1561265,1561321,1561347,1561356,1561361,1561394,1561555,1571894,1575509,1578420,1587063,1587545,1589982,1593611,1604596,1604598,1610854,1611004,1611023,1611107,1611110,1611120,1611125,1611184,1611193,1611466,1626564,1634615,1648830,1664406,1664447,1664451,1664471,1664769,1664775,1664904,1664911,1664958,1666411,1666458
+/apr/apr/trunk:733052,739635,746310,747990,748080,748361,748371,748565,748888,748902,748988,749810,760443,775683,782838,783398,783958,784633,784773,788588,789050,793192-793193,794118,794485,795267,799497,800627,809745,809854,810472,811455,813063,821306,829490,831641,832904,835607,888669,892028,892159,892909,896382,896653,908427,910419,910597,917819,917837-917838,925965,929796,931973,951771,960665,960671,979891,983618,989450,990435,1003338,1044440,1044447,1055657,1072165,1078845,1081462,1081495,1083038,1083242,1084662,1086695,1088023,1089031,1089129,1089438,1099348,1103310,1183683,1183685-1183686,1183688,1183693,1183698,1213382,1235047,1236970,1237078,1237507,1240472,1340286,1340288,1340470,1341193,1341196,1343233,1343243,1367050,1368819,1370494,1372018,1372022,1372093,1372849,1376957,1384764,1389077,1400200,1402868,1405985,1406690,1420106,1420109,1425356,1428809,1438940,1438958,1442903,1449568,1456418,1459994,1460179,1460241,1460399,1460405,1462738,1462813,1470186,1470348,1475509,14
 78905,1480067,1481262,1481265,1484271,1487796,1489517,1496407,1502804,1510354,1516261,1523384,1523479,1523484,1523505,1523521,1523604,1523613,1523615,1523844-1523845,1523853,1524014,1524031,1528797,1528809,1529488,1529495,1529515,1529521,1529668,1530786,1530800,1530988,1531554,1531768,1531884,1532022,1533104,1533111,1533979,1535027,1535157,1536744,1538171,1539374,1539389,1539455,1539603,1541054,1541061,1541486,1541655,1541666,1541744,1542601,1542779,1543033,1543056,1548575,1550907,1551650,1551659,1558905,1559382,1559873,1559975,1561260,1561265,1561321,1561347,1561356,1561361,1561394,1561555,1571894,1575509,1578420,1587063,1587545,1589982,1593611,1604596,1604598,1610854,1611004,1611023,1611107,1611110,1611120,1611125,1611184,1611193,1611466,1626564,1634615,1648830,1664406,1664447,1664451,1664471,1664769,1664775,1664904,1664911,1664958,1666411,1666458,1666611
 /apr/apr/trunk/test/testnames.c:1460405

Modified: apr/apr/branches/1.5.x/test/testskiplist.c
URL: http://svn.apache.org/viewvc/apr/apr/branches/1.5.x/test/testskiplist.c?rev=1666616&r1=1666615&r2=1666616&view=diff
==============================================================================
--- apr/apr/branches/1.5.x/test/testskiplist.c (original)
+++ apr/apr/branches/1.5.x/test/testskiplist.c Fri Mar 13 23:55:12 2015
@@ -253,8 +253,8 @@ static void skiplist_random_loop(abts_ca
 }
 
 typedef struct elem {
-    int a;
     int b;
+    int a;
 } elem;
 
 
@@ -274,16 +274,17 @@ static int comp(void *a, void *b){
     return (*((int*) a) < *((int*) b)) ? -1 : 1;
 }
 
-static int compk(void *a, void *b){
-    return comp(a, b);
-}
-
 static int scomp(void *a, void *b){
     return (((elem*) a)->a < ((elem*) b)->a) ? -1 : 1;
 }
 
-static int scompk(void *a, void *b){
-    return scomp(a, b);
+static int acomp(void *a, void *b){
+    if (a != b) {
+        return scomp(a, b);
+    }
+    else {
+        return 0;
+    }
 }
 
 static void skiplist_test(abts_case *tc, void *data) {
@@ -293,6 +294,7 @@ static void skiplist_test(abts_case *tc,
     elem *val2 = NULL;
     apr_skiplist * list = NULL;
     apr_skiplist * list2 = NULL;
+    apr_skiplist * list3 = NULL;
     int first_forty_two = 42,
         second_forty_two = 42;
     elem t1, t2, t3, t4, t5;
@@ -303,7 +305,7 @@ static void skiplist_test(abts_case *tc,
     t5.a = 142; t5.b = 1;
 
     ABTS_INT_EQUAL(tc, APR_SUCCESS, apr_skiplist_init(&list, ptmp));
-    apr_skiplist_set_compare(list, comp, compk);
+    apr_skiplist_set_compare(list, comp, comp);
     
     /* insert 10 objects */
     for (i = 0; i < test_elems; ++i){
@@ -358,7 +360,7 @@ static void skiplist_test(abts_case *tc,
     ABTS_INT_EQUAL(tc, *val, 142);
 
     ABTS_INT_EQUAL(tc, APR_SUCCESS, apr_skiplist_init(&list2, ptmp));
-    apr_skiplist_set_compare(list2, scomp, scompk);
+    apr_skiplist_set_compare(list2, scomp, scomp);
     add_elem_to_skiplist(list2, t2);
     add_elem_to_skiplist(list2, t1);
     add_elem_to_skiplist(list2, t3);
@@ -379,6 +381,20 @@ static void skiplist_test(abts_case *tc,
     ABTS_INT_EQUAL(tc, val2->a, 142);
     ABTS_INT_EQUAL(tc, val2->b, 1);
 
+    ABTS_INT_EQUAL(tc, APR_SUCCESS, apr_skiplist_init(&list3, ptmp));
+    apr_skiplist_set_compare(list3, acomp, acomp);
+    apr_skiplist_insert(list3, &t2);
+    val2 = apr_skiplist_find(list3, &t2, NULL);
+    ABTS_PTR_EQUAL(tc, &t2, val2);
+    apr_skiplist_insert(list3, &t3);
+    val2 = apr_skiplist_find(list3, &t3, NULL);
+    ABTS_PTR_EQUAL(tc, &t3, val2);
+    apr_skiplist_remove(list3, &t3, NULL);
+    val2 = apr_skiplist_find(list3, &t3, NULL);
+    ABTS_PTR_EQUAL(tc, NULL, val2);
+    apr_skiplist_remove(list3, &t2, NULL);
+    val2 = apr_skiplist_find(list3, &t2, NULL);
+    ABTS_PTR_EQUAL(tc, NULL, val2);
 
     apr_pool_clear(ptmp);
 }