summaryrefslogtreecommitdiff
path: root/test/gtest
diff options
context:
space:
mode:
Diffstat (limited to 'test/gtest')
-rw-r--r--test/gtest/type-builder.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/gtest/type-builder.cpp b/test/gtest/type-builder.cpp
index 2a29d11b0..4ae9e0e63 100644
--- a/test/gtest/type-builder.cpp
+++ b/test/gtest/type-builder.cpp
@@ -457,3 +457,30 @@ TEST_F(IsorecursiveTest, CanonicalizeTypesBeforeSubtyping) {
auto result = builder.build();
EXPECT_TRUE(result);
}
+
+static void testCanonicalizeBasicTypes() {
+ TypeBuilder builder(5);
+
+ Type externref = builder.getTempRefType(builder[0], Nullable);
+ Type externrefs = builder.getTempTupleType({externref, externref});
+
+ builder[0] = HeapType::ext;
+ builder[1] = Struct({Field(externref, Immutable)});
+ builder[2] = Struct({Field(Type::externref, Immutable)});
+ builder[3] = Signature(externrefs, Type::none);
+ builder[4] = Signature({Type::externref, Type::externref}, Type::none);
+
+ auto result = builder.build();
+ ASSERT_TRUE(result);
+ auto built = *result;
+
+ EXPECT_EQ(built[1], built[2]);
+ EXPECT_EQ(built[3], built[4]);
+}
+
+TEST_F(EquirecursiveTest, CanonicalizeBasicTypes) {
+ testCanonicalizeBasicTypes();
+}
+TEST_F(IsorecursiveTest, CanonicalizeBasicTypes) {
+ testCanonicalizeBasicTypes();
+}