int main( int coreid )
{
    if( coreid == 0 ) {
        return count0();
    } else if( coreid == 1 ) {
        return count1();
    }
    return 0;
}
Ejemplo n.º 2
0
TEST(Pointer, SPtr)
{
    static int count = 0;

    struct counter {
        counter()
        {
            ++count;
        }

        ~counter()
        {
            --count;
        }

        void nop() {}
    };

    struct counter_inherit
        : counter
    {};

    {
        util::sptr<counter> count0(new counter);
        ASSERT_TRUE(count0.not_nul());
        ASSERT_TRUE((*count0).not_nul());
        ASSERT_EQ(1, count);
        util::sref<counter> refcount0 = *count0;
        util::sptr<counter> count1(std::move(count0));
        ASSERT_EQ(1, count);
        util::sref<counter> refcount1 = *count1;
        ASSERT_EQ(refcount0.id().str(), refcount1.id().str());
        ASSERT_EQ(refcount0.id().str(), count1.id().str());
        ASSERT_TRUE(count0.nul());
        ASSERT_TRUE((*count0).nul());

        util::sptr<counter_inherit> count2(new counter_inherit);
        count1 = std::move(count2);
        ASSERT_EQ(1, count);

        util::sptr<counter_inherit> count3(new counter_inherit);
        ASSERT_EQ(2, count);
        util::sptr<counter> count4(std::move(count3));
        count4->nop();
    }
    ASSERT_EQ(0, count);
}
Ejemplo n.º 3
0
void ScopeGuardTestCase::BlockExitObj()
{
    Counter count0(1),
            count1(2),
            count2(3);

    {
        wxON_BLOCK_EXIT_OBJ0(count0, Counter::Zero);
        wxON_BLOCK_EXIT_OBJ1(count1, Counter::Set, 17);
        wxON_BLOCK_EXIT_OBJ2(count2, Counter::Sum, 2, 3);

        CPPUNIT_ASSERT_EQUAL( 1, count0.GetCount() );
        CPPUNIT_ASSERT_EQUAL( 2, count1.GetCount() );
        CPPUNIT_ASSERT_EQUAL( 3, count2.GetCount() );
    }

    CPPUNIT_ASSERT_EQUAL( 0, count0.GetCount() );
    CPPUNIT_ASSERT_EQUAL( 17, count1.GetCount() );
    CPPUNIT_ASSERT_EQUAL( 5, count2.GetCount() );
}