| 118 | }; |
| 119 | |
| 120 | TEST(BufferTest, CalcStructSize) |
| 121 | { |
| 122 | { |
| 123 | dmBuffer::StreamDeclaration streams[] = { |
| 124 | {dmHashString64("dummy1"), dmBuffer::VALUE_TYPE_UINT8, 3}, |
| 125 | {dmHashString64("dummy2"), dmBuffer::VALUE_TYPE_UINT8, 1}, |
| 126 | {dmHashString64("dummy3"), dmBuffer::VALUE_TYPE_UINT64,1} |
| 127 | }; |
| 128 | uint32_t expected_offsets[DM_ARRAY_SIZE(streams)] = { 0, 3, 8 }; |
| 129 | uint32_t offsets[DM_ARRAY_SIZE(streams)]; |
| 130 | uint32_t size; |
| 131 | dmBuffer::Result result = dmBuffer::CalcStructSize(DM_ARRAY_SIZE(streams), streams, &size, offsets); |
| 132 | ASSERT_EQ(dmBuffer::RESULT_OK, result); |
| 133 | ASSERT_EQ(16, size); |
| 134 | ASSERT_ARRAY_EQ(expected_offsets, offsets); |
| 135 | } |
| 136 | |
| 137 | // From ticket #7599 |
| 138 | { |
| 139 | dmBuffer::StreamDeclaration streams[] = { |
| 140 | {dmHashString64("dummy1"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 141 | {dmHashString64("dummy2"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 142 | {dmHashString64("dummy3"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 143 | {dmHashString64("dummy4"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 144 | }; |
| 145 | uint32_t expected_offsets[DM_ARRAY_SIZE(streams)] = { 0, 2, 4, 6 }; |
| 146 | uint32_t offsets[DM_ARRAY_SIZE(streams)]; |
| 147 | uint32_t size; |
| 148 | dmBuffer::Result result = dmBuffer::CalcStructSize(DM_ARRAY_SIZE(streams), streams, &size, offsets); |
| 149 | ASSERT_EQ(dmBuffer::RESULT_OK, result); |
| 150 | ASSERT_EQ(8, size); |
| 151 | ASSERT_ARRAY_EQ(expected_offsets, offsets); |
| 152 | } |
| 153 | { |
| 154 | dmBuffer::StreamDeclaration streams[] = { |
| 155 | {dmHashString64("dummy1"), dmBuffer::VALUE_TYPE_FLOAT32, 1}, |
| 156 | {dmHashString64("dummy2"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 157 | {dmHashString64("dummy3"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 158 | {dmHashString64("dummy4"), dmBuffer::VALUE_TYPE_INT16, 1}, |
| 159 | }; |
| 160 | uint32_t expected_offsets[DM_ARRAY_SIZE(streams)] = { 0, 4, 6, 8 }; |
| 161 | uint32_t offsets[DM_ARRAY_SIZE(streams)]; |
| 162 | uint32_t size; |
| 163 | dmBuffer::Result result = dmBuffer::CalcStructSize(DM_ARRAY_SIZE(streams), streams, &size, offsets); |
| 164 | ASSERT_EQ(dmBuffer::RESULT_OK, result); |
| 165 | ASSERT_EQ(12, size); |
| 166 | ASSERT_ARRAY_EQ(expected_offsets, offsets); |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | |
| 171 | #define CLEAR_OUT_VARS()\ |
nothing calls this directly
no test coverage detected