summaryrefslogtreecommitdiff
path: root/test/gtest
diff options
context:
space:
mode:
Diffstat (limited to 'test/gtest')
-rw-r--r--test/gtest/type-builder.cpp46
1 files changed, 42 insertions, 4 deletions
diff --git a/test/gtest/type-builder.cpp b/test/gtest/type-builder.cpp
index d26b8bb97..af6613bd2 100644
--- a/test/gtest/type-builder.cpp
+++ b/test/gtest/type-builder.cpp
@@ -103,19 +103,57 @@ TEST_F(TypeTest, IndexedTypePrinter) {
std::stringstream stream;
stream << print(built[0]);
- EXPECT_EQ(stream.str(), "(struct (field (ref null $array1)))");
+ EXPECT_EQ(stream.str(),
+ "(type $struct0 (struct (field (ref null $array1))))");
stream.str("");
stream << print(built[1]);
- EXPECT_EQ(stream.str(), "(struct (field (ref null $struct0)))");
+ EXPECT_EQ(stream.str(),
+ "(type $struct1 (struct (field (ref null $struct0))))");
stream.str("");
stream << print(built[2]);
- EXPECT_EQ(stream.str(), "(array (ref null $struct1))");
+ EXPECT_EQ(stream.str(), "(type $array0 (array (ref null $struct1)))");
stream.str("");
stream << print(built[3]);
- EXPECT_EQ(stream.str(), "(array (ref null $array0))");
+ EXPECT_EQ(stream.str(), "(type $array1 (array (ref null $array0)))");
+}
+
+TEST_F(TypeTest, ModuleTypePrinter) {
+ TypeBuilder builder(2);
+ builder.createRecGroup(0, 2);
+ builder[0] = Struct({Field(Type::i32, Immutable)});
+ builder[1] = Struct({Field(Type::i32, Immutable)});
+
+ auto result = builder.build();
+ ASSERT_TRUE(result);
+ auto built = *result;
+
+ Module module;
+ module.typeNames[built[0]] = {"A", {}};
+
+ ModuleTypeNameGenerator printDefault(module);
+
+ std::stringstream stream;
+ stream << printDefault(built[0]);
+ EXPECT_EQ(stream.str(), "(type $A (struct (field i32)))");
+
+ stream.str("");
+ stream << printDefault(built[1]);
+ EXPECT_EQ(stream.str(), "(type $struct.0 (struct (field i32)))");
+
+ using IndexedFallback = IndexedTypeNameGenerator<DefaultTypeNameGenerator>;
+ IndexedTypeNameGenerator fallback(built);
+ ModuleTypeNameGenerator<IndexedFallback> printIndexed(module, fallback);
+
+ stream.str("");
+ stream << printIndexed(built[0]);
+ EXPECT_EQ(stream.str(), "(type $A (struct (field i32)))");
+
+ stream.str("");
+ stream << printIndexed(built[1]);
+ EXPECT_EQ(stream.str(), "(type $1 (struct (field i32)))");
}
TEST_F(IsorecursiveTest, Basics) {