/
mnt
/
hdd
/
osrm
/
build
/
flatbuffers-build
/
tests
/
/mnt/hdd/osrm/build/flatbuffers-build/tests
mkdir
upload
Name
Size
Mode
Actions
docker/
-
0755
rm
FlatBuffers.Benchmarks/
-
0755
rm
FlatBuffers.Test/
-
0755
rm
fuzzer/
-
0755
rm
include_test/
-
0755
rm
MyGame/
-
0755
rm
namespace_test/
-
0755
rm
prototest/
-
0755
rm
rust_usage_test/
-
0755
rm
union_vector/
-
0755
rm
arrays_test.bfbs
1064
0644
edit
dl
rm
arrays_test.fbs
317
0644
edit
dl
rm
arrays_test.golden
250
0644
edit
dl
rm
arrays_test.schema.json
1656
0644
edit
dl
rm
arrays_test_generated.h
13044
0644
edit
dl
rm
DartTest.sh
1279
0755
edit
dl
rm
generate_code.bat
3057
0644
edit
dl
rm
generate_code.sh
2265
0755
edit
dl
rm
GoTest.sh
2735
0755
edit
dl
rm
go_test.go
55666
0644
edit
dl
rm
JavaScriptTest.js
14324
0644
edit
dl
rm
JavaScriptTest.sh
750
0755
edit
dl
rm
JavaScriptUnionVectorTest.js
1706
0644
edit
dl
rm
JavaTest.bat
987
0644
edit
dl
rm
javatest.bin
512
0644
edit
dl
rm
JavaTest.java
19159
0644
edit
dl
rm
JavaTest.sh
1249
0755
edit
dl
rm
KotlinTest.kt
16450
0644
edit
dl
rm
KotlinTest.sh
1402
0755
edit
dl
rm
lobstertest.lobster
4736
0644
edit
dl
rm
LuaTest.bat
145
0644
edit
dl
rm
luatest.lua
8235
0644
edit
dl
rm
LuaTest.sh
747
0755
edit
dl
rm
monsterdata_extra.json
420
0644
edit
dl
rm
monsterdata_python_wire.mon
344
0644
edit
dl
rm
monsterdata_test.golden
1102
0644
edit
dl
rm
monsterdata_test.json
1225
0644
edit
dl
rm
monsterdata_test.mon
440
0644
edit
dl
rm
monster_extra.fbs
484
0644
edit
dl
rm
monster_extra_generated.h
14039
0644
edit
dl
rm
monster_test.bfbs
11792
0644
edit
dl
rm
monster_test.fbs
4255
0644
edit
dl
rm
monster_test.grpc.fb.cc
9113
0644
edit
dl
rm
monster_test.grpc.fb.h
25751
0644
edit
dl
rm
monster_test.schema.json
10148
0644
edit
dl
rm
monster_test_generated.h
136302
0644
edit
dl
rm
monster_test_generated.js
87299
0644
edit
dl
rm
monster_test_generated.lobster
26849
0644
edit
dl
rm
monster_test_generated.rs
63840
0644
edit
dl
rm
monster_test_generated.ts
79087
0644
edit
dl
rm
monster_test_my_game.example2_generated.dart
1520
0644
edit
dl
rm
monster_test_my_game.example_generated.dart
47861
0644
edit
dl
rm
monster_test_my_game_generated.dart
1659
0644
edit
dl
rm
native_type_test.fbs
227
0644
edit
dl
rm
native_type_test_generated.h
8374
0644
edit
dl
rm
native_type_test_impl.cpp
342
0644
edit
dl
rm
native_type_test_impl.h
493
0644
edit
dl
rm
phpTest.php
24390
0644
edit
dl
rm
phpUnionVectorTest.php
3906
0644
edit
dl
rm
phpUnionVectorTest.sh
137
0755
edit
dl
rm
PythonTest.sh
2785
0755
edit
dl
rm
py_test.py
66237
0644
edit
dl
rm
RustTest.bat
874
0644
edit
dl
rm
RustTest.sh
1298
0755
edit
dl
rm
test.cpp
124261
0644
edit
dl
rm
TestAll.sh
985
0644
edit
dl
rm
test_assert.cpp
2043
0644
edit
dl
rm
test_assert.h
2580
0644
edit
dl
rm
test_builder.cpp
5500
0644
edit
dl
rm
test_builder.h
10395
0644
edit
dl
rm
TypeScriptTest.sh
1387
0755
edit
dl
rm
unicode_test.json
503
0644
edit
dl
rm
Edit:
/mnt/hdd/osrm/build/flatbuffers-build/tests/test_builder.cpp
(5500B)
#include "flatbuffers/stl_emulation.h" #include "monster_test_generated.h" #include "test_builder.h" using namespace MyGame::Example; const std::string m1_name = "Cyberdemon"; const Color m1_color = Color_Red; const std::string m2_name = "Imp"; const Color m2_color = Color_Green; struct OwnedAllocator : public flatbuffers::DefaultAllocator {}; class TestHeapBuilder : public flatbuffers::FlatBufferBuilder { private: // clang-format off #if !defined(FLATBUFFERS_CPP98_STL) TestHeapBuilder(const TestHeapBuilder &); TestHeapBuilder &operator=(const TestHeapBuilder &); #endif // !defined(FLATBUFFERS_CPP98_STL) // clang-format on public: TestHeapBuilder() : flatbuffers::FlatBufferBuilder(2048, new OwnedAllocator(), true) {} // clang-format off #if !defined(FLATBUFFERS_CPP98_STL) // clang-format on TestHeapBuilder(TestHeapBuilder &&other) : FlatBufferBuilder(std::move(other)) { } TestHeapBuilder &operator=(TestHeapBuilder &&other) { FlatBufferBuilder::operator=(std::move(other)); return *this; } // clang-format off #endif // !defined(FLATBUFFERS_CPP98_STL) // clang-format on }; // This class simulates flatbuffers::grpc::detail::SliceAllocatorMember struct AllocatorMember { flatbuffers::DefaultAllocator member_allocator_; }; struct GrpcLikeMessageBuilder : private AllocatorMember, public flatbuffers::FlatBufferBuilder { private: GrpcLikeMessageBuilder(const GrpcLikeMessageBuilder &); GrpcLikeMessageBuilder &operator=(const GrpcLikeMessageBuilder &); public: GrpcLikeMessageBuilder() : flatbuffers::FlatBufferBuilder(1024, &member_allocator_, false) {} GrpcLikeMessageBuilder(GrpcLikeMessageBuilder &&other) : FlatBufferBuilder(1024, &member_allocator_, false) { // Default construct and swap idiom. Swap(other); } // clang-format off #if !defined(FLATBUFFERS_CPP98_STL) // clang-format on GrpcLikeMessageBuilder &operator=(GrpcLikeMessageBuilder &&other) { // Construct temporary and swap idiom GrpcLikeMessageBuilder temp(std::move(other)); Swap(temp); return *this; } // clang-format off #endif // !defined(FLATBUFFERS_CPP98_STL) // clang-format on void Swap(GrpcLikeMessageBuilder &other) { // No need to swap member_allocator_ because it's stateless. FlatBufferBuilder::Swap(other); // After swapping the FlatBufferBuilder, we swap back the allocator, which restores // the original allocator back in place. This is necessary because MessageBuilder's // allocator is its own member (SliceAllocatorMember). The allocator passed to // FlatBufferBuilder::vector_downward must point to this member. buf_.swap_allocator(other.buf_); } }; flatbuffers::Offset<Monster> populate1(flatbuffers::FlatBufferBuilder &builder) { auto name_offset = builder.CreateString(m1_name); return CreateMonster(builder, nullptr, 0, 0, name_offset, 0, m1_color); } flatbuffers::Offset<Monster> populate2(flatbuffers::FlatBufferBuilder &builder) { auto name_offset = builder.CreateString(m2_name); return CreateMonster(builder, nullptr, 0, 0, name_offset, 0, m2_color); } uint8_t *release_raw_base(flatbuffers::FlatBufferBuilder &fbb, size_t &size, size_t &offset) { return fbb.ReleaseRaw(size, offset); } void free_raw(flatbuffers::grpc::MessageBuilder &, uint8_t *) { // release_raw_base calls FlatBufferBuilder::ReleaseRaw on the argument MessageBuilder. // It's semantically wrong as MessageBuilder has its own ReleaseRaw member function that // takes three arguments. In such cases though, ~MessageBuilder() invokes // ~SliceAllocator() that takes care of deleting memory as it calls grpc_slice_unref. // Obviously, this behavior is very surprising as the pointer returned by // FlatBufferBuilder::ReleaseRaw is not valid as soon as MessageBuilder goes out of scope. // This problem does not occur with FlatBufferBuilder. } void free_raw(flatbuffers::FlatBufferBuilder &, uint8_t *buf) { flatbuffers::DefaultAllocator().deallocate(buf, 0); } bool verify(const flatbuffers::DetachedBuffer &buf, const std::string &expected_name, Color color) { const Monster *monster = flatbuffers::GetRoot<Monster>(buf.data()); return (monster->name()->str() == expected_name) && (monster->color() == color); } bool verify(const uint8_t *buf, size_t offset, const std::string &expected_name, Color color) { const Monster *monster = flatbuffers::GetRoot<Monster>(buf+offset); return (monster->name()->str() == expected_name) && (monster->color() == color); } bool release_n_verify(flatbuffers::FlatBufferBuilder &fbb, const std::string &expected_name, Color color) { flatbuffers::DetachedBuffer buf = fbb.Release(); return verify(buf, expected_name, color); } void FlatBufferBuilderTest() { using flatbuffers::FlatBufferBuilder; BuilderTests<FlatBufferBuilder>::all_tests(); BuilderTests<TestHeapBuilder>::all_tests(); BuilderTests<GrpcLikeMessageBuilder>::all_tests(); BuilderReuseTestSelector tests[4] = { REUSABLE_AFTER_RELEASE, REUSABLE_AFTER_RELEASE_RAW, REUSABLE_AFTER_RELEASE_AND_MOVE_ASSIGN, REUSABLE_AFTER_RELEASE_RAW_AND_MOVE_ASSIGN }; BuilderReuseTests<FlatBufferBuilder, FlatBufferBuilder>::run_tests(TestSelector(tests, tests+4)); BuilderReuseTests<TestHeapBuilder, TestHeapBuilder>::run_tests(TestSelector(tests, tests+4)); BuilderReuseTests<GrpcLikeMessageBuilder, GrpcLikeMessageBuilder>::run_tests(TestSelector(tests, tests+4)); }
Save
cmd:
run