MCPcopy Create free account
hub / github.com/bloomberg/quantum / TEST

Function TEST

tests/quantum_id_tests.cpp:36–71  ·  view source on GitHub ↗

============================================================================== TEST CASES ==============================================================================

Source from the content-addressed store, hash-verified

34// TEST CASES
35//==============================================================================
36TEST(TaskId, DefaultInitialization)
37{
38 MockTaskId idMain; //empty
39 MockTaskId idMain2(MockTaskId::ThisThreadTag{}); //has main's thread id
40 MockTaskId idCoro(quantum::CoroContextTag{});
41 MockTaskId idCoroCopy = idCoro;
42 idCoro.assign(); //set current thread id
43 MockTaskId idCoro2(quantum::CoroContextTag{});
44 MockTaskId idIo(quantum::ThreadContextTag{});
45 idIo.assign(); //set current thread id
46 MockTaskId idIo2(quantum::ThreadContextTag{});
47
48 EXPECT_NE(idMain, idMain2);
49 EXPECT_EQ(idMain2, quantum::local::taskId());
50 EXPECT_NE(idCoro, idCoro2);
51 EXPECT_EQ(idCoro, idCoroCopy); //do not compare thread ids, only coroutine ids
52 EXPECT_NE(idIo, idIo2);
53 EXPECT_NE(idCoro, idIo);
54 EXPECT_NE(idCoro, idMain);
55 EXPECT_NE(idIo, idMain);
56
57 //check if it's a coroutine
58 EXPECT_TRUE(idCoro.isCoroutine());
59 EXPECT_FALSE(idMain.isCoroutine());
60 EXPECT_FALSE(idIo.isCoroutine());
61
62 //check the thread ids
63 EXPECT_NE(idMain.threadId(), idCoro.threadId());
64 EXPECT_EQ(idMain2.threadId(), idCoro.threadId());
65 EXPECT_EQ(idCoro.threadId(), idIo.threadId());
66 EXPECT_EQ(std::this_thread::get_id(), idCoro.threadId());
67 EXPECT_EQ(std::thread::id(), idCoro2.threadId());
68 EXPECT_EQ(0, idMain.id());
69 EXPECT_NE(idCoro.id(), idCoro2.id());
70 EXPECT_NE(idIo.id(), idIo2.id());
71}
72
73TEST(TaskId, Uniqueness)
74{

Callers

nothing calls this directly

Calls 13

taskIdFunction · 0.85
MockTaskIdClass · 0.85
TaskIdClass · 0.85
assignMethod · 0.80
isCoroutineMethod · 0.80
threadIdMethod · 0.80
idMethod · 0.80
taskIdMethod · 0.80
endMethod · 0.80
getMethod · 0.45
postMethod · 0.45
postAsyncIoMethod · 0.45

Tested by

no test coverage detected