diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/gtest/type-builder.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/test/gtest/type-builder.cpp b/test/gtest/type-builder.cpp index 37e47c148..49221f667 100644 --- a/test/gtest/type-builder.cpp +++ b/test/gtest/type-builder.cpp @@ -3,6 +3,24 @@ using namespace wasm; +// Helper test fixture for managing the global type system state. +template<TypeSystem system> class TypeSystemTest : public ::testing::Test { + TypeSystem originalSystem; + +protected: + void SetUp() override { + originalSystem = getTypeSystem(); + setTypeSystem(system); + } + void TearDown() override { + destroyAllTypesForTestingPurposesOnly(); + setTypeSystem(originalSystem); + } +}; +using EquirecursiveTest = TypeSystemTest<TypeSystem::Equirecursive>; +using NominalTest = TypeSystemTest<TypeSystem::Nominal>; +using IsorecursiveTest = TypeSystemTest<TypeSystem::Isorecursive>; + TEST(TypeBuilder, Growth) { TypeBuilder builder; EXPECT_EQ(builder.size(), size_t{0}); @@ -10,11 +28,10 @@ TEST(TypeBuilder, Growth) { EXPECT_EQ(builder.size(), size_t{3}); } -TEST(TypeBuilder, Basics) { +TEST_F(EquirecursiveTest, Basics) { // (type $sig (func (param (ref $struct)) (result (ref $array) i32))) // (type $struct (struct (field (ref null $array) (mut rtt 0 $array)))) // (type $array (array (mut externref))) - TypeBuilder builder(3); ASSERT_EQ(builder.size(), size_t{3}); |