X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=tests%2Ftest-hdr%2Fordered_list%2Fhdr_intrusive_michael.h;h=864dcc1e2595a39663d7bccb8d080780553e0847;hp=bbf238566be66f0175e74d5f25fee703a13bcc4e;hb=e9fda6acf3c6a28fb822cfe85d784682eb8dbbe0;hpb=ec5e65cb042011c31933943152ebb257a314c7dc diff --git a/tests/test-hdr/ordered_list/hdr_intrusive_michael.h b/tests/test-hdr/ordered_list/hdr_intrusive_michael.h index bbf23856..864dcc1e 100644 --- a/tests/test-hdr/ordered_list/hdr_intrusive_michael.h +++ b/tests/test-hdr/ordered_list/hdr_intrusive_michael.h @@ -457,7 +457,6 @@ namespace ordlist { static int const nLimit = 20; typename OrdList::value_type arrItem[nLimit]; - { int a[nLimit]; for (int i = 0; i < nLimit; ++i) @@ -474,27 +473,28 @@ namespace ordlist { CPPUNIT_ASSERT( l.insert( arrItem[i] ) ); for ( int i=0; i < nLimit; ++i ) { - CPPUNIT_ASSERT( l.get( gp, arrItem[i].nKey )); + gp = l.get( arrItem[i].nKey ); + CPPUNIT_ASSERT_EX( gp, "i=" << i ); CPPUNIT_ASSERT( !gp.empty()); - CPPUNIT_ASSERT( gp->nKey == arrItem[i].nKey ); - CPPUNIT_ASSERT( gp->nVal == arrItem[i].nVal ); - gp.release(); + CPPUNIT_CHECK( gp->nKey == arrItem[i].nKey ); + CPPUNIT_CHECK( gp->nVal == arrItem[i].nVal ); - CPPUNIT_ASSERT( l.extract( gp, arrItem[i].nKey )); + gp = l.extract( arrItem[i].nKey ); + CPPUNIT_ASSERT_EX( gp, "i=" << i ); CPPUNIT_ASSERT( !gp.empty()); - CPPUNIT_ASSERT( gp->nKey == arrItem[i].nKey ); - CPPUNIT_ASSERT( gp->nVal == arrItem[i].nVal ); - gp.release(); - - CPPUNIT_ASSERT( !l.get( gp, arrItem[i].nKey )); - CPPUNIT_ASSERT( gp.empty()); - CPPUNIT_ASSERT( !l.extract( gp, arrItem[i].nKey )); - CPPUNIT_ASSERT( gp.empty()); + CPPUNIT_CHECK( gp->nKey == arrItem[i].nKey ); + CPPUNIT_CHECK( gp->nVal == arrItem[i].nVal ); + + gp = l.get( arrItem[i].nKey ); + CPPUNIT_CHECK( !gp ); + CPPUNIT_CHECK( gp.empty()); + CPPUNIT_CHECK( !l.extract( arrItem[i].nKey )); + CPPUNIT_CHECK( gp.empty()); } CPPUNIT_ASSERT( l.empty() ); - CPPUNIT_ASSERT( !l.get( gp, nLimit/2 )); + CPPUNIT_ASSERT( !l.get( nLimit/2 )); CPPUNIT_ASSERT( gp.empty()); - CPPUNIT_ASSERT( !l.extract( gp, nLimit/2 )); + CPPUNIT_ASSERT( !l.extract( nLimit/2 )); CPPUNIT_ASSERT( gp.empty()); // Apply retired pointer @@ -506,27 +506,28 @@ namespace ordlist { for ( int i=0; i < nLimit; ++i ) { other_item itm( arrItem[i].nKey ); - CPPUNIT_ASSERT( l.get_with( gp, itm, other_less() )); + gp = l.get_with( itm, other_less() ); + CPPUNIT_ASSERT_EX( gp, "i=" << i ); CPPUNIT_ASSERT( !gp.empty()); - CPPUNIT_ASSERT( gp->nKey == arrItem[i].nKey ); - CPPUNIT_ASSERT( gp->nVal == arrItem[i].nVal ); - gp.release(); + CPPUNIT_CHECK( gp->nKey == arrItem[i].nKey ); + CPPUNIT_CHECK( gp->nVal == arrItem[i].nVal ); - CPPUNIT_ASSERT( l.extract_with( gp, itm, other_less() )); + gp = l.extract_with( itm, other_less() ); + CPPUNIT_ASSERT_EX( gp, "i=" << i ); CPPUNIT_ASSERT( !gp.empty()); - CPPUNIT_ASSERT( gp->nKey == arrItem[i].nKey ); - CPPUNIT_ASSERT( gp->nVal == arrItem[i].nVal ); - gp.release(); - - CPPUNIT_ASSERT( !l.get_with( gp, itm, other_less() )); - CPPUNIT_ASSERT( gp.empty()); - CPPUNIT_ASSERT( !l.extract_with( gp, itm, other_less() )); - CPPUNIT_ASSERT( gp.empty()); + CPPUNIT_CHECK( gp->nKey == arrItem[i].nKey ); + CPPUNIT_CHECK( gp->nVal == arrItem[i].nVal ); + + gp = l.get_with( itm, other_less() ); + CPPUNIT_CHECK( !gp ); + CPPUNIT_CHECK( gp.empty()); + CPPUNIT_CHECK( !l.extract_with( itm, other_less() )); + CPPUNIT_CHECK( gp.empty()); } CPPUNIT_ASSERT( l.empty() ); - CPPUNIT_ASSERT( !l.get_with( gp, other_item(nLimit/2), other_less() )); + CPPUNIT_ASSERT( !l.get_with( other_item(nLimit/2), other_less() )); CPPUNIT_ASSERT( gp.empty()); - CPPUNIT_ASSERT( !l.extract_with( gp, other_item(nLimit/2), other_less() )); + CPPUNIT_ASSERT( !l.extract_with( other_item(nLimit/2), other_less() )); CPPUNIT_ASSERT( gp.empty()); // Apply retired pointer @@ -570,11 +571,13 @@ namespace ordlist { for ( int i = 0; i < nLimit; ++i ) { { - rcu_lock lock; - value_type * pGet = l.get( a[i] ); - CPPUNIT_ASSERT( pGet != nullptr ); - CPPUNIT_CHECK( pGet->nKey == a[i] ); - CPPUNIT_CHECK( pGet->nVal == a[i] * 2 ); + { + rcu_lock lock; + value_type * pGet = l.get( a[i] ); + CPPUNIT_ASSERT( pGet != nullptr ); + CPPUNIT_CHECK( pGet->nKey == a[i] ); + CPPUNIT_CHECK( pGet->nVal == a[i] * 2 ); + } ep = l.extract( a[i] ); CPPUNIT_ASSERT( ep ); @@ -610,11 +613,13 @@ namespace ordlist { for ( int i = 0; i < nLimit; ++i ) { other_item itm( a[i] ); { - rcu_lock lock; - value_type * pGet = l.get_with( itm, other_less() ); - CPPUNIT_ASSERT( pGet != nullptr ); - CPPUNIT_CHECK( pGet->nKey == a[i] ); - CPPUNIT_CHECK( pGet->nVal == a[i] * 2 ); + { + rcu_lock lock; + value_type * pGet = l.get_with( itm, other_less() ); + CPPUNIT_ASSERT( pGet != nullptr ); + CPPUNIT_CHECK( pGet->nKey == a[i] ); + CPPUNIT_CHECK( pGet->nVal == a[i] * 2 ); + } ep = l.extract_with( itm, other_less() ); CPPUNIT_ASSERT( ep );