X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Funit%2Fintrusive-list%2Ftest_intrusive_iterable_list.h;h=6c49b305e7dcdf415de9d078dc9f6d3fcdd71f02;hb=83904aeb6442d3f60c99dd627ac704feeb1b5a82;hp=9dad1190fe72a8a759361747f3126a3e849de343;hpb=2bb66f1d159d044d2c5dad0f0f968abcb6d53287;p=libcds.git diff --git a/test/unit/intrusive-list/test_intrusive_iterable_list.h b/test/unit/intrusive-list/test_intrusive_iterable_list.h index 9dad1190..6c49b305 100644 --- a/test/unit/intrusive-list/test_intrusive_iterable_list.h +++ b/test/unit/intrusive-list/test_intrusive_iterable_list.h @@ -253,24 +253,24 @@ namespace cds_test { break; case 1: EXPECT_EQ( i.s.nInsertCall, 0 ); - EXPECT_TRUE( l.insert( i, []( value_type& i ) { ++i.s.nInsertCall; } )); + EXPECT_TRUE( l.insert( i, []( value_type& v ) { ++v.s.nInsertCall; } )); EXPECT_EQ( i.s.nInsertCall, 1 ); break; case 2: { - std::pair ret = l.update( i, []( value_type& i, value_type * old ) { + std::pair ret = l.update( i, []( value_type& v, value_type * old ) { EXPECT_TRUE( old == nullptr ); - EXPECT_EQ( i.s.nUpdateNewCall, 0 ); - ++i.s.nUpdateNewCall; + EXPECT_EQ( v.s.nUpdateNewCall, 0 ); + ++v.s.nUpdateNewCall; }, false ); EXPECT_EQ( i.s.nUpdateNewCall, 0 ); EXPECT_EQ( ret.first, false ); EXPECT_EQ( ret.second, false ); - ret = l.update( i, []( value_type& i, value_type * old ) { + ret = l.update( i, []( value_type& v, value_type * old ) { EXPECT_TRUE( old == nullptr ); - EXPECT_EQ( i.s.nUpdateNewCall, 0 ); - ++i.s.nUpdateNewCall; + EXPECT_EQ( v.s.nUpdateNewCall, 0 ); + ++v.s.nUpdateNewCall; }, true ); EXPECT_EQ( i.s.nUpdateNewCall, 1 ); EXPECT_EQ( ret.first, true ); @@ -364,10 +364,10 @@ namespace cds_test { for ( auto& i : arr ) { EXPECT_EQ( i.s.nUpdateExistsCall, 0 ); - std::pair ret = l.update( i, []( value_type& i, value_type * old ) { + std::pair ret = l.update( i, []( value_type& v, value_type * old ) { EXPECT_FALSE( old == nullptr ); - EXPECT_EQ( i.s.nUpdateExistsCall, 0 ); - ++i.s.nUpdateExistsCall; + EXPECT_EQ( v.s.nUpdateExistsCall, 0 ); + ++v.s.nUpdateExistsCall; }); EXPECT_TRUE( ret.first ); EXPECT_FALSE( ret.second ); @@ -529,7 +529,23 @@ namespace cds_test { ++key; } - l.clear(); + // Erase by iterator + key = 0; + for ( auto it = l.begin(); it != l.end(); ++it ) { + EXPECT_EQ( it->nKey, key ); + EXPECT_EQ( ( *it ).nKey, key ); + + EXPECT_TRUE( l.erase_at( it )); + + EXPECT_EQ( it->nKey, key ); + EXPECT_EQ( ( *it ).nKey, key ); + + EXPECT_FALSE( l.erase_at( it )); + ++key; + } + EXPECT_TRUE( l.empty()); + EXPECT_CONTAINER_SIZE( l, 0 ); + List::gc::force_dispose(); for ( auto const& i : arr ) { EXPECT_EQ( i.s.nDisposeCount, 1 );