summaryrefslogtreecommitdiff
path: root/system/packet/tests/base/iterator_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'system/packet/tests/base/iterator_test.cc')
-rw-r--r--system/packet/tests/base/iterator_test.cc32
1 files changed, 28 insertions, 4 deletions
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_");
}