diff options
Diffstat (limited to 'test/gtest')
-rw-r--r-- | test/gtest/type-builder.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/gtest/type-builder.cpp b/test/gtest/type-builder.cpp index 78c8037a4..9cbd04298 100644 --- a/test/gtest/type-builder.cpp +++ b/test/gtest/type-builder.cpp @@ -242,3 +242,30 @@ TEST_F(IsorecursiveTest, ForwardReferencedChild) { EXPECT_EQ(error->reason, TypeBuilder::ErrorReason::ForwardChildReference); EXPECT_EQ(error->index, 1u); } + +TEST_F(IsorecursiveTest, RecGroupIndices) { + TypeBuilder builder(5); + + builder.createRecGroup(0, 2); + builder[0] = Struct{}; + builder[1] = Struct{}; + + builder.createRecGroup(2, 3); + builder[2] = Struct{}; + builder[3] = Struct{}; + builder[4] = Struct{}; + + auto result = builder.build(); + ASSERT_TRUE(result); + auto built = *result; + + EXPECT_EQ(built[0].getRecGroup(), built[1].getRecGroup()); + EXPECT_EQ(built[0].getRecGroupIndex(), 0u); + EXPECT_EQ(built[1].getRecGroupIndex(), 1u); + + EXPECT_EQ(built[2].getRecGroup(), built[3].getRecGroup()); + EXPECT_EQ(built[3].getRecGroup(), built[4].getRecGroup()); + EXPECT_EQ(built[2].getRecGroupIndex(), 0u); + EXPECT_EQ(built[3].getRecGroupIndex(), 1u); + EXPECT_EQ(built[4].getRecGroupIndex(), 2u); +} |