summaryrefslogtreecommitdiff
path: root/src/flatbuffer_builder_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/flatbuffer_builder_test.cc')
-rw-r--r--src/flatbuffer_builder_test.cc77
1 files changed, 0 insertions, 77 deletions
diff --git a/src/flatbuffer_builder_test.cc b/src/flatbuffer_builder_test.cc
deleted file mode 100644
index b0c04d118..000000000
--- a/src/flatbuffer_builder_test.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2018 the Deno authors. All rights reserved. MIT license.
-
-#include <stdint.h>
-
-#include "testing/gtest/include/gtest/gtest.h"
-
-#include "deno.h"
-#include "flatbuffer_builder.h"
-
-template <typename T, std::size_t N>
-constexpr std::size_t countof(T const (&)[N]) noexcept {
- return N;
-}
-
-TEST(FlatBufferBuilderTest, ExportBuf) {
- const uint32_t nums[] = {1, 2, 3};
- const char str[] = "hello mars";
- deno_buf nums_buf;
- deno_buf str_buf;
- // Use scope so builder gets destroyed after building buffers.
- {
- deno::FlatBufferBuilder builder;
- // Build first flatbuffer.
- auto nums_fb = builder.CreateVector(nums, countof(nums));
- builder.Finish(nums_fb);
- nums_buf = builder.ExportBuf();
- // Reset builder.
- builder.Reset();
- // Build second flatbuffer using the same builder.
- auto str_fb = builder.CreateString(str);
- builder.Finish(str_fb);
- str_buf = builder.ExportBuf();
- }
- // Allocations should be different.
- EXPECT_NE(nums_buf.alloc_ptr, str_buf.alloc_ptr);
- // Logical buffer data should be contained inside their allocations.
- EXPECT_GE(nums_buf.data_ptr, nums_buf.alloc_ptr);
- EXPECT_LE(nums_buf.data_ptr + nums_buf.data_len,
- nums_buf.alloc_ptr + nums_buf.alloc_len);
- EXPECT_GE(str_buf.data_ptr, str_buf.alloc_ptr);
- EXPECT_LE(str_buf.data_ptr + str_buf.data_len,
- str_buf.alloc_ptr + str_buf.alloc_len);
- // Since there is no way to parse these buffers without generating code,
- // just check whether the data is contained in the raw content.
- // Both the numbers vector and the string start at offset 8 in the flatbuffer.
- auto nums_data = reinterpret_cast<uint32_t*>(nums_buf.data_ptr + 8);
- for (size_t i = 0; i < countof(nums); i++) {
- EXPECT_EQ(nums_data[i], nums[i]);
- }
- auto str_data = str_buf.data_ptr + 8;
- for (size_t i = 0; i < countof(str); i++) {
- EXPECT_EQ(str_data[i], str[i]);
- }
-}
-
-TEST(FlatBufferBuilderTest, CanGrowBuffer) {
- static const size_t kSmallInitialSize = 32;
- static const char zeroes[1024] = {0};
- {
- // Create buffer with small initial size.
- deno::FlatBufferBuilder builder(kSmallInitialSize);
- // Write 1 byte and export buffer.
- builder.Finish(builder.CreateVector(zeroes, 1));
- auto buf = builder.ExportBuf();
- // Exported buffer should have initial size.
- EXPECT_EQ(buf.alloc_len, kSmallInitialSize);
- }
- {
- // Create buffer with small initial size.
- deno::FlatBufferBuilder builder(kSmallInitialSize);
- // Write 1024 bytes and export buffer.
- builder.Finish(builder.CreateVector(zeroes, countof(zeroes)));
- auto buf = builder.ExportBuf();
- // Exported buffer have grown.
- EXPECT_GT(buf.alloc_len, kSmallInitialSize);
- }
-}