freebsd / kyua

Testing framework for infrastructure software
BSD 3-Clause "New" or "Revised" License
147 stars 42 forks source link

testers/run_test.c requires nonexistent config variable unprivileged-user #107

Open asomers opened 10 years ago

asomers commented 10 years ago

Four tests in testers/run_test.c require the nonexistent config variable "unprivileged-user". The correct variable, according to kyua.conf(5) and kyua.conf.in from ports, is "unprivileged_user" (underscore instead of hyphen). Patch below:

--- ./testers/run_test.c.orig   2014-08-29 14:44:03.733252377 -0600
+++ ./testers/run_test.c    2014-08-29 14:44:19.112864860 -0600
@@ -562,13 +562,13 @@
 ATF_TC(fork_wait__unprivileged_user);
 ATF_TC_HEAD(fork_wait__unprivileged_user, tc)
 {
-    atf_tc_set_md_var(tc, "require.config", "unprivileged-user");
+    atf_tc_set_md_var(tc, "require.config", "unprivileged_user");
     atf_tc_set_md_var(tc, "require.user", "root");
 }
 ATF_TC_BODY(fork_wait__unprivileged_user, tc)
 {
     const struct passwd* pw = getpwnam(atf_tc_get_config_var(
-        tc, "unprivileged-user"));
+        tc, "unprivileged_user"));
     ATF_REQUIRE_MSG(pw != NULL, "Cannot find unprivileged user");

     kyua_run_params_t run_params;
@@ -583,13 +583,13 @@
 ATF_TC(fork_wait__unprivileged_group);
 ATF_TC_HEAD(fork_wait__unprivileged_group, tc)
 {
-    atf_tc_set_md_var(tc, "require.config", "unprivileged-user");
+    atf_tc_set_md_var(tc, "require.config", "unprivileged_user");
     atf_tc_set_md_var(tc, "require.user", "root");
 }
 ATF_TC_BODY(fork_wait__unprivileged_group, tc)
 {
     const struct passwd* pw = getpwnam(atf_tc_get_config_var(
-        tc, "unprivileged-user"));
+        tc, "unprivileged_user"));
     ATF_REQUIRE_MSG(pw != NULL, "Cannot find unprivileged user");

     kyua_run_params_t run_params;
@@ -604,13 +604,13 @@
 ATF_TC(fork_wait__unprivileged_both);
 ATF_TC_HEAD(fork_wait__unprivileged_both, tc)
 {
-    atf_tc_set_md_var(tc, "require.config", "unprivileged-user");
+    atf_tc_set_md_var(tc, "require.config", "unprivileged_user");
     atf_tc_set_md_var(tc, "require.user", "root");
 }
 ATF_TC_BODY(fork_wait__unprivileged_both, tc)
 {
     const struct passwd* pw = getpwnam(atf_tc_get_config_var(
-        tc, "unprivileged-user"));
+        tc, "unprivileged_user"));
     ATF_REQUIRE_MSG(pw != NULL, "Cannot find unprivileged user");

     kyua_run_params_t run_params;
@@ -719,13 +719,13 @@
 ATF_TC(work_directory__permissions);
 ATF_TC_HEAD(work_directory__permissions, tc)
 {
-    atf_tc_set_md_var(tc, "require.config", "unprivileged-user");
+    atf_tc_set_md_var(tc, "require.config", "unprivileged_user");
     atf_tc_set_md_var(tc, "require.user", "root");
 }
 ATF_TC_BODY(work_directory__permissions, tc)
 {
     const struct passwd* pw = getpwnam(atf_tc_get_config_var(
-        tc, "unprivileged-user"));
+        tc, "unprivileged_user"));

     printf("%d %d %d %d\n", getuid(), getgid(), pw->pw_uid, pw->pw_gid);
asomers commented 10 years ago

I see what's going on now. kyua.conf(5) specifies that the variable should be called "unprivileged_user", but atf-test-case(4) specifies that it should be called "unprivileged-user". engine/metadata.cpp does the conversion. This violates POLS. Would it be possible to unify the two? There aren't very many ATF test cases in the wild that use that variable, so it should be possible to convert them.

jmmv commented 10 years ago

Two thoughts:

I'm currently leaning towards doing a.