JsonSerializer: Add tests for sorting and non-unique keys
Bug: angleproject:5853
Change-Id: I85e64900a58a2706087b71769470bb33fb4e8522
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2824434
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/serializer/JsonSerializer_unittest.cpp b/src/libANGLE/serializer/JsonSerializer_unittest.cpp
index eba84b6..6d5601c 100644
--- a/src/libANGLE/serializer/JsonSerializer_unittest.cpp
+++ b/src/libANGLE/serializer/JsonSerializer_unittest.cpp
@@ -139,7 +139,6 @@
std::vector<int> v = {0, 1, -1};
js.addVectorAsHash("test2", v);
-
const std::string expect =
R"({
"context": {
@@ -149,19 +148,49 @@
check(expect);
}
+// Test unsorted input gets sorted
+TEST_F(JsonSerializerTest, SortValues1)
+{
+ js.addScalar("b", 1.0);
+ js.addScalar("a", 2.0);
+ const std::string expect =
+ R"({
+ "context": {
+ "a": 2.0,
+ "b": 1.0
+ }
+})";
+ check(expect);
+}
+
// Test writing one vector of short integer values
TEST_F(JsonSerializerTest, ShortVectorAsBlobValue)
{
std::vector<short> v = {0, 1, -1};
js.addVectorAsHash("test2", v);
-
const std::string expect =
R"({
"context": {
"test2": "SHA1:0BA7C0DE700CE0F8018D084B8CF447B150A9465D"
}
})";
+ check(expect);
+}
+
+// Test adding the same key twice
+TEST_F(JsonSerializerTest, KeyUsedTwice)
+{
+ js.addScalar("a", 1.0);
+ js.addScalar("a", 1.0);
+
+ const std::string expect =
+ R"({
+ "context": {
+ "a": 1.0,
+ "a": 1.0
+ }
+})";
check(expect);
}