7 #include "flutter/testing/testing.h"
23 static_assert(
sizeof(Length2) == 2u);
27 for (
size_t i = 0; i < 12500; i++) {
28 auto view = buffer->Emplace(Length2{});
30 ASSERT_EQ(view.range,
Range(i *
sizeof(Length2), 2u));
38 static_assert(
sizeof(Length2) == 2);
39 struct alignas(16) Align16 {
42 static_assert(
alignof(Align16) == 16);
43 static_assert(
sizeof(Align16) == 16);
49 auto view = buffer->Emplace(Length2{});
51 ASSERT_EQ(view.range,
Range(0u, 2u));
55 auto view = buffer->Emplace(Align16{});
57 ASSERT_EQ(view.range.offset, 16u);
58 ASSERT_EQ(view.range.length, 16u);
61 auto view = buffer->Emplace(Length2{});
63 ASSERT_EQ(view.range,
Range(32u, 2u));
67 auto view = buffer->Emplace(Align16{});
69 ASSERT_EQ(view.range.offset, 48u);
70 ASSERT_EQ(view.range.length, 16u);
77 EXPECT_EQ(buffer->GetStateForTest().current_buffer, 0u);
78 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
79 EXPECT_EQ(buffer->GetStateForTest().total_buffer_count, 1u);
85 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
88 EXPECT_EQ(buffer->GetStateForTest().current_frame, 1u);
91 EXPECT_EQ(buffer->GetStateForTest().current_frame, 2u);
94 EXPECT_EQ(buffer->GetStateForTest().current_frame, 3u);
97 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
101 EmplacingLargerThanBlockSizeCreatesOneOffBufferCallback) {
106 auto buffer_view = buffer->Emplace(1024000 + 10, 0, [](uint8_t*
data) {});
108 EXPECT_EQ(buffer->GetStateForTest().current_buffer, 0u);
109 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
110 EXPECT_EQ(buffer->GetStateForTest().total_buffer_count, 1u);
118 auto buffer_view = buffer->Emplace(
nullptr, 1024000 + 10, 0);
120 EXPECT_EQ(buffer->GetStateForTest().current_buffer, 0u);
121 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
122 EXPECT_EQ(buffer->GetStateForTest().total_buffer_count, 1u);
129 auto buffer_view_a = buffer->Emplace(1020000, 0, [](uint8_t*
data) {});
130 auto buffer_view_b = buffer->Emplace(1020000, 0, [](uint8_t*
data) {});
132 EXPECT_EQ(buffer->GetStateForTest().current_buffer, 1u);
133 EXPECT_EQ(buffer->GetStateForTest().total_buffer_count, 2u);
134 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
137 for (
auto i = 0; i < 4; i++) {
141 EXPECT_EQ(buffer->GetStateForTest().current_buffer, 0u);
142 EXPECT_EQ(buffer->GetStateForTest().total_buffer_count, 2u);
143 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
147 for (
auto i = 0; i < 4; i++) {
151 EXPECT_EQ(buffer->GetStateForTest().current_buffer, 0u);
152 EXPECT_EQ(buffer->GetStateForTest().total_buffer_count, 1u);
153 EXPECT_EQ(buffer->GetStateForTest().current_frame, 0u);
159 BufferView view = buffer->Emplace(std::array<char, 21>());
162 view = buffer->Emplace(64, 16, [](uint8_t*) {});
181 return delegate_->CreateBuffer(desc);
185 return delegate_->CreateTexture(desc);
189 return delegate_->GetMaxTextureSizeSupported();
193 std::shared_ptr<Allocator> delegate_;
198 std::shared_ptr<FailingAllocator> allocator =
199 std::make_shared<FailingAllocator>(GetContext()->GetResourceAllocator());
204 EXPECT_EQ(view.buffer,
nullptr);
205 EXPECT_EQ(view.range.offset, 0u);
206 EXPECT_EQ(view.range.length, 0u);