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>
This commit is contained in:
Corentin Wallez
2020-09-28 12:28:13 +00:00
committed by Commit Bot service account
parent ed2b465f86
commit 145f115c54
20 changed files with 121 additions and 81 deletions

View File

@@ -15,8 +15,9 @@
#include <gtest/gtest.h>
#include "common/SerialMap.h"
#include "common/TypedInteger.h"
using TestSerialMap = SerialMap<int>;
using TestSerialMap = SerialMap<uint64_t, int>;
// A number of basic tests for SerialMap that are difficult to split from one another
TEST(SerialMap, BasicTest) {
@@ -162,3 +163,21 @@ TEST(SerialMap, FirstSerial) {
map.Enqueue(vector1, 6);
EXPECT_EQ(map.FirstSerial(), 6u);
}
// Test basic functionality with type integers
TEST(SerialMap, TypedInteger) {
using MySerial = TypedInteger<struct MySerialT, uint64_t>;
using MySerialMap = SerialMap<MySerial, int>;
MySerialMap map;
map.Enqueue(1, MySerial(0));
map.Enqueue(2, MySerial(0));
std::vector<int> expectedValues = {1, 2};
for (int value : map.IterateAll()) {
EXPECT_EQ(expectedValues.front(), value);
ASSERT_FALSE(expectedValues.empty());
expectedValues.erase(expectedValues.begin());
}
ASSERT_TRUE(expectedValues.empty());
}

View File

@@ -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 @@ TEST(SerialQueue, LastSerial) {
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());
}