SerialQueue/Map: Take the serial type as type paramater.
This is in preparation for follow-up CLs that will use typed integers
for the various serial types.
Bug: dawn:442
Change-Id: I5296546e96acd6ac9f7a0bfc46dc7eba40cb3cf5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28921
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/tests/unittests/SerialQueueTests.cpp b/src/tests/unittests/SerialQueueTests.cpp
index 2545c51..5161b81 100644
--- a/src/tests/unittests/SerialQueueTests.cpp
+++ b/src/tests/unittests/SerialQueueTests.cpp
@@ -15,8 +15,9 @@
#include <gtest/gtest.h>
#include "common/SerialQueue.h"
+#include "common/TypedInteger.h"
-using TestSerialQueue = SerialQueue<int>;
+using TestSerialQueue = SerialQueue<uint64_t, int>;
// A number of basic tests for SerialQueue that are difficult to split from one another
TEST(SerialQueue, BasicTest) {
@@ -154,3 +155,21 @@
queue.Enqueue({2}, 1);
EXPECT_EQ(queue.LastSerial(), 1u);
}
+
+// Test basic functionality with type integers
+TEST(SerialQueue, TypedInteger) {
+ using MySerial = TypedInteger<struct MySerialT, uint64_t>;
+ using MySerialQueue = SerialQueue<MySerial, int>;
+
+ MySerialQueue queue;
+ queue.Enqueue(1, MySerial(0));
+ queue.Enqueue(2, MySerial(0));
+
+ std::vector<int> expectedValues = {1, 2};
+ for (int value : queue.IterateAll()) {
+ EXPECT_EQ(expectedValues.front(), value);
+ ASSERT_FALSE(expectedValues.empty());
+ expectedValues.erase(expectedValues.begin());
+ }
+ ASSERT_TRUE(expectedValues.empty());
+}