forked from OSchip/llvm-project
parent
71a89d92f6
commit
1611ed8879
|
@ -18,34 +18,34 @@ namespace __tsan {
|
||||||
|
|
||||||
TEST(Clock, VectorBasic) {
|
TEST(Clock, VectorBasic) {
|
||||||
ThreadClock clk(0);
|
ThreadClock clk(0);
|
||||||
ASSERT_EQ(clk.size(), 1);
|
ASSERT_EQ(clk.size(), 1U);
|
||||||
clk.tick();
|
clk.tick();
|
||||||
ASSERT_EQ(clk.size(), 1);
|
ASSERT_EQ(clk.size(), 1U);
|
||||||
ASSERT_EQ(clk.get(0), 1);
|
ASSERT_EQ(clk.get(0), 1U);
|
||||||
clk.set(3, clk.get(3) + 1);
|
clk.set(3, clk.get(3) + 1);
|
||||||
ASSERT_EQ(clk.size(), 4);
|
ASSERT_EQ(clk.size(), 4U);
|
||||||
ASSERT_EQ(clk.get(0), 1);
|
ASSERT_EQ(clk.get(0), 1U);
|
||||||
ASSERT_EQ(clk.get(1), 0);
|
ASSERT_EQ(clk.get(1), 0U);
|
||||||
ASSERT_EQ(clk.get(2), 0);
|
ASSERT_EQ(clk.get(2), 0U);
|
||||||
ASSERT_EQ(clk.get(3), 1);
|
ASSERT_EQ(clk.get(3), 1U);
|
||||||
clk.set(3, clk.get(3) + 1);
|
clk.set(3, clk.get(3) + 1);
|
||||||
ASSERT_EQ(clk.get(3), 2);
|
ASSERT_EQ(clk.get(3), 2U);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Clock, ChunkedBasic) {
|
TEST(Clock, ChunkedBasic) {
|
||||||
ThreadClock vector(0);
|
ThreadClock vector(0);
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
ASSERT_EQ(vector.size(), 1);
|
ASSERT_EQ(vector.size(), 1U);
|
||||||
ASSERT_EQ(chunked.size(), 0);
|
ASSERT_EQ(chunked.size(), 0U);
|
||||||
vector.acquire(&chunked);
|
vector.acquire(&chunked);
|
||||||
ASSERT_EQ(vector.size(), 1);
|
ASSERT_EQ(vector.size(), 1U);
|
||||||
ASSERT_EQ(chunked.size(), 0);
|
ASSERT_EQ(chunked.size(), 0U);
|
||||||
vector.release(&chunked);
|
vector.release(&chunked);
|
||||||
ASSERT_EQ(vector.size(), 1);
|
ASSERT_EQ(vector.size(), 1U);
|
||||||
ASSERT_EQ(chunked.size(), 1);
|
ASSERT_EQ(chunked.size(), 1U);
|
||||||
vector.acq_rel(&chunked);
|
vector.acq_rel(&chunked);
|
||||||
ASSERT_EQ(vector.size(), 1);
|
ASSERT_EQ(vector.size(), 1U);
|
||||||
ASSERT_EQ(chunked.size(), 1);
|
ASSERT_EQ(chunked.size(), 1U);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Clock, AcquireRelease) {
|
TEST(Clock, AcquireRelease) {
|
||||||
|
@ -53,19 +53,19 @@ TEST(Clock, AcquireRelease) {
|
||||||
vector1.tick();
|
vector1.tick();
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
vector1.release(&chunked);
|
vector1.release(&chunked);
|
||||||
ASSERT_EQ(chunked.size(), 101);
|
ASSERT_EQ(chunked.size(), 101U);
|
||||||
ThreadClock vector2(0);
|
ThreadClock vector2(0);
|
||||||
vector2.acquire(&chunked);
|
vector2.acquire(&chunked);
|
||||||
ASSERT_EQ(vector2.size(), 101);
|
ASSERT_EQ(vector2.size(), 101U);
|
||||||
ASSERT_EQ(vector2.get(0), 0);
|
ASSERT_EQ(vector2.get(0), 0U);
|
||||||
ASSERT_EQ(vector2.get(1), 0);
|
ASSERT_EQ(vector2.get(1), 0U);
|
||||||
ASSERT_EQ(vector2.get(99), 0);
|
ASSERT_EQ(vector2.get(99), 0U);
|
||||||
ASSERT_EQ(vector2.get(100), 1);
|
ASSERT_EQ(vector2.get(100), 1U);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(Clock, ManyThreads) {
|
TEST(Clock, ManyThreads) {
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
for (int i = 0; i < 100; i++) {
|
for (unsigned i = 0; i < 100; i++) {
|
||||||
ThreadClock vector(0);
|
ThreadClock vector(0);
|
||||||
vector.tick();
|
vector.tick();
|
||||||
vector.set(i, 1);
|
vector.set(i, 1);
|
||||||
|
@ -75,13 +75,13 @@ TEST(Clock, ManyThreads) {
|
||||||
ASSERT_EQ(i + 1, vector.size());
|
ASSERT_EQ(i + 1, vector.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 100; i++)
|
for (unsigned i = 0; i < 100; i++)
|
||||||
ASSERT_EQ(1U, chunked.get(i));
|
ASSERT_EQ(1U, chunked.get(i));
|
||||||
|
|
||||||
ThreadClock vector(1);
|
ThreadClock vector(1);
|
||||||
vector.acquire(&chunked);
|
vector.acquire(&chunked);
|
||||||
ASSERT_EQ(100, vector.size());
|
ASSERT_EQ(100U, vector.size());
|
||||||
for (int i = 0; i < 100; i++)
|
for (unsigned i = 0; i < 100; i++)
|
||||||
ASSERT_EQ(1U, vector.get(i));
|
ASSERT_EQ(1U, vector.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,28 +94,28 @@ TEST(Clock, DifferentSizes) {
|
||||||
{
|
{
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
vector1.release(&chunked);
|
vector1.release(&chunked);
|
||||||
ASSERT_EQ(chunked.size(), 11);
|
ASSERT_EQ(chunked.size(), 11U);
|
||||||
vector2.release(&chunked);
|
vector2.release(&chunked);
|
||||||
ASSERT_EQ(chunked.size(), 21);
|
ASSERT_EQ(chunked.size(), 21U);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
vector2.release(&chunked);
|
vector2.release(&chunked);
|
||||||
ASSERT_EQ(chunked.size(), 21);
|
ASSERT_EQ(chunked.size(), 21U);
|
||||||
vector1.release(&chunked);
|
vector1.release(&chunked);
|
||||||
ASSERT_EQ(chunked.size(), 21);
|
ASSERT_EQ(chunked.size(), 21U);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
vector1.release(&chunked);
|
vector1.release(&chunked);
|
||||||
vector2.acquire(&chunked);
|
vector2.acquire(&chunked);
|
||||||
ASSERT_EQ(vector2.size(), 21);
|
ASSERT_EQ(vector2.size(), 21U);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
SyncClock chunked;
|
SyncClock chunked;
|
||||||
vector2.release(&chunked);
|
vector2.release(&chunked);
|
||||||
vector1.acquire(&chunked);
|
vector1.acquire(&chunked);
|
||||||
ASSERT_EQ(vector1.size(), 21);
|
ASSERT_EQ(vector1.size(), 21U);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue