|
|
@@ -86,6 +86,7 @@ void fifo_tests() {
|
|
|
fifo.push("first");
|
|
|
fifo.push("second");
|
|
|
fifo.push("third");
|
|
|
+ fifo.unblock();
|
|
|
|
|
|
// Iteration should return items in FIFO order
|
|
|
var tracker = fifo.get_tracker();
|
|
|
@@ -101,33 +102,6 @@ void fifo_tests() {
|
|
|
assert_cmpstr("third", CompareOperator.EQ, items[2]);
|
|
|
});
|
|
|
|
|
|
- Test.add_func("/invercargill/fifo/count_and_iteration", () => {
|
|
|
- var fifo = new Fifo<int>();
|
|
|
-
|
|
|
- // Empty fifo
|
|
|
- assert_cmpint(0, CompareOperator.EQ, fifo.count());
|
|
|
-
|
|
|
- // Add items
|
|
|
- fifo.push(1);
|
|
|
- fifo.push(2);
|
|
|
- fifo.push(3);
|
|
|
-
|
|
|
- assert_cmpint(3, CompareOperator.EQ, fifo.count());
|
|
|
-
|
|
|
- // Pop items
|
|
|
- fifo.pop();
|
|
|
- assert_cmpint(2, CompareOperator.EQ, fifo.count());
|
|
|
-
|
|
|
- fifo.pop();
|
|
|
- assert_cmpint(1, CompareOperator.EQ, fifo.count());
|
|
|
-
|
|
|
- fifo.pop();
|
|
|
- assert_cmpint(0, CompareOperator.EQ, fifo.count());
|
|
|
-
|
|
|
- // Unblock to prevent blocking on any future operations
|
|
|
- fifo.unblock();
|
|
|
- });
|
|
|
-
|
|
|
Test.add_func("/invercargill/fifo/blocking_behavior", () => {
|
|
|
var fifo = new Fifo<string>();
|
|
|
bool thread_started = false;
|
|
|
@@ -200,6 +174,7 @@ void fifo_tests() {
|
|
|
assert_null(item);
|
|
|
|
|
|
string popped;
|
|
|
+ fifo.unblock();
|
|
|
assert_false(fifo.try_pop(out popped));
|
|
|
assert_null(popped);
|
|
|
|