Пример #1
0
    // Swap two shared resources
    void shared_14()
    {
        {
            assert_ck(0, 0);

            auto u0 = shared_test(test_behavior::init());
            assert_ck(1, 0);

            auto u1 = shared_test(test_behavior::init());
            assert_ck(2, 0);

            auto old0 = u0.get();
            auto old1 = u1.get();
            assert_ck(2, 0);

            u0.swap(u1);
            assert_ck(2, 0);

            assert(u0.get() == old1);
            assert(u1.get() == old0);

            (void)old0;
            (void)old1;
        }

        assert_ck(2, 2);
    }
Пример #2
0
    // Check uniqueness of shared
    void shared_15()
    {
        {
            assert_ck(0, 0);

            auto u0 = shared_test(test_behavior::init());
            assert_ck(1, 0);
            assert(u0.unique());

            auto u1 = u0;
            assert_ck(1, 0);
            assert(!u0.unique());

            u1 = shared_test(test_behavior::init());
            assert_ck(2, 0);
            assert(u0.unique());
            assert(u1.unique());
        }

        assert_ck(2, 2);
    }
Пример #3
0
    // Copy shared
    void shared_13()
    {
        {
            assert_ck(0, 0);

            auto u0 = shared_test(test_behavior::init());
            assert_ck(1, 0);

            auto u1 = u0;
            assert_ck(1, 0);

            assert(u0.get() == u1.get());
        }

        assert_ck(1, 1);
    }
Пример #4
0
    // Get use count of two shareds pointing to same data
    void shared_12()
    {
        {
            assert_ck(0, 0);

            auto u0 = shared_test(test_behavior::init());
            assert_ck(1, 0);

            {
                auto u1 = u0;
                assert_ck(1, 0);

                assert(u0.use_count() == 2);
                assert(u1.use_count() == 2);
            }

            assert_ck(1, 0);
            assert(u0.use_count() == 1);
        }

        assert_ck(1, 1);
    }
Пример #5
0
TEST(Process, BasicWaitCondition)
{
  shared_test(2, 4000, 2, root_wait);
}
Пример #6
0
TEST(Process, BasicLogging2Exec)
{
  shared_test(2, 2000, 2, root_create);
}
Пример #7
0
// FIXME: There's a scheduling problem with just 1 executor.
// This should be investigated, but isn't super urgent at the moment.
TEST(Process, DISABLED_BasicLogging1Exec)
{
  shared_test(2, 2000, 1, root_create);
}