ATF_TC_BODY(get, tc) { const struct varnames *v; /* 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(); __atf_config_reinit(); for (v = all_vars; v->lc != NULL; v++) ATF_CHECK(strcmp(atf_config_get(v->lc), test_value) != 0); /* Test the behavior of empty values. */ for (v = all_vars; v->lc != NULL; v++) { unset_all(); if (strcmp(atf_config_get(v->lc), "") != 0) { RE(atf_env_set(v->uc, "")); __atf_config_reinit(); if (v->can_be_empty) ATF_CHECK(strlen(atf_config_get(v->lc)) == 0); else ATF_CHECK(strlen(atf_config_get(v->lc)) > 0); } } /* Check if every variable is recognized individually. */ for (v = all_vars; v->lc != NULL; v++) { unset_all(); RE(atf_env_set(v->uc, test_value)); __atf_config_reinit(); compare_one(v->lc, test_value); } }
ATF_TC_BODY(cpp, tc) { struct cpp_test *test; for (test = cpp_tests; test->expargv[0] != NULL; test++) { printf("> Test: %s\n", test->msg); verbose_set_env("ATF_BUILD_CPP", test->cpp); verbose_set_env("ATF_BUILD_CPPFLAGS", test->cppflags); __atf_config_reinit(); { char **argv; if (test->hasoptargs) RE(atf_build_cpp(test->sfile, test->ofile, test->optargs, &argv)); else RE(atf_build_cpp(test->sfile, test->ofile, NULL, &argv)); check_equal_array(test->expargv, argv); atf_utils_free_charpp(argv); } } }
// // Auxiliary function for the t_config test program so that it can // revert the configuration's global status to an empty state and // do new tests from there on. // // Ideally this shouldn't be part of the production library... but // this is so small that it does not matter. // void __reinit(void) { __atf_config_reinit(); m_variables.clear(); }