mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-29 04:50:00 +00:00
Disable armeabi builds for Android and re-enable CI builds. (#4970)
armeabi support was removed from the Android NDK so we should no longer build it. Since this fixes the Android build failures this commit also re-enables Travis Android builds. While re-enabling Android builds, some recent changes broke C++98 support so this fixes those issues as well which include: - Conditionally compiling use of move constructors, operators and std::move. - Changing sample to use flatbuffers::unique_ptr rather than std::unique_ptr. Finally, added the special "default_ptr_type" value for the "cpp_ptr_type" attribute. This expands to the value passed to the "--cpp-ptr-type" argument of flatc.
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
d840856093
commit
569492e890
@@ -34,6 +34,9 @@ bool release_n_verify(flatbuffers::grpc::MessageBuilder &mbb, const std::string
|
||||
|
||||
template <class Builder>
|
||||
struct BuilderTests {
|
||||
// clang-format off
|
||||
#if !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
static void empty_builder_movector_test() {
|
||||
Builder b1;
|
||||
size_t b1_size = b1.GetSize();
|
||||
@@ -97,38 +100,6 @@ struct BuilderTests {
|
||||
TEST_EQ_FUNC(b1.GetSize(), 0);
|
||||
}
|
||||
|
||||
static void builder_swap_before_finish_test() {
|
||||
Builder b1;
|
||||
auto root_offset1 = populate1(b1);
|
||||
auto size1 = b1.GetSize();
|
||||
Builder b2;
|
||||
auto root_offset2 = populate2(b2);
|
||||
auto size2 = b2.GetSize();
|
||||
b1.Swap(b2);
|
||||
b1.Finish(root_offset2);
|
||||
b2.Finish(root_offset1);
|
||||
TEST_EQ_FUNC(b1.GetSize() > size2, true);
|
||||
TEST_EQ_FUNC(b2.GetSize() > size1, true);
|
||||
TEST_ASSERT_FUNC(release_n_verify(b1, m2_name, m2_color));
|
||||
TEST_ASSERT_FUNC(release_n_verify(b2, m1_name, m1_color));
|
||||
}
|
||||
|
||||
static void builder_swap_after_finish_test() {
|
||||
Builder b1;
|
||||
auto root_offset1 = populate1(b1);
|
||||
b1.Finish(root_offset1);
|
||||
auto size1 = b1.GetSize();
|
||||
Builder b2;
|
||||
auto root_offset2 = populate2(b2);
|
||||
b2.Finish(root_offset2);
|
||||
auto size2 = b2.GetSize();
|
||||
b1.Swap(b2);
|
||||
TEST_EQ_FUNC(b1.GetSize(), size2);
|
||||
TEST_EQ_FUNC(b2.GetSize(), size1);
|
||||
TEST_ASSERT_FUNC(release_n_verify(b1, m2_name, m2_color));
|
||||
TEST_ASSERT_FUNC(release_n_verify(b2, m1_name, m1_color));
|
||||
}
|
||||
|
||||
static void builder_move_assign_after_release_test() {
|
||||
Builder b1;
|
||||
auto root_offset1 = populate1(b1);
|
||||
@@ -166,18 +137,59 @@ struct BuilderTests {
|
||||
TEST_ASSERT_FUNC(release_n_verify(b1, m2_name, m2_color));
|
||||
TEST_EQ_FUNC(b2.GetSize(), 0);
|
||||
}
|
||||
// clang-format off
|
||||
#endif // !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
|
||||
static void builder_swap_before_finish_test() {
|
||||
Builder b1;
|
||||
auto root_offset1 = populate1(b1);
|
||||
auto size1 = b1.GetSize();
|
||||
Builder b2;
|
||||
auto root_offset2 = populate2(b2);
|
||||
auto size2 = b2.GetSize();
|
||||
b1.Swap(b2);
|
||||
b1.Finish(root_offset2);
|
||||
b2.Finish(root_offset1);
|
||||
TEST_EQ_FUNC(b1.GetSize() > size2, true);
|
||||
TEST_EQ_FUNC(b2.GetSize() > size1, true);
|
||||
TEST_ASSERT_FUNC(release_n_verify(b1, m2_name, m2_color));
|
||||
TEST_ASSERT_FUNC(release_n_verify(b2, m1_name, m1_color));
|
||||
}
|
||||
|
||||
static void builder_swap_after_finish_test() {
|
||||
Builder b1;
|
||||
auto root_offset1 = populate1(b1);
|
||||
b1.Finish(root_offset1);
|
||||
auto size1 = b1.GetSize();
|
||||
Builder b2;
|
||||
auto root_offset2 = populate2(b2);
|
||||
b2.Finish(root_offset2);
|
||||
auto size2 = b2.GetSize();
|
||||
b1.Swap(b2);
|
||||
TEST_EQ_FUNC(b1.GetSize(), size2);
|
||||
TEST_EQ_FUNC(b2.GetSize(), size1);
|
||||
TEST_ASSERT_FUNC(release_n_verify(b1, m2_name, m2_color));
|
||||
TEST_ASSERT_FUNC(release_n_verify(b2, m1_name, m1_color));
|
||||
}
|
||||
|
||||
static void all_tests() {
|
||||
// clang-format off
|
||||
#if !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
empty_builder_movector_test();
|
||||
nonempty_builder_movector_test();
|
||||
builder_movector_before_finish_test();
|
||||
builder_movector_after_finish_test();
|
||||
builder_move_assign_before_finish_test();
|
||||
builder_move_assign_after_finish_test();
|
||||
builder_swap_before_finish_test();
|
||||
builder_swap_after_finish_test();
|
||||
builder_move_assign_after_release_test();
|
||||
builder_move_assign_after_releaseraw_test();
|
||||
// clang-format off
|
||||
#endif // !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
builder_swap_before_finish_test();
|
||||
builder_swap_after_finish_test();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -225,6 +237,9 @@ struct BuilderReuseTests {
|
||||
}
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
#if !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
static void builder_reusable_after_release_and_move_assign_test(TestSelector selector) {
|
||||
if (!selector.count(REUSABLE_AFTER_RELEASE_AND_MOVE_ASSIGN)) {
|
||||
return;
|
||||
@@ -261,12 +276,21 @@ struct BuilderReuseTests {
|
||||
TEST_EQ_FUNC(b2.GetSize(), 0);
|
||||
}
|
||||
}
|
||||
// clang-format off
|
||||
#endif // !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
|
||||
static void run_tests(TestSelector selector) {
|
||||
builder_reusable_after_release_test(selector);
|
||||
builder_reusable_after_releaseraw_test(selector);
|
||||
// clang-format off
|
||||
#if !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
builder_reusable_after_release_and_move_assign_test(selector);
|
||||
builder_reusable_after_releaseraw_and_move_assign_test(selector);
|
||||
// clang-format off
|
||||
#endif // !defined(FLATBUFFERS_CPP98_STL)
|
||||
// clang-format on
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user