Exit gracefully on invalid --gtest_* flag.
My gtest run crashed when I provided wrong flag (e.g. --gtest_list),
because it tried to call std::vector::back() on empty testcase_list.
Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests works.
Test: `/d/n/b/bionic-unit-tests --gtest_invalid` dumps the gtest help
message.
Change-Id: I5f63c7fa6476d8749248c9b54d3023446f3e0e77
diff --git a/tests/gtest_main.cpp b/tests/gtest_main.cpp
index 6b20094..6f8c403 100644
--- a/tests/gtest_main.cpp
+++ b/tests/gtest_main.cpp
@@ -317,6 +317,12 @@
line.pop_back();
testcase_list.push_back(TestCase(line.c_str()));
} else {
+ if (testcase_list.empty()) {
+ // Invalid response from gtest - likely it has been upset by an invalid --gtest_* flag.
+ // Relay the message to user.
+ fprintf(stderr, "%s", content.c_str());
+ return false;
+ }
testcase_list.back().AppendTest(line.c_str());
}
}