Skip to content

Commit

Permalink
ase/atomics.cc: add atomic_valuestack_test()
Browse files Browse the repository at this point in the history
Signed-off-by: Tim Janik <[email protected]>
  • Loading branch information
tim-janik committed Feb 8, 2024
1 parent f9bb7ac commit 83dabce
Showing 1 changed file with 27 additions and 2 deletions.
29 changes: 27 additions & 2 deletions ase/atomics.cc
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ atomic_next_ptrref (AisNode *node)
return node->next;
}

TEST_INTEGRITY (atomic_stack_test);
TEST_INTEGRITY (atomic_mpmcstack_test);
static void
atomic_stack_test()
atomic_mpmcstack_test()
{
bool was_empty;
AtomicIntrusiveStack<AisNode> stack;
Expand Down Expand Up @@ -158,4 +158,29 @@ mpmc_stack_test()
assert (number_totals == COUNTING_THREADS * (NUMBER_NODES_PER_THREAD * (NUMBER_NODES_PER_THREAD + 1ull)) / 2);
}

// == AtomicStack<> test ==
TEST_INTEGRITY (atomic_valuestack_test);
static void
atomic_valuestack_test()
{
AtomicStack<std::string> sstack;
TASSERT (sstack.empty());
bool was_empty, had;
std::string s = "foo";
was_empty = sstack.push (s);
TASSERT (was_empty);
TASSERT (!sstack.empty());
was_empty = sstack.push (std::string ("bar"));
TASSERT (!was_empty);
TASSERT (!sstack.empty());
had = sstack.pop (s);
TASSERT (had && s == "bar");
TASSERT (!sstack.empty());
had = sstack.pop (s);
TASSERT (had && s == "foo");
had = sstack.pop (s);
TASSERT (!had);
TASSERT (sstack.empty());
}

} // Anon

0 comments on commit 83dabce

Please sign in to comment.