diff options
-rw-r--r-- | system/osi/Android.bp | 1 | ||||
-rw-r--r-- | system/osi/test/array_test.cc | 25 | ||||
-rw-r--r-- | system/packet/Android.bp | 1 | ||||
-rw-r--r-- | system/packet/tests/avrcp/get_capabilities_packet_test.cc | 17 | ||||
-rw-r--r-- | system/packet/tests/avrcp/get_folder_items_packet_test.cc | 27 | ||||
-rw-r--r-- | system/packet/tests/avrcp/register_notification_packet_test.cc | 9 | ||||
-rw-r--r-- | system/packet/tests/base/iterator_test.cc | 32 | ||||
-rw-r--r-- | system/packet/tests/base/packet_test.cc | 10 |
8 files changed, 99 insertions, 23 deletions
diff --git a/system/osi/Android.bp b/system/osi/Android.bp index b29ea439a6..e33701d3f0 100644 --- a/system/osi/Android.bp +++ b/system/osi/Android.bp @@ -134,6 +134,7 @@ cc_test { shared_libs: [ "android.hardware.bluetooth@1.0", "android.hardware.bluetooth@1.1", + "libbase", "liblog", "libprotobuf-cpp-lite", "libcutils", diff --git a/system/osi/test/array_test.cc b/system/osi/test/array_test.cc index bf5d51b6e1..5d97602c30 100644 --- a/system/osi/test/array_test.cc +++ b/system/osi/test/array_test.cc @@ -1,11 +1,14 @@ +#include "osi/include/array.h" + +#include <android-base/silent_death_test.h> #include <gtest/gtest.h> #include "AllocationTestHarness.h" -#include "osi/include/array.h" - class ArrayTest : public AllocationTestHarness {}; +using ArrayDeathTest = ArrayTest; + TEST_F(ArrayTest, test_new_free_simple) { array_t* array = array_new(4); ASSERT_TRUE(array != NULL); @@ -14,17 +17,27 @@ TEST_F(ArrayTest, test_new_free_simple) { TEST_F(ArrayTest, test_free_null) { array_free(NULL); } -TEST_F(ArrayTest, test_invalid_ptr) { +TEST_F(ArrayDeathTest, test_invalid_ptr) { ::testing::FLAGS_gtest_death_test_style = "threadsafe"; array_t* array = array_new(4); - EXPECT_DEATH(array_ptr(array), ""); + { + // this will silent SIGABRT sent in EXPECT_DEATH below + ScopedSilentDeath _silentDeath; + + ASSERT_DEATH(array_ptr(array), ""); + } array_free(array); } -TEST_F(ArrayTest, test_invalid_at) { +TEST_F(ArrayDeathTest, test_invalid_at) { ::testing::FLAGS_gtest_death_test_style = "threadsafe"; array_t* array = array_new(4); - EXPECT_DEATH(array_at(array, 1), ""); + { + // this will silent SIGABRT sent in EXPECT_DEATH below + ScopedSilentDeath _silentDeath; + + ASSERT_DEATH(array_at(array, 1), ""); + } array_free(array); } diff --git a/system/packet/Android.bp b/system/packet/Android.bp index 420ee4f2e5..4d8cb9277c 100644 --- a/system/packet/Android.bp +++ b/system/packet/Android.bp @@ -64,6 +64,7 @@ cc_test { shared_libs: [ "android.hardware.bluetooth@1.0", "android.hardware.bluetooth@1.1", + "libbase", "libbinder_ndk", "libcrypto", ], diff --git a/system/packet/tests/avrcp/get_capabilities_packet_test.cc b/system/packet/tests/avrcp/get_capabilities_packet_test.cc index 267c62bb2f..4e4c195d08 100644 --- a/system/packet/tests/avrcp/get_capabilities_packet_test.cc +++ b/system/packet/tests/avrcp/get_capabilities_packet_test.cc @@ -14,6 +14,7 @@ * limitations under the License. */ +#include <android-base/silent_death_test.h> #include <gtest/gtest.h> #include "avrcp_test_packets.h" @@ -85,13 +86,23 @@ TEST(GetCapabilityResponseBuilder, duplicateAddTest) { } // Test that trying to to add the wrong type of field to a builder causes death -TEST(GetCapabilityResponseBuilder, mismatchAddDeathTest) { +TEST(GetCapabilityResponseBuilderDeathTest, mismatchAddDeathTest) { auto builder = GetCapabilitiesResponseBuilder::MakeCompanyIdBuilder(0x000000); - ASSERT_DEATH(builder->AddEvent(Event::PLAYBACK_STATUS_CHANGED), - "capability_ == Capability::EVENTS_SUPPORTED"); + + { + // this will silent SIGABRT sent in ASSERT_DEATH below scop + ScopedSilentDeath _silentDeath; + + ASSERT_DEATH(builder->AddEvent(Event::PLAYBACK_STATUS_CHANGED), + "capability_ == Capability::EVENTS_SUPPORTED"); + } builder = GetCapabilitiesResponseBuilder::MakeEventsSupportedBuilder( Event::PLAYBACK_STATUS_CHANGED); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(builder->AddCompanyId(0x000000), "capability_ == Capability::COMPANY_ID"); } diff --git a/system/packet/tests/avrcp/get_folder_items_packet_test.cc b/system/packet/tests/avrcp/get_folder_items_packet_test.cc index ec2d733457..b8289021f2 100644 --- a/system/packet/tests/avrcp/get_folder_items_packet_test.cc +++ b/system/packet/tests/avrcp/get_folder_items_packet_test.cc @@ -14,6 +14,7 @@ * limitations under the License. */ +#include <android-base/silent_death_test.h> #include <gtest/gtest.h> #include "avrcp_test_packets.h" @@ -186,24 +187,38 @@ TEST(GetFolderItemsResponseBuilderTest, builderErrorStatusTest) { ASSERT_EQ(test_packet->GetData(), get_folder_items_inv_scope); } -TEST(GetFolderItemsResponseBuilderTest, builderDeathTest) { +TEST(GetFolderItemsResponseBuilderDeathTest, builderDeathTest) { auto player = MediaPlayerItem(0x0001, "com.google.android.music", true); auto folder = FolderItem(0x01, 0x00, true, "test folder"); auto song = MediaElementItem(0x01, "test song", std::set<AttributeEntry>()); auto builder = GetFolderItemsResponseBuilder::MakePlayerListBuilder( Status::NO_ERROR, 0x0000, 0xFFFF); - ASSERT_DEATH(builder->AddFolder(folder), "scope_ == Scope::VFS"); - ASSERT_DEATH(builder->AddSong(song), - "scope_ == Scope::VFS \\|\\| scope_ == Scope::NOW_PLAYING"); + { + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + + ASSERT_DEATH(builder->AddFolder(folder), "scope_ == Scope::VFS"); + ASSERT_DEATH(builder->AddSong(song), + "scope_ == Scope::VFS \\|\\| scope_ == Scope::NOW_PLAYING"); + } builder = GetFolderItemsResponseBuilder::MakeVFSBuilder(Status::NO_ERROR, 0x0000, 0xFFFF); - ASSERT_DEATH(builder->AddMediaPlayer(player), - "scope_ == Scope::MEDIA_PLAYER_LIST"); + { + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + + ASSERT_DEATH(builder->AddMediaPlayer(player), + "scope_ == Scope::MEDIA_PLAYER_LIST"); + } builder = GetFolderItemsResponseBuilder::MakeNowPlayingBuilder( Status::NO_ERROR, 0x0000, 0xFFFF); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(builder->AddMediaPlayer(player), "scope_ == Scope::MEDIA_PLAYER_LIST"); ASSERT_DEATH(builder->AddFolder(folder), "scope_ == Scope::VFS"); diff --git a/system/packet/tests/avrcp/register_notification_packet_test.cc b/system/packet/tests/avrcp/register_notification_packet_test.cc index abc0951d92..a970c54982 100644 --- a/system/packet/tests/avrcp/register_notification_packet_test.cc +++ b/system/packet/tests/avrcp/register_notification_packet_test.cc @@ -14,11 +14,13 @@ * limitations under the License. */ +#include "register_notification_packet.h" + +#include <android-base/silent_death_test.h> #include <gtest/gtest.h> #include "avrcp_test_packets.h" #include "packet_test_helper.h" -#include "register_notification_packet.h" namespace bluetooth { namespace avrcp { @@ -93,11 +95,14 @@ TEST(RegisterNotificationResponseTest, invalidTest) { ASSERT_FALSE(test_packet->IsValid()); } -TEST(RegisterNotificationResponseTest, wrongEventDeathTest) { +TEST(RegisterNotificationResponseDeathTest, wrongEventDeathTest) { auto wrong_event = interim_volume_changed_notification; wrong_event[10] = 0x00; auto test_packet = TestRegNotifRspPacket::Make(wrong_event); + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(test_packet->GetVolume(), "GetEvent\\(\\) == Event::VOLUME_CHANGED"); } diff --git a/system/packet/tests/base/iterator_test.cc b/system/packet/tests/base/iterator_test.cc index 57743dedcd..c499913826 100644 --- a/system/packet/tests/base/iterator_test.cc +++ b/system/packet/tests/base/iterator_test.cc @@ -14,7 +14,9 @@ * limitations under the License. */ +#include <android-base/silent_death_test.h> #include <gtest/gtest.h> + #include <memory> #include "packet.h" @@ -47,9 +49,19 @@ INSTANTIATE_TEST_CASE_P(IteratorParameterTest, IteratorTest, ::testing::Values(pair(0, test_l2cap_data.size()), pair(3, test_l2cap_data.size() - 2))); -TEST_F(IteratorTest, iteratorCreateDeathTest) { +using IteratorDeathTest = IteratorTest; + +INSTANTIATE_TEST_CASE_P(IteratorParameterTest, IteratorDeathTest, + ::testing::Values(pair(0, test_l2cap_data.size()), + pair(3, test_l2cap_data.size() - 2))); + +TEST_F(IteratorDeathTest, iteratorCreateDeathTest) { auto packet = TestPacket::Make(test_l2cap_data, 3, test_l2cap_data.size() - 2); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(Iterator(packet, 0), "index_ >= packet->packet_start_index_"); ASSERT_DEATH(Iterator(packet, test_l2cap_data.size()), "index_ <= packet->packet_end_index_"); @@ -86,9 +98,13 @@ TEST_P(IteratorTest, payloadBoundsTest) { } } -TEST_P(IteratorTest, extractBoundsDeathTest) { +TEST_P(IteratorDeathTest, extractBoundsDeathTest) { auto packet = GetTestPacket(); Iterator bounds_test = packet->end(); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(bounds_test.extract<uint8_t>(), "index_ != packet_->packet_end_index_"); ASSERT_DEATH(bounds_test.extract<uint16_t>(), @@ -99,9 +115,13 @@ TEST_P(IteratorTest, extractBoundsDeathTest) { "index_ != packet_->packet_end_index_"); } -TEST_P(IteratorTest, extractBEBoundsDeathTest) { +TEST_P(IteratorDeathTest, extractBEBoundsDeathTest) { auto packet = GetTestPacket(); Iterator bounds_test = packet->end(); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(bounds_test.extractBE<uint8_t>(), "index_ != packet_->packet_end_index_"); ASSERT_DEATH(bounds_test.extractBE<uint16_t>(), @@ -112,12 +132,16 @@ TEST_P(IteratorTest, extractBEBoundsDeathTest) { "index_ != packet_->packet_end_index_"); } -TEST_P(IteratorTest, dereferenceDeathTest) { +TEST_P(IteratorDeathTest, dereferenceDeathTest) { auto packet = GetTestPacket(); Iterator dereference_test = packet->end(); ASSERT_EQ((*packet)[GetTestPacketLength() - 1], *(dereference_test - static_cast<size_t>(1))); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH(*dereference_test, "index_ != packet_->packet_end_index_"); } diff --git a/system/packet/tests/base/packet_test.cc b/system/packet/tests/base/packet_test.cc index 2c4c1471f5..5b42e6e1a9 100644 --- a/system/packet/tests/base/packet_test.cc +++ b/system/packet/tests/base/packet_test.cc @@ -14,9 +14,11 @@ * limitations under the License. */ +#include "packet.h" + +#include <android-base/silent_death_test.h> #include <gtest/gtest.h> -#include "packet.h" #include "packet_test_common.h" #include "test_packets.h" @@ -64,9 +66,13 @@ TEST(PacketTest, arrayAccessTest) { } // Test that accessing past the end of the defined payload dies -TEST(PacketTest, arrayAccessDeathTest) { +TEST(PacketDeathTest, arrayAccessDeathTest) { auto packet = TestPacket::Make(test_l2cap_data, 3, test_l2cap_data.size() - 2); + + // this will silent SIGABRT sent in ASSERT_DEATH below + ScopedSilentDeath _silentDeath; + ASSERT_DEATH((*packet)[test_l2cap_data.size()], ""); } |