| 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
|
|
|