summaryrefslogtreecommitdiffstats
path: root/tools/config_test.cpp
diff options
context:
space:
mode:
authorjmmv <jmmv@FreeBSD.org>2014-02-14 14:44:03 +0000
committerjmmv <jmmv@FreeBSD.org>2014-02-14 14:44:03 +0000
commit14f39fed9fe557bdd640e02d9abbe2e695400d9e (patch)
tree907c960968fce28b8ca3cb9367140ed92c404150 /tools/config_test.cpp
parenta817576754c6af0869b83f2f3efc4659963962a1 (diff)
downloadFreeBSD-src-14f39fed9fe557bdd640e02d9abbe2e695400d9e.zip
FreeBSD-src-14f39fed9fe557bdd640e02d9abbe2e695400d9e.tar.gz
Import atf-0.20:
Experimental version released on February 7th, 2014. This is the first release without the code for the deprecated tools. If you require such code, please fetch a copy of the 0.19 release and extract the 'tools' directory for your own consumption. * Removed the deprecated tools. This includes atf-config, atf-report, atf-run and atf-version.
Diffstat (limited to 'tools/config_test.cpp')
-rw-r--r--tools/config_test.cpp221
1 files changed, 0 insertions, 221 deletions
diff --git a/tools/config_test.cpp b/tools/config_test.cpp
deleted file mode 100644
index d7d6719..0000000
--- a/tools/config_test.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-//
-// Automated Testing Framework (atf)
-//
-// Copyright (c) 2007 The NetBSD Foundation, Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
-// CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-// IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
-// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include <iostream>
-
-#include <atf-c++.hpp>
-
-#include "config.hpp"
-#include "env.hpp"
-#include "exceptions.hpp"
-
-static const char *test_value = "env-value";
-
-static struct varnames {
- const char *lc;
- const char *uc;
- bool can_be_empty;
-} all_vars[] = {
- { "atf_arch", "ATF_ARCH", false },
- { "atf_build_cc", "ATF_BUILD_CC", false },
- { "atf_build_cflags", "ATF_BUILD_CFLAGS", true },
- { "atf_build_cpp", "ATF_BUILD_CPP", false },
- { "atf_build_cppflags", "ATF_BUILD_CPPFLAGS", true },
- { "atf_build_cxx", "ATF_BUILD_CXX", false },
- { "atf_build_cxxflags", "ATF_BUILD_CXXFLAGS", true },
- { "atf_confdir", "ATF_CONFDIR", false },
- { "atf_includedir", "ATF_INCLUDEDIR", false },
- { "atf_libdir", "ATF_LIBDIR", false },
- { "atf_libexecdir", "ATF_LIBEXECDIR", false },
- { "atf_machine", "ATF_MACHINE", false },
- { "atf_pkgdatadir", "ATF_PKGDATADIR", false },
- { "atf_shell", "ATF_SHELL", false },
- { "atf_workdir", "ATF_WORKDIR", false },
- { NULL, NULL, false }
-};
-
-// ------------------------------------------------------------------------
-// Auxiliary functions.
-// ------------------------------------------------------------------------
-
-namespace tools {
- namespace config {
- void __reinit(void);
- }
-}
-
-static
-void
-set_env_var(const char* name, const char* val)
-{
- try {
- tools::env::set(name, val);
- } catch (const tools::system_error&) {
- ATF_FAIL(std::string("set_env_var(") + name + ", " + val +
- ") failed");
- }
-}
-
-static
-void
-unset_env_var(const char* name)
-{
- try {
- tools::env::unset(name);
- } catch (const tools::system_error&) {
- ATF_FAIL(std::string("unset_env_var(") + name + ") failed");
- }
-}
-
-static
-size_t
-all_vars_count(void)
-{
- size_t count = 0;
- for (const struct varnames* v = all_vars; v->lc != NULL; v++)
- count++;
- return count;
-}
-
-static
-void
-unset_all(void)
-{
- for (const struct varnames* v = all_vars; v->lc != NULL; v++)
- unset_env_var(v->uc);
-}
-
-static
-void
-compare_one(const char* var, const char* expvalue)
-{
- std::cout << "Checking that " << var << " is set to " << expvalue << "\n";
-
- for (const struct varnames* v = all_vars; v->lc != NULL; v++) {
- if (std::strcmp(v->lc, var) == 0)
- ATF_REQUIRE_EQ(tools::config::get(v->lc), test_value);
- else
- ATF_REQUIRE(tools::config::get(v->lc) != test_value);
- }
-}
-
-// ------------------------------------------------------------------------
-// Test cases for the free functions.
-// ------------------------------------------------------------------------
-
-ATF_TEST_CASE(get);
-ATF_TEST_CASE_HEAD(get)
-{
- set_md_var("descr", "Tests the config::get function");
-}
-ATF_TEST_CASE_BODY(get)
-{
- // Unset all known environment variables and make sure the built-in
- // values do not match the bogus value we will use for testing.
- unset_all();
- tools::config::__reinit();
- for (const struct varnames* v = all_vars; v->lc != NULL; v++)
- ATF_REQUIRE(tools::config::get(v->lc) != test_value);
-
- // Test the behavior of empty values.
- for (const struct varnames* v = all_vars; v->lc != NULL; v++) {
- unset_all();
- if (!tools::config::get(v->lc).empty()) {
- set_env_var(v->uc, "");
- tools::config::__reinit();
- if (v->can_be_empty)
- ATF_REQUIRE(tools::config::get(v->lc).empty());
- else
- ATF_REQUIRE(!tools::config::get(v->lc).empty());
- }
- }
-
- // Check if the ATF_ARCH variable is recognized.
- for (const struct varnames* v = all_vars; v->lc != NULL; v++) {
- unset_all();
- set_env_var(v->uc, test_value);
- tools::config::__reinit();
- compare_one(v->lc, test_value);
- }
-}
-
-ATF_TEST_CASE(get_all);
-ATF_TEST_CASE_HEAD(get_all)
-{
- set_md_var("descr", "Tests the config::get_all function");
-}
-ATF_TEST_CASE_BODY(get_all)
-{
- tools::config::__reinit();
-
- // Check that the valid variables, and only those, are returned.
- std::map< std::string, std::string > vars = tools::config::get_all();
- ATF_REQUIRE_EQ(vars.size(), all_vars_count());
- for (const struct varnames* v = all_vars; v->lc != NULL; v++)
- ATF_REQUIRE(vars.find(v->lc) != vars.end());
-}
-
-ATF_TEST_CASE(has);
-ATF_TEST_CASE_HEAD(has)
-{
- set_md_var("descr", "Tests the config::has function");
-}
-ATF_TEST_CASE_BODY(has)
-{
- tools::config::__reinit();
-
- // Check for all the variables that must exist.
- for (const struct varnames* v = all_vars; v->lc != NULL; v++)
- ATF_REQUIRE(tools::config::has(v->lc));
-
- // Same as above, but using uppercase (which is incorrect).
- for (const struct varnames* v = all_vars; v->lc != NULL; v++)
- ATF_REQUIRE(!tools::config::has(v->uc));
-
- // Check for some other variables that cannot exist.
- ATF_REQUIRE(!tools::config::has("foo"));
- ATF_REQUIRE(!tools::config::has("BAR"));
- ATF_REQUIRE(!tools::config::has("atf_foo"));
- ATF_REQUIRE(!tools::config::has("ATF_BAR"));
- ATF_REQUIRE(!tools::config::has("atf_shel"));
- ATF_REQUIRE(!tools::config::has("atf_shells"));
-}
-
-// ------------------------------------------------------------------------
-// Main.
-// ------------------------------------------------------------------------
-
-ATF_INIT_TEST_CASES(tcs)
-{
- // Add the test cases for the free functions.
- ATF_ADD_TEST_CASE(tcs, has);
- ATF_ADD_TEST_CASE(tcs, get);
- ATF_ADD_TEST_CASE(tcs, get_all);
-}
OpenPOWER on IntegriCloud