Index: sandbox/linux/tests/unit_tests_unittest.cc |
diff --git a/sandbox/linux/tests/unit_tests_unittest.cc b/sandbox/linux/tests/unit_tests_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..57799b14c04d985729677334dd841a630acd8655 |
--- /dev/null |
+++ b/sandbox/linux/tests/unit_tests_unittest.cc |
@@ -0,0 +1,62 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <signal.h> |
+#include <stdlib.h> |
+#include <sys/types.h> |
+#include <sys/wait.h> |
+#include <unistd.h> |
+ |
+#include "base/logging.h" |
+#include "base/posix/eintr_wrapper.h" |
+#include "sandbox/linux/tests/unit_tests.h" |
+ |
+namespace sandbox { |
+ |
+namespace { |
+ |
+// Let's not use any of the "magic" values used internally in unit_tests.cc, |
+// such as kExpectedValue. |
+const int kExpectedExitCode = 100; |
+ |
+SANDBOX_DEATH_TEST(UnitTests, |
+ DeathExitCode, |
+ DEATH_EXIT_CODE(kExpectedExitCode)) { |
+ _exit(kExpectedExitCode); |
+} |
+ |
+const int kExpectedSignalNumber = SIGKILL; |
+ |
+SANDBOX_DEATH_TEST(UnitTests, |
+ DeathBySignal, |
+ DEATH_BY_SIGNAL(kExpectedSignalNumber)) { |
+ raise(kExpectedSignalNumber); |
+} |
+ |
+SANDBOX_DEATH_TEST(UnitTests, |
+ DeathWithMessage, |
+ DEATH_MESSAGE("Hello")) { |
+ LOG(ERROR) << "Hello"; |
+ _exit(1); |
+} |
+ |
+SANDBOX_DEATH_TEST(UnitTests, |
+ SEGVDeathWithMessage, |
+ DEATH_SEGV_MESSAGE("Hello")) { |
+ LOG(ERROR) << "Hello"; |
+ while (1) { |
+ volatile char* addr = reinterpret_cast<volatile char*>(NULL); |
+ *addr = '\0'; |
+ } |
+ |
+ _exit(2); |
+} |
+ |
+SANDBOX_TEST_ALLOW_NOISE(UnitTests, NoisyTest) { |
+ LOG(ERROR) << "The cow says moo!"; |
+} |
+ |
+} // namespace |
+ |
+} // namespace sandbox |