1// Copyright 2011 The Kyua Authors. 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: 7// 8// * Redistributions of source code must retain the above copyright 9// notice, this list of conditions and the following disclaimer. 10// * Redistributions in binary form must reproduce the above copyright 11// notice, this list of conditions and the following disclaimer in the 12// documentation and/or other materials provided with the distribution. 13// * Neither the name of Google Inc. nor the names of its contributors 14// may be used to endorse or promote products derived from this software 15// without specific prior written permission. 16// 17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 29#include <cstdlib> 30 31#include <atf-c++.hpp> 32 33#include "utils/test_utils.ipp" 34 35 36ATF_TEST_CASE(config_in_head); 37ATF_TEST_CASE_HEAD(config_in_head) 38{ 39 if (has_config_var("the-variable")) { 40 set_md_var("descr", "the-variable is " + 41 get_config_var("the-variable")); 42 } 43} 44ATF_TEST_CASE_BODY(config_in_head) 45{ 46 utils::abort_without_coredump(); 47} 48 49 50ATF_TEST_CASE(crash_list); 51ATF_TEST_CASE_HEAD(crash_list) 52{ 53 utils::abort_without_coredump(); 54} 55ATF_TEST_CASE_BODY(crash_list) 56{ 57 utils::abort_without_coredump(); 58} 59 60 61ATF_TEST_CASE_WITHOUT_HEAD(no_properties); 62ATF_TEST_CASE_BODY(no_properties) 63{ 64 utils::abort_without_coredump(); 65} 66 67 68ATF_TEST_CASE(some_properties); 69ATF_TEST_CASE_HEAD(some_properties) 70{ 71 set_md_var("descr", "This is a description"); 72 set_md_var("require.progs", "non-existent /bin/ls"); 73} 74ATF_TEST_CASE_BODY(some_properties) 75{ 76 utils::abort_without_coredump(); 77} 78 79 80ATF_INIT_TEST_CASES(tcs) 81{ 82 std::string enabled; 83 84 const char* tests = std::getenv("TESTS"); 85 if (tests == NULL) 86 enabled = "config_in_head crash_list no_properties some_properties"; 87 else 88 enabled = tests; 89 90 if (enabled.find("config_in_head") != std::string::npos) 91 ATF_ADD_TEST_CASE(tcs, config_in_head); 92 if (enabled.find("crash_list") != std::string::npos) 93 ATF_ADD_TEST_CASE(tcs, crash_list); 94 if (enabled.find("no_properties") != std::string::npos) 95 ATF_ADD_TEST_CASE(tcs, no_properties); 96 if (enabled.find("some_properties") != std::string::npos) 97 ATF_ADD_TEST_CASE(tcs, some_properties); 98} 99