| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef SANDBOX_LINUX_TESTS_UNIT_TESTS_H__ | 5 #ifndef SANDBOX_LINUX_TESTS_UNIT_TESTS_H__ |
| 6 #define SANDBOX_LINUX_TESTS_UNIT_TESTS_H__ | 6 #define SANDBOX_LINUX_TESTS_UNIT_TESTS_H__ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 namespace sandbox { | 11 namespace sandbox { |
| 12 | 12 |
| 13 // While it is perfectly OK for a complex test to provide its own DeathCheck | 13 // While it is perfectly OK for a complex test to provide its own DeathCheck |
| 14 // function. Most death tests have very simple requirements. These tests should | 14 // function. Most death tests have very simple requirements. These tests should |
| 15 // use one of the predefined DEATH_XXX macros as an argument to | 15 // use one of the predefined DEATH_XXX macros as an argument to |
| 16 // SANDBOX_DEATH_TEST(). You can check for a (sub-)string in the output of the | 16 // SANDBOX_DEATH_TEST(). You can check for a (sub-)string in the output of the |
| 17 // test, for a particular exit code, or for a particular death signal. | 17 // test, for a particular exit code, or for a particular death signal. |
| 18 // NOTE: If you do decide to write your own DeathCheck, make sure to use | 18 // NOTE: If you do decide to write your own DeathCheck, make sure to use |
| 19 // gtests's ASSERT_XXX() macros instead of SANDBOX_ASSERT(). See | 19 // gtests's ASSERT_XXX() macros instead of SANDBOX_ASSERT(). See |
| 20 // unit_tests.cc for examples. | 20 // unit_tests.cc for examples. |
| 21 #define DEATH_SUCCESS() sandbox::UnitTests::DeathSuccess, NULL | 21 #define DEATH_SUCCESS() sandbox::UnitTests::DeathSuccess, NULL |
| 22 #define DEATH_MESSAGE(msg) sandbox::UnitTests::DeathMessage, \ | 22 #define DEATH_MESSAGE(msg) sandbox::UnitTests::DeathMessage, \ |
| 23 static_cast<const void *>( \ | 23 static_cast<const void *>( \ |
| 24 static_cast<const char *>(msg)) | 24 static_cast<const char *>(msg)) |
| 25 #define DEATH_EXIT_CODE(rc) sandbox::UnitTests::DeathExitCode, \ | 25 #define DEATH_EXIT_CODE(rc) sandbox::UnitTests::DeathExitCode, \ |
| 26 reinterpret_cast<void *>(static_cast<intptr_t>(rc)) | 26 reinterpret_cast<void *>(static_cast<intptr_t>(rc)) |
| 27 #define DEATH_BY_SIGNAL(s) sandbox::UnitTests::DeathExitCode, \ | 27 #define DEATH_BY_SIGNAL(s) sandbox::UnitTests::DeathBySignal, \ |
| 28 reinterpret_cast<void *>(static_cast<intptr_t>(s)) | 28 reinterpret_cast<void *>(static_cast<intptr_t>(s)) |
| 29 | 29 |
| 30 // A SANDBOX_DEATH_TEST is just like a SANDBOX_TEST (see below), but it assumes | 30 // A SANDBOX_DEATH_TEST is just like a SANDBOX_TEST (see below), but it assumes |
| 31 // that the test actually dies. The death test only passes if the death occurs | 31 // that the test actually dies. The death test only passes if the death occurs |
| 32 // in the expected fashion, as specified by "death" and "death_aux". These two | 32 // in the expected fashion, as specified by "death" and "death_aux". These two |
| 33 // parameters are typically set to one of the DEATH_XXX() macros. | 33 // parameters are typically set to one of the DEATH_XXX() macros. |
| 34 #define SANDBOX_DEATH_TEST(test_case_name, test_name, death) \ | 34 #define SANDBOX_DEATH_TEST(test_case_name, test_name, death) \ |
| 35 void TEST_##test_name(void *); \ | 35 void TEST_##test_name(void *); \ |
| 36 TEST(test_case_name, test_name) { \ | 36 TEST(test_case_name, test_name) { \ |
| 37 sandbox::UnitTests::RunTestInProcess(TEST_##test_name, NULL, death); \ | 37 sandbox::UnitTests::RunTestInProcess(TEST_##test_name, NULL, death); \ |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 static void DeathBySignal(int status, const std::string& msg, | 107 static void DeathBySignal(int status, const std::string& msg, |
| 108 const void *aux); | 108 const void *aux); |
| 109 | 109 |
| 110 private: | 110 private: |
| 111 DISALLOW_IMPLICIT_CONSTRUCTORS(UnitTests); | 111 DISALLOW_IMPLICIT_CONSTRUCTORS(UnitTests); |
| 112 }; | 112 }; |
| 113 | 113 |
| 114 } // namespace | 114 } // namespace |
| 115 | 115 |
| 116 #endif // SANDBOX_LINUX_TESTS_UNIT_TESTS_H__ | 116 #endif // SANDBOX_LINUX_TESTS_UNIT_TESTS_H__ |
| OLD | NEW |