diff --git a/tests/acceptance/00_basics/01_compiler/string_contexts.cf b/tests/acceptance/00_basics/01_compiler/string_contexts.error.pass.cf
similarity index 93%
rename from tests/acceptance/00_basics/01_compiler/string_contexts.cf
rename to tests/acceptance/00_basics/01_compiler/string_contexts.error.pass.cf
index 0bf5503ac25..3d3f99d453b 100644
--- a/tests/acceptance/00_basics/01_compiler/string_contexts.cf
+++ b/tests/acceptance/00_basics/01_compiler/string_contexts.error.pass.cf
@@ -1,5 +1,9 @@
# fixes https://dev.cfengine.com/issues/2504
# using variables in string contexts
+#
+# This is an .error.pass.cf test, because the 'cf engine' class context
+# (words separated by whitespace without an operator) is invalid on
+# purpose and logs an error.
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/00_basics/01_compiler/string_contexts.cf.expected.json b/tests/acceptance/00_basics/01_compiler/string_contexts.error.pass.cf.expected.json
similarity index 100%
rename from tests/acceptance/00_basics/01_compiler/string_contexts.cf.expected.json
rename to tests/acceptance/00_basics/01_compiler/string_contexts.error.pass.cf.expected.json
diff --git a/tests/acceptance/00_basics/04_bundles/wrong-bundle-type.cf b/tests/acceptance/00_basics/04_bundles/wrong-bundle-type.cf
index db2641cbe6d..e1e1e57b980 100644
--- a/tests/acceptance/00_basics/04_bundles/wrong-bundle-type.cf
+++ b/tests/acceptance/00_basics/04_bundles/wrong-bundle-type.cf
@@ -20,6 +20,10 @@ bundle agent test
"${sys.cf_agent} -Kf $(this.promise_dirname)/wrong-bundle-type.sub.x.cf",
"noshell"
);
+
+ # Indent the output in the DEBUG report, so that errors printed by the
+ # sub-agent are not mistaken for errors of this test by testall
+ "subout_indented" string => regex_replace($(subout), "^", " | ", "gm");
}
bundle agent check
@@ -29,7 +33,7 @@ bundle agent check
reports:
DEBUG::
- "$(test.subout)";
+ "$(test.subout_indented)";
ok::
"$(this.promise_filename) Pass";
diff --git a/tests/acceptance/00_basics/def.json/augments.cf b/tests/acceptance/00_basics/def_json/augments.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments.cf
rename to tests/acceptance/00_basics/def_json/augments.cf
diff --git a/tests/acceptance/00_basics/def.json/augments.cf.augmenter.json b/tests/acceptance/00_basics/def_json/augments.cf.augmenter.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments.cf.augmenter.json
rename to tests/acceptance/00_basics/def_json/augments.cf.augmenter.json
diff --git a/tests/acceptance/00_basics/def.json/augments.cf.json b/tests/acceptance/00_basics/def_json/augments.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments.cf.json
rename to tests/acceptance/00_basics/def_json/augments.cf.json
diff --git a/tests/acceptance/00_basics/def.json/augments_classes/augments_classes.cf b/tests/acceptance/00_basics/def_json/augments_classes/augments_classes.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments_classes/augments_classes.cf
rename to tests/acceptance/00_basics/def_json/augments_classes/augments_classes.cf
diff --git a/tests/acceptance/00_basics/def.json/augments_classes/def.json b/tests/acceptance/00_basics/def_json/augments_classes/def.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments_classes/def.json
rename to tests/acceptance/00_basics/def_json/augments_classes/def.json
diff --git a/tests/acceptance/00_basics/def.json/augments_order.cf b/tests/acceptance/00_basics/def_json/augments_order.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments_order.cf
rename to tests/acceptance/00_basics/def_json/augments_order.cf
diff --git a/tests/acceptance/00_basics/def.json/augments_order.cf.augmenter.json b/tests/acceptance/00_basics/def_json/augments_order.cf.augmenter.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments_order.cf.augmenter.json
rename to tests/acceptance/00_basics/def_json/augments_order.cf.augmenter.json
diff --git a/tests/acceptance/00_basics/def.json/augments_order.cf.json b/tests/acceptance/00_basics/def_json/augments_order.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/augments_order.cf.json
rename to tests/acceptance/00_basics/def_json/augments_order.cf.json
diff --git a/tests/acceptance/00_basics/def.json/bad-json.cf b/tests/acceptance/00_basics/def_json/bad-json.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/bad-json.cf
rename to tests/acceptance/00_basics/def_json/bad-json.cf
diff --git a/tests/acceptance/00_basics/def.json/bad-json.cf.x.json b/tests/acceptance/00_basics/def_json/bad-json.cf.x.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/bad-json.cf.x.json
rename to tests/acceptance/00_basics/def_json/bad-json.cf.x.json
diff --git a/tests/acceptance/00_basics/def.json/class_from_classexpression.cf b/tests/acceptance/00_basics/def_json/class_from_classexpression.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/class_from_classexpression.cf
rename to tests/acceptance/00_basics/def_json/class_from_classexpression.cf
diff --git a/tests/acceptance/00_basics/def.json/class_from_classexpression.cf.json b/tests/acceptance/00_basics/def_json/class_from_classexpression.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/class_from_classexpression.cf.json
rename to tests/acceptance/00_basics/def_json/class_from_classexpression.cf.json
diff --git a/tests/acceptance/00_basics/def.json/classes.cf b/tests/acceptance/00_basics/def_json/classes.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/classes.cf
rename to tests/acceptance/00_basics/def_json/classes.cf
diff --git a/tests/acceptance/00_basics/def.json/classes.cf.json b/tests/acceptance/00_basics/def_json/classes.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/classes.cf.json
rename to tests/acceptance/00_basics/def_json/classes.cf.json
diff --git a/tests/acceptance/00_basics/def.json/classes_with_ns.cf b/tests/acceptance/00_basics/def_json/classes_with_ns.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/classes_with_ns.cf
rename to tests/acceptance/00_basics/def_json/classes_with_ns.cf
diff --git a/tests/acceptance/00_basics/def.json/classes_with_ns.cf.json b/tests/acceptance/00_basics/def_json/classes_with_ns.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/classes_with_ns.cf.json
rename to tests/acceptance/00_basics/def_json/classes_with_ns.cf.json
diff --git a/tests/acceptance/00_basics/def.json/classes_with_ns_tags.cf b/tests/acceptance/00_basics/def_json/classes_with_ns_tags.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/classes_with_ns_tags.cf
rename to tests/acceptance/00_basics/def_json/classes_with_ns_tags.cf
diff --git a/tests/acceptance/00_basics/def.json/classes_with_ns_tags.cf.json b/tests/acceptance/00_basics/def_json/classes_with_ns_tags.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/classes_with_ns_tags.cf.json
rename to tests/acceptance/00_basics/def_json/classes_with_ns_tags.cf.json
diff --git a/tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/both-can-define-vars.cf b/tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/both-can-define-vars.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/both-can-define-vars.cf
rename to tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/both-can-define-vars.cf
diff --git a/tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/def.json b/tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/def.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/def.json
rename to tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/def.json
diff --git a/tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/def.json b/tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/def.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/def.json
rename to tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/def.json
diff --git a/tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/variables-wins.cf b/tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/variables-wins.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/variables-wins.cf
rename to tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/variables-wins-variables-listed-first/variables-wins.cf
diff --git a/tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/variables-wins.cf b/tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/variables-wins.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/concurrent-vars-and-variables-keys/variables-wins.cf
rename to tests/acceptance/00_basics/def_json/concurrent-vars-and-variables-keys/variables-wins.cf
diff --git a/tests/acceptance/00_basics/def.json/def.json b/tests/acceptance/00_basics/def_json/def.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/def.json
rename to tests/acceptance/00_basics/def_json/def.json
diff --git a/tests/acceptance/00_basics/def.json/def_preferred.json/def.json b/tests/acceptance/00_basics/def_json/def_preferred.json/def.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/def_preferred.json/def.json
rename to tests/acceptance/00_basics/def_json/def_preferred.json/def.json
diff --git a/tests/acceptance/00_basics/def.json/def_preferred.json/def_preferred.cf b/tests/acceptance/00_basics/def_json/def_preferred.json/def_preferred.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/def_preferred.json/def_preferred.cf
rename to tests/acceptance/00_basics/def_json/def_preferred.json/def_preferred.cf
diff --git a/tests/acceptance/00_basics/def.json/def_preferred.json/def_preferred.json b/tests/acceptance/00_basics/def_json/def_preferred.json/def_preferred.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/def_preferred.json/def_preferred.json
rename to tests/acceptance/00_basics/def_json/def_preferred.json/def_preferred.json
diff --git a/tests/acceptance/00_basics/def.json/inputs.cf b/tests/acceptance/00_basics/def_json/inputs.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/inputs.cf
rename to tests/acceptance/00_basics/def_json/inputs.cf
diff --git a/tests/acceptance/00_basics/def.json/inputs.cf.json b/tests/acceptance/00_basics/def_json/inputs.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/inputs.cf.json
rename to tests/acceptance/00_basics/def_json/inputs.cf.json
diff --git a/tests/acceptance/00_basics/def.json/json-inputs-not-array.cf b/tests/acceptance/00_basics/def_json/json-inputs-not-array.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/json-inputs-not-array.cf
rename to tests/acceptance/00_basics/def_json/json-inputs-not-array.cf
diff --git a/tests/acceptance/00_basics/def.json/json-inputs-not-array.cf.json b/tests/acceptance/00_basics/def_json/json-inputs-not-array.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/json-inputs-not-array.cf.json
rename to tests/acceptance/00_basics/def_json/json-inputs-not-array.cf.json
diff --git a/tests/acceptance/00_basics/def.json/json-inputs-not-auto-applied.cf b/tests/acceptance/00_basics/def_json/json-inputs-not-auto-applied.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/json-inputs-not-auto-applied.cf
rename to tests/acceptance/00_basics/def_json/json-inputs-not-auto-applied.cf
diff --git a/tests/acceptance/00_basics/def.json/json-inputs-not-auto-applied.cf.json b/tests/acceptance/00_basics/def_json/json-inputs-not-auto-applied.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/json-inputs-not-auto-applied.cf.json
rename to tests/acceptance/00_basics/def_json/json-inputs-not-auto-applied.cf.json
diff --git a/tests/acceptance/00_basics/def.json/policy_server_classes.cf b/tests/acceptance/00_basics/def_json/policy_server_classes.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/policy_server_classes.cf
rename to tests/acceptance/00_basics/def_json/policy_server_classes.cf
diff --git a/tests/acceptance/00_basics/def.json/policy_server_classes.cf.json b/tests/acceptance/00_basics/def_json/policy_server_classes.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/policy_server_classes.cf.json
rename to tests/acceptance/00_basics/def_json/policy_server_classes.cf.json
diff --git a/tests/acceptance/00_basics/def.json/show_vars_JSON.cf b/tests/acceptance/00_basics/def_json/show_vars_JSON.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/show_vars_JSON.cf
rename to tests/acceptance/00_basics/def_json/show_vars_JSON.cf
diff --git a/tests/acceptance/00_basics/def.json/show_vars_JSON.cf.json b/tests/acceptance/00_basics/def_json/show_vars_JSON.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/show_vars_JSON.cf.json
rename to tests/acceptance/00_basics/def_json/show_vars_JSON.cf.json
diff --git a/tests/acceptance/00_basics/def.json/state.cf b/tests/acceptance/00_basics/def_json/state.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/state.cf
rename to tests/acceptance/00_basics/def_json/state.cf
diff --git a/tests/acceptance/00_basics/def.json/state.cf.expected.json b/tests/acceptance/00_basics/def_json/state.cf.expected.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/state.cf.expected.json
rename to tests/acceptance/00_basics/def_json/state.cf.expected.json
diff --git a/tests/acceptance/00_basics/def.json/variables.cf b/tests/acceptance/00_basics/def_json/variables.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables.cf
rename to tests/acceptance/00_basics/def_json/variables.cf
diff --git a/tests/acceptance/00_basics/def.json/variables.cf.json b/tests/acceptance/00_basics/def_json/variables.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables.cf.json
rename to tests/acceptance/00_basics/def_json/variables.cf.json
diff --git a/tests/acceptance/00_basics/def.json/variables_bare_array.cf b/tests/acceptance/00_basics/def_json/variables_bare_array.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_bare_array.cf
rename to tests/acceptance/00_basics/def_json/variables_bare_array.cf
diff --git a/tests/acceptance/00_basics/def.json/variables_bare_array.cf.json b/tests/acceptance/00_basics/def_json/variables_bare_array.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_bare_array.cf.json
rename to tests/acceptance/00_basics/def_json/variables_bare_array.cf.json
diff --git a/tests/acceptance/00_basics/def.json/variables_bare_string.cf b/tests/acceptance/00_basics/def_json/variables_bare_string.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_bare_string.cf
rename to tests/acceptance/00_basics/def_json/variables_bare_string.cf
diff --git a/tests/acceptance/00_basics/def.json/variables_bare_string.cf.json b/tests/acceptance/00_basics/def_json/variables_bare_string.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_bare_string.cf.json
rename to tests/acceptance/00_basics/def_json/variables_bare_string.cf.json
diff --git a/tests/acceptance/00_basics/def.json/variables_with_bundle.cf b/tests/acceptance/00_basics/def_json/variables_with_bundle.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_with_bundle.cf
rename to tests/acceptance/00_basics/def_json/variables_with_bundle.cf
diff --git a/tests/acceptance/00_basics/def.json/variables_with_bundle.cf.json b/tests/acceptance/00_basics/def_json/variables_with_bundle.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_with_bundle.cf.json
rename to tests/acceptance/00_basics/def_json/variables_with_bundle.cf.json
diff --git a/tests/acceptance/00_basics/def.json/variables_with_ns.cf b/tests/acceptance/00_basics/def_json/variables_with_ns.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_with_ns.cf
rename to tests/acceptance/00_basics/def_json/variables_with_ns.cf
diff --git a/tests/acceptance/00_basics/def.json/variables_with_ns.cf.json b/tests/acceptance/00_basics/def_json/variables_with_ns.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/variables_with_ns.cf.json
rename to tests/acceptance/00_basics/def_json/variables_with_ns.cf.json
diff --git a/tests/acceptance/00_basics/def.json/vars.cf b/tests/acceptance/00_basics/def_json/vars.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/vars.cf
rename to tests/acceptance/00_basics/def_json/vars.cf
diff --git a/tests/acceptance/00_basics/def.json/vars.cf.json b/tests/acceptance/00_basics/def_json/vars.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/vars.cf.json
rename to tests/acceptance/00_basics/def_json/vars.cf.json
diff --git a/tests/acceptance/00_basics/def.json/vars_with_bundle.cf b/tests/acceptance/00_basics/def_json/vars_with_bundle.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/vars_with_bundle.cf
rename to tests/acceptance/00_basics/def_json/vars_with_bundle.cf
diff --git a/tests/acceptance/00_basics/def.json/vars_with_bundle.cf.json b/tests/acceptance/00_basics/def_json/vars_with_bundle.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/vars_with_bundle.cf.json
rename to tests/acceptance/00_basics/def_json/vars_with_bundle.cf.json
diff --git a/tests/acceptance/00_basics/def.json/vars_with_ns.cf b/tests/acceptance/00_basics/def_json/vars_with_ns.cf
similarity index 100%
rename from tests/acceptance/00_basics/def.json/vars_with_ns.cf
rename to tests/acceptance/00_basics/def_json/vars_with_ns.cf
diff --git a/tests/acceptance/00_basics/def.json/vars_with_ns.cf.json b/tests/acceptance/00_basics/def_json/vars_with_ns.cf.json
similarity index 100%
rename from tests/acceptance/00_basics/def.json/vars_with_ns.cf.json
rename to tests/acceptance/00_basics/def_json/vars_with_ns.cf.json
diff --git a/tests/acceptance/01_vars/01_basic/013.cf b/tests/acceptance/01_vars/01_basic/013.error.pass.cf
similarity index 88%
rename from tests/acceptance/01_vars/01_basic/013.cf
rename to tests/acceptance/01_vars/01_basic/013.error.pass.cf
index 4bf5fdfc56c..87d40432ef9 100644
--- a/tests/acceptance/01_vars/01_basic/013.cf
+++ b/tests/acceptance/01_vars/01_basic/013.error.pass.cf
@@ -2,6 +2,10 @@
#
# Test that 'classes' body works on 'vars' promises
#
+# This is an .error.pass.cf test, because execresult() of the
+# non-existent '/nonexisting' fails on purpose and logs errors, to test
+# that repair_failed classes are set.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/01_basic/can_not_define_variables_in_remote_bundles.cf b/tests/acceptance/01_vars/01_basic/can_not_define_variables_in_remote_bundles.error.pass.cf
similarity index 93%
rename from tests/acceptance/01_vars/01_basic/can_not_define_variables_in_remote_bundles.cf
rename to tests/acceptance/01_vars/01_basic/can_not_define_variables_in_remote_bundles.error.pass.cf
index ea9f92b962f..aba335f5e66 100644
--- a/tests/acceptance/01_vars/01_basic/can_not_define_variables_in_remote_bundles.cf
+++ b/tests/acceptance/01_vars/01_basic/can_not_define_variables_in_remote_bundles.error.pass.cf
@@ -2,6 +2,10 @@
#
# Test that it is invalid to define variables in remote bundles
#
+# This is an .error.pass.cf test, because defining a variable in a
+# remote bundle is rejected with errors, which is what this test checks
+# (CFE-1915).
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/01_basic/this_promiser_with_readjson.cf b/tests/acceptance/01_vars/01_basic/this_promiser_with_readjson.cf
index 60cfff7563f..4d7d32a549b 100644
--- a/tests/acceptance/01_vars/01_basic/this_promiser_with_readjson.cf
+++ b/tests/acceptance/01_vars/01_basic/this_promiser_with_readjson.cf
@@ -26,7 +26,8 @@ bundle agent test
{
vars:
"cf_promises_validated"
- data => readjson("$(G.testfile).$(this.promiser)", 1K);
+ data => readjson("$(G.testfile).$(this.promiser)", 1K),
+ if => fileexists("$(G.testfile).$(this.promiser)");
"printable" string => format("%S", "cf_promises_validated");
diff --git a/tests/acceptance/01_vars/02_functions/006.cf b/tests/acceptance/01_vars/02_functions/006.error.pass.cf
similarity index 91%
rename from tests/acceptance/01_vars/02_functions/006.cf
rename to tests/acceptance/01_vars/02_functions/006.error.pass.cf
index 62914fdb892..63d85cbeb29 100644
--- a/tests/acceptance/01_vars/02_functions/006.cf
+++ b/tests/acceptance/01_vars/02_functions/006.error.pass.cf
@@ -2,6 +2,9 @@
#
# Test diskfree()
#
+# This is an .error.pass.cf test, because diskfree() is called on the
+# non-existent path '/lkjqeroiu' on purpose and logs an error.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/02_functions/011.cf b/tests/acceptance/01_vars/02_functions/011.cf
index 0405b37d51a..b9a7aebe1e6 100644
--- a/tests/acceptance/01_vars/02_functions/011.cf
+++ b/tests/acceptance/01_vars/02_functions/011.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/012.cf b/tests/acceptance/01_vars/02_functions/012.cf
index 6ace98654cb..7ce4aa0c051 100644
--- a/tests/acceptance/01_vars/02_functions/012.cf
+++ b/tests/acceptance/01_vars/02_functions/012.cf
@@ -38,7 +38,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/013.cf b/tests/acceptance/01_vars/02_functions/013.cf
index 1708bbaddc0..37821656b07 100644
--- a/tests/acceptance/01_vars/02_functions/013.cf
+++ b/tests/acceptance/01_vars/02_functions/013.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/014.cf b/tests/acceptance/01_vars/02_functions/014.cf
index 716e8873390..ba82a13c2bc 100644
--- a/tests/acceptance/01_vars/02_functions/014.cf
+++ b/tests/acceptance/01_vars/02_functions/014.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\.", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\.", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/015.cf b/tests/acceptance/01_vars/02_functions/015.cf
index c515ba037d5..9071d657bdc 100644
--- a/tests/acceptance/01_vars/02_functions/015.cf
+++ b/tests/acceptance/01_vars/02_functions/015.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/016.cf b/tests/acceptance/01_vars/02_functions/016.cf
index 0688544a875..c646ecc710f 100644
--- a/tests/acceptance/01_vars/02_functions/016.cf
+++ b/tests/acceptance/01_vars/02_functions/016.cf
@@ -38,7 +38,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/017.cf b/tests/acceptance/01_vars/02_functions/017.cf
index b9cfa15a1bc..3a61a27d7e5 100644
--- a/tests/acceptance/01_vars/02_functions/017.cf
+++ b/tests/acceptance/01_vars/02_functions/017.cf
@@ -38,7 +38,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/018.cf b/tests/acceptance/01_vars/02_functions/018.cf
index d72de43df26..29a8a437490 100644
--- a/tests/acceptance/01_vars/02_functions/018.cf
+++ b/tests/acceptance/01_vars/02_functions/018.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/019.cf b/tests/acceptance/01_vars/02_functions/019.cf
index 6b1af5b6871..ce2cd9145e0 100644
--- a/tests/acceptance/01_vars/02_functions/019.cf
+++ b/tests/acceptance/01_vars/02_functions/019.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "X", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "X", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/020.cf b/tests/acceptance/01_vars/02_functions/020.cf
index cc59c326708..2429c9eb059 100644
--- a/tests/acceptance/01_vars/02_functions/020.cf
+++ b/tests/acceptance/01_vars/02_functions/020.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", "\s", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", "\s", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/021.cf b/tests/acceptance/01_vars/02_functions/021.cf
index 8032a987cc5..1e86c7e129e 100644
--- a/tests/acceptance/01_vars/02_functions/021.cf
+++ b/tests/acceptance/01_vars/02_functions/021.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" slist => readstringlist("$(G.testfile)", "NoComment", ",", 5, 100);
+ "nums"
+ slist => readstringlist("$(G.testfile)", "NoComment", ",", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/024.cf b/tests/acceptance/01_vars/02_functions/024.cf
index 74df030785c..fa2da9fc34b 100644
--- a/tests/acceptance/01_vars/02_functions/024.cf
+++ b/tests/acceptance/01_vars/02_functions/024.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/025.cf b/tests/acceptance/01_vars/02_functions/025.cf
index 3d6351e52c1..b138c0f236c 100644
--- a/tests/acceptance/01_vars/02_functions/025.cf
+++ b/tests/acceptance/01_vars/02_functions/025.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/026.cf b/tests/acceptance/01_vars/02_functions/026.cf
index 50b0cf1ec32..20a3158df7a 100644
--- a/tests/acceptance/01_vars/02_functions/026.cf
+++ b/tests/acceptance/01_vars/02_functions/026.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/027.cf b/tests/acceptance/01_vars/02_functions/027.cf
index 55a80306d4f..84930ea5a8a 100644
--- a/tests/acceptance/01_vars/02_functions/027.cf
+++ b/tests/acceptance/01_vars/02_functions/027.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\.", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\.", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/028.cf b/tests/acceptance/01_vars/02_functions/028.cf
index 322b4fa70a3..7ac8f774d9b 100644
--- a/tests/acceptance/01_vars/02_functions/028.cf
+++ b/tests/acceptance/01_vars/02_functions/028.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/029.cf b/tests/acceptance/01_vars/02_functions/029.cf
index 3a746744265..09ff4b92689 100644
--- a/tests/acceptance/01_vars/02_functions/029.cf
+++ b/tests/acceptance/01_vars/02_functions/029.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/030.cf b/tests/acceptance/01_vars/02_functions/030.cf
index c5e438f364f..83d89216bf1 100644
--- a/tests/acceptance/01_vars/02_functions/030.cf
+++ b/tests/acceptance/01_vars/02_functions/030.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/031.cf b/tests/acceptance/01_vars/02_functions/031.cf
index d40f59a1035..2fb7d1e63f9 100644
--- a/tests/acceptance/01_vars/02_functions/031.cf
+++ b/tests/acceptance/01_vars/02_functions/031.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/032.cf b/tests/acceptance/01_vars/02_functions/032.cf
index 742c4e4f0b2..2827c7dd1b5 100644
--- a/tests/acceptance/01_vars/02_functions/032.cf
+++ b/tests/acceptance/01_vars/02_functions/032.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "X", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "X", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/033.cf b/tests/acceptance/01_vars/02_functions/033.cf
index e90f323f897..59680fe18f8 100644
--- a/tests/acceptance/01_vars/02_functions/033.cf
+++ b/tests/acceptance/01_vars/02_functions/033.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", "\s", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", "\s", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/034.cf b/tests/acceptance/01_vars/02_functions/034.cf
index e9d1dbfafcf..7ac2dcfaef1 100644
--- a/tests/acceptance/01_vars/02_functions/034.cf
+++ b/tests/acceptance/01_vars/02_functions/034.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" ilist => readintlist("$(G.testfile)", "NoComment", ",", 5, 100);
+ "nums"
+ ilist => readintlist("$(G.testfile)", "NoComment", ",", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/037.cf b/tests/acceptance/01_vars/02_functions/037.cf
index 770c373c58c..860710e89d7 100644
--- a/tests/acceptance/01_vars/02_functions/037.cf
+++ b/tests/acceptance/01_vars/02_functions/037.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/038.cf b/tests/acceptance/01_vars/02_functions/038.cf
index 26eabcf4638..303a3915e56 100644
--- a/tests/acceptance/01_vars/02_functions/038.cf
+++ b/tests/acceptance/01_vars/02_functions/038.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/039.cf b/tests/acceptance/01_vars/02_functions/039.cf
index 53dd4046be4..0e67007ee63 100644
--- a/tests/acceptance/01_vars/02_functions/039.cf
+++ b/tests/acceptance/01_vars/02_functions/039.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/040.cf b/tests/acceptance/01_vars/02_functions/040.cf
index 3ba0f3c2dba..5b8cee5c36a 100644
--- a/tests/acceptance/01_vars/02_functions/040.cf
+++ b/tests/acceptance/01_vars/02_functions/040.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\.", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\.", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/041.cf b/tests/acceptance/01_vars/02_functions/041.cf
index 61608635fd5..99c50764f8e 100644
--- a/tests/acceptance/01_vars/02_functions/041.cf
+++ b/tests/acceptance/01_vars/02_functions/041.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/042.cf b/tests/acceptance/01_vars/02_functions/042.cf
index ee96964fae0..bbd55f03c90 100644
--- a/tests/acceptance/01_vars/02_functions/042.cf
+++ b/tests/acceptance/01_vars/02_functions/042.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/043.cf b/tests/acceptance/01_vars/02_functions/043.cf
index 7a9427aed85..27fcc3ddfb3 100644
--- a/tests/acceptance/01_vars/02_functions/043.cf
+++ b/tests/acceptance/01_vars/02_functions/043.cf
@@ -37,7 +37,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/044.cf b/tests/acceptance/01_vars/02_functions/044.cf
index 6b0e85e0c7f..81690b5133d 100644
--- a/tests/acceptance/01_vars/02_functions/044.cf
+++ b/tests/acceptance/01_vars/02_functions/044.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s+", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/045.cf b/tests/acceptance/01_vars/02_functions/045.cf
index 0cddcd75623..5fe7c79764e 100644
--- a/tests/acceptance/01_vars/02_functions/045.cf
+++ b/tests/acceptance/01_vars/02_functions/045.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "X", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "X", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/046.cf b/tests/acceptance/01_vars/02_functions/046.cf
index 41a076f5609..895e665f796 100644
--- a/tests/acceptance/01_vars/02_functions/046.cf
+++ b/tests/acceptance/01_vars/02_functions/046.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\s", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\s", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/047.cf b/tests/acceptance/01_vars/02_functions/047.cf
index c8c73e774ed..456b7637def 100644
--- a/tests/acceptance/01_vars/02_functions/047.cf
+++ b/tests/acceptance/01_vars/02_functions/047.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", ",", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", ",", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/050.cf b/tests/acceptance/01_vars/02_functions/050.cf
index b0d9b0b64db..659225ef5d5 100644
--- a/tests/acceptance/01_vars/02_functions/050.cf
+++ b/tests/acceptance/01_vars/02_functions/050.cf
@@ -36,7 +36,10 @@ body delete init_delete
bundle agent test
{
vars:
- "nums" rlist => readreallist("$(G.testfile)", "NoComment", "\.", 5, 100);
+ "nums"
+ rlist => readreallist("$(G.testfile)", "NoComment", "\.", 5, 100),
+ if => fileexists("$(G.testfile)");
+
"sum" real => sum("nums");
}
diff --git a/tests/acceptance/01_vars/02_functions/400.cf b/tests/acceptance/01_vars/02_functions/400.cf
index bc6edf6d783..da20512b37c 100644
--- a/tests/acceptance/01_vars/02_functions/400.cf
+++ b/tests/acceptance/01_vars/02_functions/400.cf
@@ -45,7 +45,8 @@ bundle agent test
"cnt"
int => readstringarray(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/401.cf b/tests/acceptance/01_vars/02_functions/401.cf
index fd2f2da1be3..f06d4999a61 100644
--- a/tests/acceptance/01_vars/02_functions/401.cf
+++ b/tests/acceptance/01_vars/02_functions/401.cf
@@ -45,7 +45,8 @@ bundle agent test
"cnt"
int => readstringarray(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/410.cf b/tests/acceptance/01_vars/02_functions/410.cf
index 2937dd75310..3a0fa32e4bf 100644
--- a/tests/acceptance/01_vars/02_functions/410.cf
+++ b/tests/acceptance/01_vars/02_functions/410.cf
@@ -48,7 +48,10 @@ body delete init_delete
bundle agent test
{
vars:
- "cnt" int => readstringarray("ary", "$(G.testfile)", "^#.*", ":+", 10, 14);
+ "cnt"
+ int => readstringarray("ary", "$(G.testfile)", "^#.*", ":+", 10, 14),
+ if => fileexists("$(G.testfile)");
+
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/420.cf b/tests/acceptance/01_vars/02_functions/420.cf
index 634072f50f1..fb6947473ea 100644
--- a/tests/acceptance/01_vars/02_functions/420.cf
+++ b/tests/acceptance/01_vars/02_functions/420.cf
@@ -42,7 +42,9 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
"cnt"
int => parsestringarray("ary", "$(teststr)", "NoComment", ":", 10, 1000);
diff --git a/tests/acceptance/01_vars/02_functions/421.cf b/tests/acceptance/01_vars/02_functions/421.cf
index 9891f76758a..d571a65a372 100644
--- a/tests/acceptance/01_vars/02_functions/421.cf
+++ b/tests/acceptance/01_vars/02_functions/421.cf
@@ -42,7 +42,9 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
"cnt"
int => parsestringarray("ary", "$(teststr)", "NoComment", ":", 10, 1000);
diff --git a/tests/acceptance/01_vars/02_functions/440.cf b/tests/acceptance/01_vars/02_functions/440.cf
index 3ffe141d7b8..93c2839d1c8 100644
--- a/tests/acceptance/01_vars/02_functions/440.cf
+++ b/tests/acceptance/01_vars/02_functions/440.cf
@@ -45,7 +45,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/441.cf b/tests/acceptance/01_vars/02_functions/441.cf
index 3a71cff5cd7..639d1e48cc5 100644
--- a/tests/acceptance/01_vars/02_functions/441.cf
+++ b/tests/acceptance/01_vars/02_functions/441.cf
@@ -45,7 +45,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/442.cf b/tests/acceptance/01_vars/02_functions/442.cf
index 284a6f7357c..bd9d0ae93fb 100644
--- a/tests/acceptance/01_vars/02_functions/442.cf
+++ b/tests/acceptance/01_vars/02_functions/442.cf
@@ -46,7 +46,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "4";
}
diff --git a/tests/acceptance/01_vars/02_functions/443.cf b/tests/acceptance/01_vars/02_functions/443.cf
index 5663b905fb1..ef4bd364ef4 100644
--- a/tests/acceptance/01_vars/02_functions/443.cf
+++ b/tests/acceptance/01_vars/02_functions/443.cf
@@ -53,7 +53,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "4";
}
diff --git a/tests/acceptance/01_vars/02_functions/444.cf b/tests/acceptance/01_vars/02_functions/444.cf
index 5e384aabbd9..2a138207d9f 100644
--- a/tests/acceptance/01_vars/02_functions/444.cf
+++ b/tests/acceptance/01_vars/02_functions/444.cf
@@ -51,7 +51,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "9";
}
diff --git a/tests/acceptance/01_vars/02_functions/445.cf b/tests/acceptance/01_vars/02_functions/445.cf
index 82be099cc04..89b95d24738 100644
--- a/tests/acceptance/01_vars/02_functions/445.cf
+++ b/tests/acceptance/01_vars/02_functions/445.cf
@@ -54,7 +54,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 10, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "9";
}
diff --git a/tests/acceptance/01_vars/02_functions/447.cf b/tests/acceptance/01_vars/02_functions/447.cf
index 517919c7918..43379594bbf 100644
--- a/tests/acceptance/01_vars/02_functions/447.cf
+++ b/tests/acceptance/01_vars/02_functions/447.cf
@@ -48,7 +48,10 @@ body delete init_delete
bundle agent test
{
vars:
- "cnt" int => readstringarrayidx("ary", "$(G.testfile)", "", ":", 10, 1000);
+ "cnt"
+ int => readstringarrayidx("ary", "$(G.testfile)", "", ":", 10, 1000),
+ if => fileexists("$(G.testfile)");
+
"num" int => "9";
}
diff --git a/tests/acceptance/01_vars/02_functions/450.cf b/tests/acceptance/01_vars/02_functions/450.cf
index c850c569dae..d686c41c1db 100644
--- a/tests/acceptance/01_vars/02_functions/450.cf
+++ b/tests/acceptance/01_vars/02_functions/450.cf
@@ -49,7 +49,8 @@ bundle agent test
{
vars:
"cnt"
- int => readstringarrayidx("ary", "$(G.testfile)", "^#.*", ":+", 10, 14);
+ int => readstringarrayidx("ary", "$(G.testfile)", "^#.*", ":+", 10, 14),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/500.cf b/tests/acceptance/01_vars/02_functions/500.cf
index 205241c3089..01148598230 100644
--- a/tests/acceptance/01_vars/02_functions/500.cf
+++ b/tests/acceptance/01_vars/02_functions/500.cf
@@ -42,7 +42,8 @@ bundle agent test
{
vars:
"cnt"
- int => readintarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000);
+ int => readintarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/501.cf b/tests/acceptance/01_vars/02_functions/501.cf
index 7c3c982d76e..ddaba1ac6e5 100644
--- a/tests/acceptance/01_vars/02_functions/501.cf
+++ b/tests/acceptance/01_vars/02_functions/501.cf
@@ -42,7 +42,8 @@ bundle agent test
{
vars:
"cnt"
- int => readintarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000);
+ int => readintarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/520.cf b/tests/acceptance/01_vars/02_functions/520.cf
index b54fc402132..b592f86c158 100644
--- a/tests/acceptance/01_vars/02_functions/520.cf
+++ b/tests/acceptance/01_vars/02_functions/520.cf
@@ -41,7 +41,10 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
+
"cnt" int => parseintarray("ary", "$(teststr)", "NoComment", ":", 10, 1000);
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/521.cf b/tests/acceptance/01_vars/02_functions/521.cf
index 12424b904fc..79bc5877efe 100644
--- a/tests/acceptance/01_vars/02_functions/521.cf
+++ b/tests/acceptance/01_vars/02_functions/521.cf
@@ -41,7 +41,10 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
+
"cnt" int => parseintarray("ary", "$(teststr)", "NoComment", ":", 10, 1000);
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/600.cf b/tests/acceptance/01_vars/02_functions/600.cf
index fb48a433696..b402e6dd99f 100644
--- a/tests/acceptance/01_vars/02_functions/600.cf
+++ b/tests/acceptance/01_vars/02_functions/600.cf
@@ -42,7 +42,8 @@ bundle agent test
{
vars:
"cnt"
- int => readrealarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000);
+ int => readrealarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/601.cf b/tests/acceptance/01_vars/02_functions/601.cf
index e19a254a1b0..843d72d1219 100644
--- a/tests/acceptance/01_vars/02_functions/601.cf
+++ b/tests/acceptance/01_vars/02_functions/601.cf
@@ -42,7 +42,8 @@ bundle agent test
{
vars:
"cnt"
- int => readrealarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000);
+ int => readrealarray("ary", "$(G.testfile)", "NoComment", ":", 10, 1000),
+ if => fileexists("$(G.testfile)");
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/620.cf b/tests/acceptance/01_vars/02_functions/620.cf
index 8ce3531136f..cdcb767c6ea 100644
--- a/tests/acceptance/01_vars/02_functions/620.cf
+++ b/tests/acceptance/01_vars/02_functions/620.cf
@@ -41,7 +41,9 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
"cnt"
int => parserealarray("ary", "$(teststr)", "NoComment", ":", 10, 1000);
diff --git a/tests/acceptance/01_vars/02_functions/621.cf b/tests/acceptance/01_vars/02_functions/621.cf
index 59d8b7eb462..db38a789d46 100644
--- a/tests/acceptance/01_vars/02_functions/621.cf
+++ b/tests/acceptance/01_vars/02_functions/621.cf
@@ -41,7 +41,9 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
"cnt"
int => parserealarray("ary", "$(teststr)", "NoComment", ":", 10, 1000);
diff --git a/tests/acceptance/01_vars/02_functions/CFE-2704-0.cf b/tests/acceptance/01_vars/02_functions/CFE-2704-0.error.pass.cf
similarity index 74%
rename from tests/acceptance/01_vars/02_functions/CFE-2704-0.cf
rename to tests/acceptance/01_vars/02_functions/CFE-2704-0.error.pass.cf
index 27b521a02bc..8ea6f4a21ca 100644
--- a/tests/acceptance/01_vars/02_functions/CFE-2704-0.cf
+++ b/tests/acceptance/01_vars/02_functions/CFE-2704-0.error.pass.cf
@@ -1,3 +1,6 @@
+# This is an .error.pass.cf test, because mergedata() is given data
+# which is not a container on purpose and logs an error, the test checks
+# that the agent does not crash.
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/01_vars/02_functions/CFE-2704-1.cf b/tests/acceptance/01_vars/02_functions/CFE-2704-1.error.pass.cf
similarity index 74%
rename from tests/acceptance/01_vars/02_functions/CFE-2704-1.cf
rename to tests/acceptance/01_vars/02_functions/CFE-2704-1.error.pass.cf
index a475b51d68f..7538a59b762 100644
--- a/tests/acceptance/01_vars/02_functions/CFE-2704-1.cf
+++ b/tests/acceptance/01_vars/02_functions/CFE-2704-1.error.pass.cf
@@ -1,3 +1,6 @@
+# This is an .error.pass.cf test, because mergedata() is given data
+# which is not a container on purpose and logs an error, the test checks
+# that the agent does not crash.
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/01_vars/02_functions/classfilterdata_collecting.cf b/tests/acceptance/01_vars/02_functions/classfilterdata_collecting.cf
index 88ea0d29e6d..8b2cbc66bc2 100644
--- a/tests/acceptance/01_vars/02_functions/classfilterdata_collecting.cf
+++ b/tests/acceptance/01_vars/02_functions/classfilterdata_collecting.cf
@@ -44,7 +44,8 @@ bundle agent test
vars:
"filtered"
- data => classfilterdata(readjson("$(G.testfile).json"), "auto", "if");
+ data => classfilterdata(readjson("$(G.testfile).json"), "auto", "if"),
+ if => fileexists("$(G.testfile).json");
}
bundle agent check
diff --git a/tests/acceptance/01_vars/02_functions/countlinesmatching_errors_on_absent_file.cf b/tests/acceptance/01_vars/02_functions/countlinesmatching_errors_on_absent_file.cf
index 7df7778733f..3b2766f3932 100644
--- a/tests/acceptance/01_vars/02_functions/countlinesmatching_errors_on_absent_file.cf
+++ b/tests/acceptance/01_vars/02_functions/countlinesmatching_errors_on_absent_file.cf
@@ -25,7 +25,7 @@ bundle agent test
vars:
"subout"
string => execresult(
- "$(sys.cf_agent) -Kv --define AUTO -f $(this.promise_dirname)/countlinesmatching_returns_0_on_inaccessable_file.cf 2>&1 | $(G.grep) countlinesmatching",
+ "$(sys.cf_agent) -Kv --define AUTO -f $(this.promise_dirname)/countlinesmatching_returns_0_on_inaccessable_file.error.pass.cf 2>&1 | $(G.grep) countlinesmatching",
"useshell"
);
}
diff --git a/tests/acceptance/01_vars/02_functions/countlinesmatching_returns_0_on_inaccessable_file.cf b/tests/acceptance/01_vars/02_functions/countlinesmatching_returns_0_on_inaccessable_file.error.pass.cf
similarity index 89%
rename from tests/acceptance/01_vars/02_functions/countlinesmatching_returns_0_on_inaccessable_file.cf
rename to tests/acceptance/01_vars/02_functions/countlinesmatching_returns_0_on_inaccessable_file.error.pass.cf
index 514d65a20aa..87f5a3769c7 100644
--- a/tests/acceptance/01_vars/02_functions/countlinesmatching_returns_0_on_inaccessable_file.cf
+++ b/tests/acceptance/01_vars/02_functions/countlinesmatching_returns_0_on_inaccessable_file.error.pass.cf
@@ -2,6 +2,9 @@
#
# Test countlinesmatching() with some kind of failure expected
#
+# This is an .error.pass.cf test, because countlinesmatching() is called
+# on an inaccessible file on purpose and logs an error.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/02_functions/execresult_action_immediate.cf b/tests/acceptance/01_vars/02_functions/execresult_action_immediate.cf
index 0181e9569e6..1e0634a6098 100644
--- a/tests/acceptance/01_vars/02_functions/execresult_action_immediate.cf
+++ b/tests/acceptance/01_vars/02_functions/execresult_action_immediate.cf
@@ -7,14 +7,23 @@ body common control
version => "1.0";
}
+# The 'immediate' body comes from plucked.sub.cf, which is not loaded yet when
+# the policy is pre-evaluated, so promises using it are skipped until then
+bundle common framework
+{
+ classes:
+ "framework_loaded" expression => isvariable("G.testdir");
+}
+
bundle agent check_date(x)
{
vars:
"reports_file" string => "$(G.testdir)/execresult_action_immediate_report";
- "date"
- string => execresult("date; sleep 1", "useshell"),
- action => immediate;
+ framework_loaded::
+ "date"
+ string => execresult("date; sleep 1", "useshell"),
+ action => immediate;
reports:
"Date for ${x}: ${date}" report_to_file => "$(reports_file)";
@@ -41,7 +50,8 @@ bundle agent check
"content"
slist => readstringlist(
"$(check_date.reports_file)", "", '$(const.n)', inf, inf
- );
+ ),
+ if => fileexists("$(check_date.reports_file)");
"count" int => length(content);
diff --git a/tests/acceptance/01_vars/02_functions/findfiles_up.cf b/tests/acceptance/01_vars/02_functions/findfiles_up.cf
index f8ac71214c2..3cfd153bb36 100755
--- a/tests/acceptance/01_vars/02_functions/findfiles_up.cf
+++ b/tests/acceptance/01_vars/02_functions/findfiles_up.cf
@@ -46,27 +46,34 @@ bundle agent test
"t1"
data => findfiles_up(
"$(G.testdir)/core/libntech/libutils/", ".gitignore", "inf"
- );
+ ),
+ if => isdir("$(G.testdir)/core/libntech/libutils/");
"t2"
- data => findfiles_up("$(G.testdir)/core/libntech/libutils/", "string.?");
+ data => findfiles_up("$(G.testdir)/core/libntech/libutils/", "string.?"),
+ if => isdir("$(G.testdir)/core/libntech/libutils/");
- "t3" data => findfiles_up("$(G.testdir)/core/libntech/libutils/", ".git/");
+ "t3"
+ data => findfiles_up("$(G.testdir)/core/libntech/libutils/", ".git/"),
+ if => isdir("$(G.testdir)/core/libntech/libutils/");
"t4"
data => findfiles_up(
"$(G.testdir)/core/libntech/libutils/", ".git/", "1"
- );
+ ),
+ if => isdir("$(G.testdir)/core/libntech/libutils/");
"t5"
data => findfiles_up(
"$(G.testdir)/core/libntech/libutils/", ".git/config"
- );
+ ),
+ if => isdir("$(G.testdir)/core/libntech/libutils/");
"t6"
data => findfiles_up(
"$(G.testdir)/core/libntech/libutils/", "*/cf?{lex,parse}.[ly]"
- );
+ ),
+ if => isdir("$(G.testdir)/core/libntech/libutils/");
}
bundle agent check
diff --git a/tests/acceptance/01_vars/02_functions/getfields.cf b/tests/acceptance/01_vars/02_functions/getfields.cf
index 7af6fdbd12d..037a0e86e59 100644
--- a/tests/acceptance/01_vars/02_functions/getfields.cf
+++ b/tests/acceptance/01_vars/02_functions/getfields.cf
@@ -41,7 +41,9 @@ body delete init_delete
bundle agent test
{
vars:
- "num_matching" int => getfields("t.*", "$(G.testfile)", ":", "fields");
+ "num_matching"
+ int => getfields("t.*", "$(G.testfile)", ":", "fields"),
+ if => fileexists("$(G.testfile)");
}
#######################################################
diff --git a/tests/acceptance/01_vars/02_functions/ifelse.cf b/tests/acceptance/01_vars/02_functions/ifelse.cf
index bc3ffe9fadb..55a6d7b9910 100644
--- a/tests/acceptance/01_vars/02_functions/ifelse.cf
+++ b/tests/acceptance/01_vars/02_functions/ifelse.cf
@@ -35,9 +35,9 @@ bundle agent test
"five"
string => ifelse(
- "this is not true",
+ "this_is_not_true",
"5 parameters broken",
- "this is also not true",
+ "this_is_also_not_true",
"5 parameters broken 2",
"5 parameters OK"
);
diff --git a/tests/acceptance/01_vars/02_functions/long_string_from_text_file.cf b/tests/acceptance/01_vars/02_functions/long_string_from_text_file.cf
index 80ecfd7f317..9c0ff0128b3 100644
--- a/tests/acceptance/01_vars/02_functions/long_string_from_text_file.cf
+++ b/tests/acceptance/01_vars/02_functions/long_string_from_text_file.cf
@@ -26,7 +26,10 @@ bundle agent test
{
vars:
"keyfile" string => "$(G.testfile).data";
- "keys" slist => readstringlist("$(keyfile)", "#[^\n]*", "\n", 10, 3072);
+
+ "keys"
+ slist => readstringlist("$(keyfile)", "#[^\n]*", "\n", 10, 3072),
+ if => fileexists("$(keyfile)");
}
#######################################################
diff --git a/tests/acceptance/01_vars/02_functions/lsdir.cf b/tests/acceptance/01_vars/02_functions/lsdir.error.pass.cf
similarity index 94%
rename from tests/acceptance/01_vars/02_functions/lsdir.cf
rename to tests/acceptance/01_vars/02_functions/lsdir.error.pass.cf
index 50c103319b2..773dfd6caa2 100644
--- a/tests/acceptance/01_vars/02_functions/lsdir.cf
+++ b/tests/acceptance/01_vars/02_functions/lsdir.error.pass.cf
@@ -2,6 +2,9 @@
#
# Test lsdir()
#
+# This is an .error.pass.cf test, because lsdir() is called on the
+# non-existent directory '$(G.testdir)/b' on purpose and logs an error.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/02_functions/mapdata_json_pipe.cf b/tests/acceptance/01_vars/02_functions/mapdata_json_pipe.cf
index 1a3d32ece7d..3f354cc6b33 100644
--- a/tests/acceptance/01_vars/02_functions/mapdata_json_pipe.cf
+++ b/tests/acceptance/01_vars/02_functions/mapdata_json_pipe.cf
@@ -19,7 +19,12 @@ bundle agent test
vars:
"items" data => '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}';
- "items_passthrough" data => mapdata("json_pipe", "$(G.cat)", items);
+
+ # G comes from dynamically loaded dcs.sub.cf, so $(G.cat) is unresolved
+ # during pre-evaluation and json_pipe would execute it literally
+ "items_passthrough"
+ data => mapdata("json_pipe", "$(G.cat)", items),
+ if => isvariable("G.cat");
"items_jqinput"
data => mapdata(
diff --git a/tests/acceptance/01_vars/02_functions/nth_datacontainer.cf b/tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf
similarity index 94%
rename from tests/acceptance/01_vars/02_functions/nth_datacontainer.cf
rename to tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf
index e6090255eeb..6b5101c360d 100644
--- a/tests/acceptance/01_vars/02_functions/nth_datacontainer.cf
+++ b/tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf
@@ -2,6 +2,10 @@
#
# Test nth() with data container input
#
+# This is an .error.pass.cf test, because nth() is called with keys
+# which are not valid list indices (e.g. 'foo' or '') on purpose and
+# logs errors.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/02_functions/nth_datacontainer.cf.expected b/tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf.expected
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/nth_datacontainer.cf.expected
rename to tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf.expected
diff --git a/tests/acceptance/01_vars/02_functions/nth_datacontainer.cf.json b/tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf.json
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/nth_datacontainer.cf.json
rename to tests/acceptance/01_vars/02_functions/nth_datacontainer.error.pass.cf.json
diff --git a/tests/acceptance/01_vars/02_functions/parsestringarray_dontread_comment_duplicate_lastline2.cf b/tests/acceptance/01_vars/02_functions/parsestringarray_dontread_comment_duplicate_lastline2.cf
index 643b67106ba..478a3eb0c63 100644
--- a/tests/acceptance/01_vars/02_functions/parsestringarray_dontread_comment_duplicate_lastline2.cf
+++ b/tests/acceptance/01_vars/02_functions/parsestringarray_dontread_comment_duplicate_lastline2.cf
@@ -51,7 +51,8 @@ bundle agent test
"cnt"
int => readstringarrayidx(
"ary", "$(G.testfile)", "NoComment", ":", 6, 1000
- );
+ ),
+ if => fileexists("$(G.testfile)");
"num" int => "6";
}
diff --git a/tests/acceptance/01_vars/02_functions/parsestringarray_weird_indices_real_comments_noemptyfields2.cf b/tests/acceptance/01_vars/02_functions/parsestringarray_weird_indices_real_comments_noemptyfields2.cf
index 801e3f09c2a..6443272ee0f 100644
--- a/tests/acceptance/01_vars/02_functions/parsestringarray_weird_indices_real_comments_noemptyfields2.cf
+++ b/tests/acceptance/01_vars/02_functions/parsestringarray_weird_indices_real_comments_noemptyfields2.cf
@@ -48,7 +48,10 @@ body delete init_delete
bundle agent test
{
vars:
- "teststr" string => readfile("$(G.testfile)", 1000);
+ "teststr"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
+
"cnt" int => parsestringarray("ary", "$(teststr)", "^#.*", ":+", 10, 14);
"num" int => "3";
}
diff --git a/tests/acceptance/01_vars/02_functions/peers.cf b/tests/acceptance/01_vars/02_functions/peers.cf
index 5b87f0b1cb4..e99d0373e91 100644
--- a/tests/acceptance/01_vars/02_functions/peers.cf
+++ b/tests/acceptance/01_vars/02_functions/peers.cf
@@ -56,10 +56,12 @@ bundle agent test
"subtests" ilist => { "0", "1", "2", "3", "4", "5" };
"peers_$(tests)_$(subtests)"
- slist => peers("$(G.testfile).$(tests)", "#.*", $(subtests));
+ slist => peers("$(G.testfile).$(tests)", "#.*", $(subtests)),
+ if => fileexists("$(G.testfile).$(tests)");
"peerleaders_$(tests)_$(subtests)"
- slist => peerleaders("$(G.testfile).$(tests)", "#.*", $(subtests));
+ slist => peerleaders("$(G.testfile).$(tests)", "#.*", $(subtests)),
+ if => fileexists("$(G.testfile).$(tests)");
"actual_peers_$(tests)_$(subtests)"
string => format("%S", "peers_$(tests)_$(subtests)");
@@ -68,7 +70,8 @@ bundle agent test
string => format("%S", "peerleaders_$(tests)_$(subtests)");
"actual_peerleader_$(tests)_$(subtests)"
- string => peerleader("$(G.testfile).$(tests)", "#.*", $(subtests));
+ string => peerleader("$(G.testfile).$(tests)", "#.*", $(subtests)),
+ if => fileexists("$(G.testfile).$(tests)");
}
#######################################################
diff --git a/tests/acceptance/01_vars/02_functions/read-file-endless-loop.cf b/tests/acceptance/01_vars/02_functions/read-file-endless-loop.error.pass.cf
similarity index 77%
rename from tests/acceptance/01_vars/02_functions/read-file-endless-loop.cf
rename to tests/acceptance/01_vars/02_functions/read-file-endless-loop.error.pass.cf
index 1cfaa98e160..46fe379f29d 100644
--- a/tests/acceptance/01_vars/02_functions/read-file-endless-loop.cf
+++ b/tests/acceptance/01_vars/02_functions/read-file-endless-loop.error.pass.cf
@@ -1,5 +1,9 @@
# Test that regline, getfields and countlinesmatching do not loop endlessly if
# supplied with a directory (Redmine #2453)
+#
+# This is an .error.pass.cf test, because regline(), getfields() and
+# countlinesmatching() are given the directory '/' on purpose and log
+# errors.
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/01_vars/02_functions/read_empty_file.cf b/tests/acceptance/01_vars/02_functions/read_empty_file.cf
index 1ce7d0bb4ca..ca4281153a6 100644
--- a/tests/acceptance/01_vars/02_functions/read_empty_file.cf
+++ b/tests/acceptance/01_vars/02_functions/read_empty_file.cf
@@ -15,8 +15,13 @@ bundle agent init
bundle agent test
{
vars:
- "value1" string => readfile("$(G.testfile)", 10000);
- "value2" string => readfile("$(G.testfile)", 0);
+ "value1"
+ string => readfile("$(G.testfile)", 10000),
+ if => fileexists("$(G.testfile)");
+
+ "value2"
+ string => readfile("$(G.testfile)", 0),
+ if => fileexists("$(G.testfile)");
}
bundle agent check
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf
similarity index 91%
rename from tests/acceptance/01_vars/02_functions/readdata.cf
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf
index 59767849337..09bba95c9ec 100644
--- a/tests/acceptance/01_vars/02_functions/readdata.cf
+++ b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf
@@ -2,6 +2,10 @@
#
# Test readdata() with YAML
#
+# This is an .error.pass.cf test, because readdata() is given data in a
+# format it cannot parse on purpose (the failed_* and guess_csv
+# variables) and logs errors.
+#
###########################################################
body common control
{
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf.csv b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.csv
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata.cf.csv
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.csv
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf.csv.guess b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.csv.guess
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata.cf.csv.guess
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.csv.guess
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf.env b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.env
similarity index 93%
rename from tests/acceptance/01_vars/02_functions/readdata.cf.env
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.env
index 71aaa7dd272..ac93f45f3d2 100644
--- a/tests/acceptance/01_vars/02_functions/readdata.cf.env
+++ b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.env
@@ -1,4 +1,4 @@
-# Example env file used for acceptance test readdata.cf
+# Example env file used for acceptance test readdata.error.pass.cf
# We can't test for all weird possibilites,
# but this should serve most use cases
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf.expected.json b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.expected.json
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata.cf.expected.json
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.expected.json
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf.json b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.json
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata.cf.json
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.json
diff --git a/tests/acceptance/01_vars/02_functions/readdata.cf.json.guess b/tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.json.guess
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata.cf.json.guess
rename to tests/acceptance/01_vars/02_functions/readdata.error.pass.cf.json.guess
diff --git a/tests/acceptance/01_vars/02_functions/readdata_yaml.cf b/tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf
similarity index 87%
rename from tests/acceptance/01_vars/02_functions/readdata_yaml.cf
rename to tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf
index 7e3fc3edd97..84922593d62 100644
--- a/tests/acceptance/01_vars/02_functions/readdata_yaml.cf
+++ b/tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf
@@ -2,6 +2,10 @@
#
# Test readdata() with YAML
#
+# This is an .error.pass.cf test, because readdata() is given data in a
+# format it cannot parse on purpose (the failed_explicit_yaml and
+# guess_yaml variables) and logs errors.
+#
###########################################################
body common control
{
diff --git a/tests/acceptance/01_vars/02_functions/readdata_yaml.cf.expected.json b/tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.expected.json
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata_yaml.cf.expected.json
rename to tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.expected.json
diff --git a/tests/acceptance/01_vars/02_functions/readdata_yaml.cf.yaml b/tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.yaml
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata_yaml.cf.yaml
rename to tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.yaml
diff --git a/tests/acceptance/01_vars/02_functions/readdata_yaml.cf.yaml.guess b/tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.yaml.guess
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata_yaml.cf.yaml.guess
rename to tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.yaml.guess
diff --git a/tests/acceptance/01_vars/02_functions/readdata_yaml.cf.yml b/tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.yml
similarity index 100%
rename from tests/acceptance/01_vars/02_functions/readdata_yaml.cf.yml
rename to tests/acceptance/01_vars/02_functions/readdata_yaml.error.pass.cf.yml
diff --git a/tests/acceptance/01_vars/02_functions/readstringarray_dontread_comment_duplicatekey_lastline.cf b/tests/acceptance/01_vars/02_functions/readstringarray_dontread_comment_duplicatekey_lastline.cf
index f9339fc69e5..2d9b30cc87b 100644
--- a/tests/acceptance/01_vars/02_functions/readstringarray_dontread_comment_duplicatekey_lastline.cf
+++ b/tests/acceptance/01_vars/02_functions/readstringarray_dontread_comment_duplicatekey_lastline.cf
@@ -49,7 +49,8 @@ bundle agent test
{
vars:
"cnt"
- int => readstringarray("ary", "$(G.testfile)", "NoComment", ":", 6, 1000);
+ int => readstringarray("ary", "$(G.testfile)", "NoComment", ":", 6, 1000),
+ if => fileexists("$(G.testfile)");
"num" int => "6";
}
diff --git a/tests/acceptance/01_vars/02_functions/readstringarrayidx_order.cf b/tests/acceptance/01_vars/02_functions/readstringarrayidx_order.cf
index 3d8236815ee..c8fd1b9a0b5 100644
--- a/tests/acceptance/01_vars/02_functions/readstringarrayidx_order.cf
+++ b/tests/acceptance/01_vars/02_functions/readstringarrayidx_order.cf
@@ -69,7 +69,8 @@ bundle agent test
"num"
int => readstringarrayidx(
"mylines", "$(G.testfile).orig.txt", "\s*#[^\n]*", "\s*;;\s*", 50, 9999
- );
+ ),
+ if => fileexists("$(G.testfile).orig.txt");
"file"
slist => {
diff --git a/tests/acceptance/01_vars/02_functions/regextract.cf b/tests/acceptance/01_vars/02_functions/regextract.cf
index ee882bc0969..ff7c86c7c9f 100644
--- a/tests/acceptance/01_vars/02_functions/regextract.cf
+++ b/tests/acceptance/01_vars/02_functions/regextract.cf
@@ -32,7 +32,10 @@ bundle agent test
"lefts" string => "$(init.pair[1])";
"lefti" int => "$(init.pair[1])";
"rights" string => "$(init.pair[2])";
- "rightr" real => "$(init.pair[2])";
+
+ "rightr"
+ real => "$(init.pair[2])",
+ if => isvariable("init.pair[2]");
}
#######################################################
diff --git a/tests/acceptance/01_vars/04_containers/mergecontainer_conflict.cf b/tests/acceptance/01_vars/04_containers/mergecontainer_conflict.error.pass.cf
similarity index 90%
rename from tests/acceptance/01_vars/04_containers/mergecontainer_conflict.cf
rename to tests/acceptance/01_vars/04_containers/mergecontainer_conflict.error.pass.cf
index 64c72b206a4..cf578d5dbdb 100644
--- a/tests/acceptance/01_vars/04_containers/mergecontainer_conflict.cf
+++ b/tests/acceptance/01_vars/04_containers/mergecontainer_conflict.error.pass.cf
@@ -2,6 +2,9 @@
#
# Test mergejson() with mismatched datas
#
+# This is an .error.pass.cf test, because parsejson() is given invalid
+# JSON on purpose and logs an error, so that mergedata() fails.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/04_containers/parseyaml_abuse.cf b/tests/acceptance/01_vars/04_containers/parseyaml_abuse.error.pass.cf
similarity index 87%
rename from tests/acceptance/01_vars/04_containers/parseyaml_abuse.cf
rename to tests/acceptance/01_vars/04_containers/parseyaml_abuse.error.pass.cf
index 316b0ac7576..0878b53f51a 100644
--- a/tests/acceptance/01_vars/04_containers/parseyaml_abuse.cf
+++ b/tests/acceptance/01_vars/04_containers/parseyaml_abuse.error.pass.cf
@@ -2,6 +2,9 @@
#
# Abuse parseyaml()
#
+# This is an .error.pass.cf test, because parseyaml() is given strings
+# which are not valid YAML containers on purpose and logs errors.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/01_vars/04_containers/readjson.cf b/tests/acceptance/01_vars/04_containers/readjson.cf
index a4a1998f314..4774201ddf4 100644
--- a/tests/acceptance/01_vars/04_containers/readjson.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson.cf
@@ -40,7 +40,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_arrays.cf b/tests/acceptance/01_vars/04_containers/readjson_arrays.cf
index 004676f31d4..6e96734d8ca 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_arrays.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_arrays.cf
@@ -43,7 +43,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_new.cf b/tests/acceptance/01_vars/04_containers/readjson_new.cf
index 6d453e4a67e..ebc1f19ff6b 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_new.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_new.cf
@@ -40,7 +40,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json");
+ "load"
+ data => readjson("$(G.testfile).json"),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_null.cf b/tests/acceptance/01_vars/04_containers/readjson_null.cf
index fed055cb2e3..e9115b410cc 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_null.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_null.cf
@@ -39,7 +39,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_objects.cf b/tests/acceptance/01_vars/04_containers/readjson_objects.cf
index 137670afd03..8ba8cf47110 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_objects.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_objects.cf
@@ -40,7 +40,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_scalar.cf b/tests/acceptance/01_vars/04_containers/readjson_scalar.cf
index f1fe8bc9172..859aee42cc2 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_scalar.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_scalar.cf
@@ -39,7 +39,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_subindex.cf b/tests/acceptance/01_vars/04_containers/readjson_subindex.cf
index 7cbdf379d2d..51f0ae06df6 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_subindex.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_subindex.cf
@@ -41,7 +41,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/01_vars/04_containers/readjson_subindex_quoted.cf b/tests/acceptance/01_vars/04_containers/readjson_subindex_quoted.cf
index 39e203f37df..dce9a2b4bf7 100644
--- a/tests/acceptance/01_vars/04_containers/readjson_subindex_quoted.cf
+++ b/tests/acceptance/01_vars/04_containers/readjson_subindex_quoted.cf
@@ -41,7 +41,9 @@ bundle edit_line init_insert_lines
bundle agent test
{
vars:
- "load" data => readjson("$(G.testfile).json", 1024);
+ "load"
+ data => readjson("$(G.testfile).json", 1024),
+ if => fileexists("$(G.testfile).json");
files:
"$(G.testfile).actual"
diff --git a/tests/acceptance/02_classes/01_basic/cancel_attribute_persistent_lmdb.cf b/tests/acceptance/02_classes/01_basic/cancel_attribute_persistent_lmdb.cf
index 27f78438256..e1f4ea95d87 100644
--- a/tests/acceptance/02_classes/01_basic/cancel_attribute_persistent_lmdb.cf
+++ b/tests/acceptance/02_classes/01_basic/cancel_attribute_persistent_lmdb.cf
@@ -58,8 +58,13 @@ bundle agent test
bundle agent check
{
vars:
- "before" string => readfile("$(G.testdir)/cancel_lmdb_before", 4096);
- "after" string => readfile("$(G.testdir)/cancel_lmdb_after", 4096);
+ "before"
+ string => readfile("$(G.testdir)/cancel_lmdb_before", 4096),
+ if => fileexists("$(G.testdir)/cancel_lmdb_before");
+
+ "after"
+ string => readfile("$(G.testdir)/cancel_lmdb_after", 4096),
+ if => fileexists("$(G.testdir)/cancel_lmdb_after");
classes:
# The class was stored in the LMDB by run 1 ...
diff --git a/tests/acceptance/02_classes/01_basic/common_bundle_select_class_empty_list.cf b/tests/acceptance/02_classes/01_basic/common_bundle_select_class_empty_list.error.pass.cf
similarity index 86%
rename from tests/acceptance/02_classes/01_basic/common_bundle_select_class_empty_list.cf
rename to tests/acceptance/02_classes/01_basic/common_bundle_select_class_empty_list.error.pass.cf
index d8e0d02a920..deabdd53c7e 100644
--- a/tests/acceptance/02_classes/01_basic/common_bundle_select_class_empty_list.cf
+++ b/tests/acceptance/02_classes/01_basic/common_bundle_select_class_empty_list.error.pass.cf
@@ -1,4 +1,7 @@
# Test that select_class is skipped when no classes are given
+#
+# This is an .error.pass.cf test, because select_class is given an empty
+# list on purpose and logs an error.
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/02_classes/01_basic/common_bundle_select_class_variable_expands_empty_list.cf b/tests/acceptance/02_classes/01_basic/common_bundle_select_class_variable_expands_empty_list.error.pass.cf
similarity index 81%
rename from tests/acceptance/02_classes/01_basic/common_bundle_select_class_variable_expands_empty_list.cf
rename to tests/acceptance/02_classes/01_basic/common_bundle_select_class_variable_expands_empty_list.error.pass.cf
index 833304f5120..cdf9cd73d8b 100644
--- a/tests/acceptance/02_classes/01_basic/common_bundle_select_class_variable_expands_empty_list.cf
+++ b/tests/acceptance/02_classes/01_basic/common_bundle_select_class_variable_expands_empty_list.error.pass.cf
@@ -1,4 +1,7 @@
# Test that select class is skipped when the list of classes is empty
+#
+# This is an .error.pass.cf test, because select_class is given a list
+# variable which expands to an empty list on purpose and logs an error.
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/02_classes/01_basic/persistent_timer_policy_default_lmdb.cf b/tests/acceptance/02_classes/01_basic/persistent_timer_policy_default_lmdb.cf
index 775c583ef04..d4e4841e2a5 100644
--- a/tests/acceptance/02_classes/01_basic/persistent_timer_policy_default_lmdb.cf
+++ b/tests/acceptance/02_classes/01_basic/persistent_timer_policy_default_lmdb.cf
@@ -78,9 +78,17 @@ bundle agent test
bundle agent check
{
vars:
- "policy" string => readfile("$(G.testdir)/lmdb_policy", 4096);
- "e1" string => readfile("$(G.testdir)/lmdb_expires1", 4096);
- "e2" string => readfile("$(G.testdir)/lmdb_expires2", 4096);
+ "policy"
+ string => readfile("$(G.testdir)/lmdb_policy", 4096),
+ if => fileexists("$(G.testdir)/lmdb_policy");
+
+ "e1"
+ string => readfile("$(G.testdir)/lmdb_expires1", 4096),
+ if => fileexists("$(G.testdir)/lmdb_expires1");
+
+ "e2"
+ string => readfile("$(G.testdir)/lmdb_expires2", 4096),
+ if => fileexists("$(G.testdir)/lmdb_expires2");
classes:
# #1 The default classes: promise stored its persistent class with
diff --git a/tests/acceptance/02_classes/02_functions/classesmatching_inherit_2.cf b/tests/acceptance/02_classes/02_functions/classesmatching_inherit_2.cf
index f0b25fa0685..8f661fa559d 100644
--- a/tests/acceptance/02_classes/02_functions/classesmatching_inherit_2.cf
+++ b/tests/acceptance/02_classes/02_functions/classesmatching_inherit_2.cf
@@ -59,7 +59,9 @@ bundle agent check
"defined_classes: defined_in_second$(const.n)"
);
- "actual" string => readfile("$(common.logfile)", inf);
+ "actual"
+ string => readfile("$(common.logfile)", inf),
+ if => fileexists("$(common.logfile)");
reports:
"$(this.promise_filename) Pass" if => strcmp($(expected), $(actual));
diff --git a/tests/acceptance/02_classes/02_functions/isipinsubnet-valid-ip.cf b/tests/acceptance/02_classes/02_functions/isipinsubnet-valid-ip.error.pass.cf
similarity index 92%
rename from tests/acceptance/02_classes/02_functions/isipinsubnet-valid-ip.cf
rename to tests/acceptance/02_classes/02_functions/isipinsubnet-valid-ip.error.pass.cf
index c23da722aea..d1929a2a910 100644
--- a/tests/acceptance/02_classes/02_functions/isipinsubnet-valid-ip.cf
+++ b/tests/acceptance/02_classes/02_functions/isipinsubnet-valid-ip.error.pass.cf
@@ -2,6 +2,9 @@
#
# Test isipinsubnet()
#
+# This is an .error.pass.cf test, because isipinsubnet() is given
+# 'not-an-ip-address' on purpose and logs an error.
+#
#######################################################
body common control
{
diff --git a/tests/acceptance/04_examples/syntax/check_syntax.cf b/tests/acceptance/04_examples/syntax/check_syntax.cf
index 347329a35a5..420f58e4f94 100644
--- a/tests/acceptance/04_examples/syntax/check_syntax.cf
+++ b/tests/acceptance/04_examples/syntax/check_syntax.cf
@@ -124,7 +124,7 @@ bundle agent test_example(file)
classes:
"failure_$(cfile)"
- not => returnszero("$(checker) $(file)", "noshell"),
+ not => returnszero("$(checker) $(file) >/dev/null 2>&1", "useshell"),
scope => "namespace";
reports:
diff --git a/tests/acceptance/05_processes/01_matching/process_select_fncalls.cf b/tests/acceptance/05_processes/01_matching/process_select_fncalls.error.pass.cf
similarity index 95%
rename from tests/acceptance/05_processes/01_matching/process_select_fncalls.cf
rename to tests/acceptance/05_processes/01_matching/process_select_fncalls.error.pass.cf
index 027efcc2828..cccdc262618 100644
--- a/tests/acceptance/05_processes/01_matching/process_select_fncalls.cf
+++ b/tests/acceptance/05_processes/01_matching/process_select_fncalls.error.pass.cf
@@ -1,3 +1,5 @@
+# This is an .error.pass.cf test, because getuid() is called for the
+# non-existent user 'nosuchuser' on purpose and logs errors (CFE-1968).
body common control
{
inputs => { "../../default.sub.cf" };
diff --git a/tests/acceptance/08_commands/arglist.cf b/tests/acceptance/08_commands/arglist.cf
index c86411e7173..bbf52686c0d 100644
--- a/tests/acceptance/08_commands/arglist.cf
+++ b/tests/acceptance/08_commands/arglist.cf
@@ -46,7 +46,10 @@ bundle agent test
bundle agent check
{
vars:
- "actual" string => readfile("$(G.testfile).actual");
+ "actual"
+ string => readfile("$(G.testfile).actual"),
+ if => fileexists("$(G.testfile).actual");
+
"expected" string => "one
two
three
diff --git a/tests/acceptance/10_files/02_maintain/changes_silent.cf b/tests/acceptance/10_files/02_maintain/changes_silent.cf
index db87d61d5c6..0a27de9e1cf 100644
--- a/tests/acceptance/10_files/02_maintain/changes_silent.cf
+++ b/tests/acceptance/10_files/02_maintain/changes_silent.cf
@@ -95,38 +95,47 @@ bundle agent check
"n_quiet_content"
int => countlinesmatching(
".*quiet_content\.txt,C,Content changed.*", "$(log)"
- );
+ ),
+ if => fileexists("$(log)");
"n_quiet_all_content"
int => countlinesmatching(
".*quiet_all\.txt,C,Content changed.*", "$(log)"
- );
+ ),
+ if => fileexists("$(log)");
"n_quiet_all_stats"
- int => countlinesmatching(".*quiet_all\.txt,S,.*", "$(log)");
+ int => countlinesmatching(".*quiet_all\.txt,S,.*", "$(log)"),
+ if => fileexists("$(log)");
classes:
- "leaked"
- expression => isgreaterthan(
- countlinesmatching(".*$(must_be_absent).*", "$(test.output)"), "0"
- );
-
- "missing"
- expression => islessthan(
- countlinesmatching(".*$(must_be_present).*", "$(test.output)"), "1"
- );
-
- "audit_ok"
- and => {
- isgreaterthan("$(n_quiet_content)", "0"),
- isgreaterthan("$(n_quiet_all_content)", "0"),
- isgreaterthan("$(n_quiet_all_stats)", "0"),
- };
+ # The output is read only once it exists, since the functions are also
+ # evaluated before the test bundle runs
+ "output_exists" expression => fileexists("$(test.output)");
+
+ output_exists::
+ "leaked"
+ expression => isgreaterthan(
+ countlinesmatching(".*$(must_be_absent).*", "$(test.output)"), "0"
+ );
+
+ "missing"
+ expression => islessthan(
+ countlinesmatching(".*$(must_be_present).*", "$(test.output)"), "1"
+ );
+
+ any::
+ "audit_ok"
+ and => {
+ isgreaterthan("$(n_quiet_content)", "0"),
+ isgreaterthan("$(n_quiet_all_content)", "0"),
+ isgreaterthan("$(n_quiet_all_stats)", "0"),
+ };
- "ok" and => { "!leaked", "!missing", "audit_ok" };
+ "ok" and => { "output_exists", "!leaked", "!missing", "audit_ok" };
reports:
- DEBUG::
+ DEBUG.output_exists::
"silence leaked an alert matching '$(must_be_absent)'"
if => isgreaterthan(
countlinesmatching(".*$(must_be_absent).*", "$(test.output)"), "0"
@@ -137,6 +146,7 @@ bundle agent check
countlinesmatching(".*$(must_be_present).*", "$(test.output)"), "1"
);
+ DEBUG::
"Output of $(this.promise_filename).sub is in '$(test.output)'";
DEBUG.!audit_ok::
diff --git a/tests/acceptance/10_files/09_insert_lines/multi-files-dirs.cf b/tests/acceptance/10_files/09_insert_lines/multi-files-dirs.cf
index 310c8a68553..9f0836b75d8 100644
--- a/tests/acceptance/10_files/09_insert_lines/multi-files-dirs.cf
+++ b/tests/acceptance/10_files/09_insert_lines/multi-files-dirs.cf
@@ -54,9 +54,18 @@ bundle agent check
vars:
"expect" string => "one two three test";
"results" slist => { "resultA", "resultB", "resultC" };
- "resultA" string => readfile("$(G.testdir)/dirA/testfa", "33");
- "resultB" string => readfile("$(G.testdir)/dirB/testfb", "33");
- "resultC" string => readfile("$(G.testdir)/dirC/testfc", "33");
+
+ "resultA"
+ string => readfile("$(G.testdir)/dirA/testfa", "33"),
+ if => fileexists("$(G.testdir)/dirA/testfa");
+
+ "resultB"
+ string => readfile("$(G.testdir)/dirB/testfb", "33"),
+ if => fileexists("$(G.testdir)/dirB/testfb");
+
+ "resultC"
+ string => readfile("$(G.testdir)/dirC/testfc", "33"),
+ if => fileexists("$(G.testdir)/dirC/testfc");
classes:
"ok_A" expression => strcmp("$(expect)", "$(resultA)");
diff --git a/tests/acceptance/10_files/09_insert_lines/preserve_block_blank_lines.cf b/tests/acceptance/10_files/09_insert_lines/preserve_block_blank_lines.cf
index 79810047971..c2c4e60f067 100644
--- a/tests/acceptance/10_files/09_insert_lines/preserve_block_blank_lines.cf
+++ b/tests/acceptance/10_files/09_insert_lines/preserve_block_blank_lines.cf
@@ -38,7 +38,10 @@ bundle agent check
Bad 3
";
- "actual" string => readfile("$(init.test_file)", "inf");
+
+ "actual"
+ string => readfile("$(init.test_file)", "inf"),
+ if => fileexists("$(init.test_file)");
classes:
"ok" expression => strcmp("$(expected)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/empty_template_empty_file.cf b/tests/acceptance/10_files/templating/empty_template_empty_file.cf
index de9a28342b7..f41409d8de4 100644
--- a/tests/acceptance/10_files/templating/empty_template_empty_file.cf
+++ b/tests/acceptance/10_files/templating/empty_template_empty_file.cf
@@ -53,7 +53,10 @@ bundle agent check
{
vars:
"expect" string => "";
- "actual" string => readfile("$(G.testfile)", 1000);
+
+ "actual"
+ string => readfile("$(G.testfile)", 1000),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => regcmp("$(expect)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/large_template_blocks.cf b/tests/acceptance/10_files/templating/large_template_blocks.cf
index 398a1f3028a..c6c77f527aa 100644
--- a/tests/acceptance/10_files/templating/large_template_blocks.cf
+++ b/tests/acceptance/10_files/templating/large_template_blocks.cf
@@ -50,7 +50,10 @@ bundle agent check
{
vars:
"expected" int => "110";
- "actual" int => countlinesmatching(".*0123456789.*", "$(G.testfile)");
+
+ "actual"
+ int => countlinesmatching(".*0123456789.*", "$(G.testfile)"),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => strcmp("$(expected)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/mustache_abuse.cf b/tests/acceptance/10_files/templating/mustache_abuse.cf
index a2b6eaa47d1..01ae5a2c531 100644
--- a/tests/acceptance/10_files/templating/mustache_abuse.cf
+++ b/tests/acceptance/10_files/templating/mustache_abuse.cf
@@ -99,7 +99,8 @@ bundle agent check
);
"actual_$(init.tests)"
- string => readfile("$(G.testfile).$(init.tests)", 10000);
+ string => readfile("$(G.testfile).$(init.tests)", 10000),
+ if => fileexists("$(G.testfile).$(init.tests)");
classes:
"ok_$(init.tests)"
diff --git a/tests/acceptance/10_files/templating/mustache_container_serialization.cf b/tests/acceptance/10_files/templating/mustache_container_serialization.cf
index e6fdfb8cbe0..b626ce3cea3 100644
--- a/tests/acceptance/10_files/templating/mustache_container_serialization.cf
+++ b/tests/acceptance/10_files/templating/mustache_container_serialization.cf
@@ -64,7 +64,10 @@ bundle edit_line readthem
{
vars:
"test" slist => { @(test.test) };
- "read_$(test)" string => readfile("$(G.testdir)/$(test)", 1k);
+
+ "read_$(test)"
+ string => readfile("$(G.testdir)/$(test)", 1k),
+ if => fileexists("$(G.testdir)/$(test)");
insert_lines:
"$(read_$(test))";
diff --git a/tests/acceptance/10_files/templating/mustache_datastate_demo.cf b/tests/acceptance/10_files/templating/mustache_datastate_demo.cf
index 0725484f444..ee5724997ab 100644
--- a/tests/acceptance/10_files/templating/mustache_datastate_demo.cf
+++ b/tests/acceptance/10_files/templating/mustache_datastate_demo.cf
@@ -101,7 +101,9 @@ bundle agent check
}"
';
- "actual" string => readfile("$(G.testfile)", inf);
+ "actual"
+ string => readfile("$(G.testfile)", inf),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => strcmp($(expect), $(actual));
diff --git a/tests/acceptance/10_files/templating/mustache_demo.cf b/tests/acceptance/10_files/templating/mustache_demo.cf
index 76bffa647e4..1e321f5bbb5 100644
--- a/tests/acceptance/10_files/templating/mustache_demo.cf
+++ b/tests/acceptance/10_files/templating/mustache_demo.cf
@@ -49,7 +49,10 @@ bundle agent check
{
vars:
"expect" string => readfile("$(init.origtestdir)/demo.expected", 10000);
- "actual" string => readfile("$(G.testfile)", 10000);
+
+ "actual"
+ string => readfile("$(G.testfile)", 10000),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => regcmp("$(expect)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/mustache_expect_list_find_string.cf b/tests/acceptance/10_files/templating/mustache_expect_list_find_string.cf
index 7c69a7d9619..3092114d1d9 100644
--- a/tests/acceptance/10_files/templating/mustache_expect_list_find_string.cf
+++ b/tests/acceptance/10_files/templating/mustache_expect_list_find_string.cf
@@ -85,8 +85,14 @@ bundle agent test
vars:
"template" string => "$(this.promise_filename).mustache";
- "actual_good" string => readfile("$(G.testfile).good", 4096);
- "actual_bad" string => readfile("$(G.testfile).bad", 4096);
+
+ "actual_good"
+ string => readfile("$(G.testfile).good", 4096),
+ if => fileexists("$(G.testfile).good");
+
+ "actual_bad"
+ string => readfile("$(G.testfile).bad", 4096),
+ if => fileexists("$(G.testfile).bad");
}
#######################################################
diff --git a/tests/acceptance/10_files/templating/mustache_html_escape.cf b/tests/acceptance/10_files/templating/mustache_html_escape.cf
index decc658f9ff..e3d85d91240 100644
--- a/tests/acceptance/10_files/templating/mustache_html_escape.cf
+++ b/tests/acceptance/10_files/templating/mustache_html_escape.cf
@@ -54,7 +54,10 @@ bundle agent check
{
vars:
"expect" string => readfile("$(this.promise_filename).expected", 10000);
- "actual" string => readfile("$(G.testfile)", 10000);
+
+ "actual"
+ string => readfile("$(G.testfile)", 10000),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => strcmp("$(expect)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/mustache_inline_demo.cf b/tests/acceptance/10_files/templating/mustache_inline_demo.cf
index d03e2d90681..97c841e004a 100644
--- a/tests/acceptance/10_files/templating/mustache_inline_demo.cf
+++ b/tests/acceptance/10_files/templating/mustache_inline_demo.cf
@@ -52,7 +52,9 @@ bundle agent check
"expect"
string => readfile("$(init.origtestdir)/inline_demo.expected", 10000);
- "actual" string => readfile("$(G.testfile)", 10000);
+ "actual"
+ string => readfile("$(G.testfile)", 10000),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => regcmp("$(expect)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/mustache_render_quote.cf b/tests/acceptance/10_files/templating/mustache_render_quote.cf
index 5ba4ba3ae9a..1d70e421b53 100644
--- a/tests/acceptance/10_files/templating/mustache_render_quote.cf
+++ b/tests/acceptance/10_files/templating/mustache_render_quote.cf
@@ -54,7 +54,10 @@ bundle agent check
{
vars:
"expect" string => readfile("$(this.promise_filename).expected", 4000);
- "actual" string => readfile("$(G.testfile)", 4000);
+
+ "actual"
+ string => readfile("$(G.testfile)", 4000),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => regcmp("$(expect)", "$(actual)");
diff --git a/tests/acceptance/10_files/templating/mustache_repair_existing.cf b/tests/acceptance/10_files/templating/mustache_repair_existing.cf
index e2a1991d973..c7c78943fed 100644
--- a/tests/acceptance/10_files/templating/mustache_repair_existing.cf
+++ b/tests/acceptance/10_files/templating/mustache_repair_existing.cf
@@ -50,7 +50,10 @@ bundle agent check
{
vars:
"expect" string => readfile("$(init.origtestdir)/demo.expected", 4096);
- "actual" string => readfile("$(G.testfile)", 4096);
+
+ "actual"
+ string => readfile("$(G.testfile)", 4096),
+ if => fileexists("$(G.testfile)");
classes:
"content_ok" expression => regcmp("$(expect)", "$(actual)");
diff --git a/tests/acceptance/10_files/unsafe/02_immutable.cf b/tests/acceptance/10_files/unsafe/02_immutable.cf
index e078b05411d..47a1dc2ea8a 100644
--- a/tests/acceptance/10_files/unsafe/02_immutable.cf
+++ b/tests/acceptance/10_files/unsafe/02_immutable.cf
@@ -49,7 +49,10 @@ bundle agent check
{
vars:
"expected" string => "But agent can override";
- "actual" string => readfile("$(global.testfile)");
+
+ "actual"
+ string => readfile("$(global.testfile)"),
+ if => fileexists("$(global.testfile)");
classes:
"ok" expression => strcmp("$(actual)", "$(expected)");
diff --git a/tests/acceptance/10_files/unsafe/03_immutable.cf b/tests/acceptance/10_files/unsafe/03_immutable.cf
index 97c0f81d88a..4e6ddaa683c 100644
--- a/tests/acceptance/10_files/unsafe/03_immutable.cf
+++ b/tests/acceptance/10_files/unsafe/03_immutable.cf
@@ -50,7 +50,10 @@ bundle agent check
{
vars:
"expected" string => "But agent can override";
- "actual" string => readfile("$(global.testfile)");
+
+ "actual"
+ string => readfile("$(global.testfile)"),
+ if => fileexists("$(global.testfile)");
classes:
"ok" expression => strcmp("$(actual)", "$(expected)");
diff --git a/tests/acceptance/10_files/unsafe/05_immutable.cf b/tests/acceptance/10_files/unsafe/05_immutable.cf
index e96b3b9dba1..87d2c85ddf5 100644
--- a/tests/acceptance/10_files/unsafe/05_immutable.cf
+++ b/tests/acceptance/10_files/unsafe/05_immutable.cf
@@ -57,7 +57,9 @@ bundle agent check
"expected"
string => "I'm immutable$(const.n)But agent can override$(const.n)";
- "actual" string => readfile("$(global.testfile)");
+ "actual"
+ string => readfile("$(global.testfile)"),
+ if => fileexists("$(global.testfile)");
classes:
"ok" expression => strcmp("$(actual)", "$(expected)");
diff --git a/tests/acceptance/10_files/unsafe/06_immutable.cf b/tests/acceptance/10_files/unsafe/06_immutable.cf
index f105c62fcb3..c04b5c5f510 100644
--- a/tests/acceptance/10_files/unsafe/06_immutable.cf
+++ b/tests/acceptance/10_files/unsafe/06_immutable.cf
@@ -56,7 +56,9 @@ bundle agent check
"expected"
string => '$(const.n)But agent can override$(const.n)';
- "actual" string => readfile("$(global.testfile)");
+ "actual"
+ string => readfile("$(global.testfile)"),
+ if => fileexists("$(global.testfile)");
classes:
"ok" expression => strcmp("$(actual)", "$(expected)");
diff --git a/tests/acceptance/10_files/unsafe/09_immutable.cf b/tests/acceptance/10_files/unsafe/09_immutable.cf
index 4b96b6acbe5..9b133625559 100644
--- a/tests/acceptance/10_files/unsafe/09_immutable.cf
+++ b/tests/acceptance/10_files/unsafe/09_immutable.cf
@@ -56,7 +56,10 @@ bundle agent check
{
vars:
"expected" string => "Hello larsewi!";
- "actual" string => readfile("$(global.testfile)");
+
+ "actual"
+ string => readfile("$(global.testfile)"),
+ if => fileexists("$(global.testfile)");
classes:
"ok" expression => strcmp("$(actual)", "$(expected)");
diff --git a/tests/acceptance/10_files/unsafe/10_immutable.cf b/tests/acceptance/10_files/unsafe/10_immutable.cf
index 855e245f777..9815ecc2621 100644
--- a/tests/acceptance/10_files/unsafe/10_immutable.cf
+++ b/tests/acceptance/10_files/unsafe/10_immutable.cf
@@ -62,7 +62,10 @@ bundle agent check
{
vars:
"expected" string => ".*user:root:rwx.*";
- "acls" slist => getacls("$(global.testfile)", "access");
+
+ "acls"
+ slist => getacls("$(global.testfile)", "access"),
+ if => fileexists("$(global.testfile)");
classes:
"ok" expression => some("$(expected)", "acls");
diff --git a/tests/acceptance/10_files/unsafe/14_immutable_content.cf b/tests/acceptance/10_files/unsafe/14_immutable_content.cf
index ffaab2545df..0b01e255768 100644
--- a/tests/acceptance/10_files/unsafe/14_immutable_content.cf
+++ b/tests/acceptance/10_files/unsafe/14_immutable_content.cf
@@ -46,6 +46,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -61,7 +66,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/15_immutable_edit_line.cf b/tests/acceptance/10_files/unsafe/15_immutable_edit_line.cf
index 45859a7fcdf..d3fbc9504bb 100644
--- a/tests/acceptance/10_files/unsafe/15_immutable_edit_line.cf
+++ b/tests/acceptance/10_files/unsafe/15_immutable_edit_line.cf
@@ -48,6 +48,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -63,7 +68,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/16_immutable_copy_from.cf b/tests/acceptance/10_files/unsafe/16_immutable_copy_from.cf
index 0c8865bdecb..c718109c35a 100644
--- a/tests/acceptance/10_files/unsafe/16_immutable_copy_from.cf
+++ b/tests/acceptance/10_files/unsafe/16_immutable_copy_from.cf
@@ -49,6 +49,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -64,7 +69,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/17_immutable_template_mustache.cf b/tests/acceptance/10_files/unsafe/17_immutable_template_mustache.cf
index b1f3963649a..5d2861bda61 100644
--- a/tests/acceptance/10_files/unsafe/17_immutable_template_mustache.cf
+++ b/tests/acceptance/10_files/unsafe/17_immutable_template_mustache.cf
@@ -49,6 +49,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -64,7 +69,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/18_immutable_template_cfengine.cf b/tests/acceptance/10_files/unsafe/18_immutable_template_cfengine.cf
index 49beabe0694..a0a98401259 100644
--- a/tests/acceptance/10_files/unsafe/18_immutable_template_cfengine.cf
+++ b/tests/acceptance/10_files/unsafe/18_immutable_template_cfengine.cf
@@ -50,6 +50,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -65,7 +70,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/19_immutable_edit_xml.cf b/tests/acceptance/10_files/unsafe/19_immutable_edit_xml.cf
index 4f08284cfac..a5ee0e8177c 100644
--- a/tests/acceptance/10_files/unsafe/19_immutable_edit_xml.cf
+++ b/tests/acceptance/10_files/unsafe/19_immutable_edit_xml.cf
@@ -48,6 +48,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -63,7 +68,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/20_immutable_template_inline_mustache.cf b/tests/acceptance/10_files/unsafe/20_immutable_template_inline_mustache.cf
index 2adaad5c3e3..115f1c6650e 100644
--- a/tests/acceptance/10_files/unsafe/20_immutable_template_inline_mustache.cf
+++ b/tests/acceptance/10_files/unsafe/20_immutable_template_inline_mustache.cf
@@ -49,6 +49,11 @@ bundle agent check
),
with => regex_replace("$(this.promise_filename)", "\.cf$", ".sub.cf", "");
+ # Indent the sub-agent output in the DEBUG report, so that errors it
+ # prints are not mistaken for errors of the test by testall
+ "output_indented"
+ string => regex_replace("$(run[output])", "^", " | ", "gm");
+
classes:
"ok"
expression => regcmp(
@@ -64,7 +69,7 @@ bundle agent check
DEBUG::
"$(this.bundle): agent exited '$(run[exit_code])', output was:";
- "$(run[output])";
+ "$(output_indented)";
}
bundle agent destroy
diff --git a/tests/acceptance/10_files/unsafe/multiple-group-candidates-first-found-group-perms-if-no-listed-candidate-matches.cf b/tests/acceptance/10_files/unsafe/multiple-group-candidates-first-found-group-perms-if-no-listed-candidate-matches.cf
index 00a8a5afc08..ab2172503ed 100644
--- a/tests/acceptance/10_files/unsafe/multiple-group-candidates-first-found-group-perms-if-no-listed-candidate-matches.cf
+++ b/tests/acceptance/10_files/unsafe/multiple-group-candidates-first-found-group-perms-if-no-listed-candidate-matches.cf
@@ -69,7 +69,10 @@ bundle agent check
{
vars:
"observed_gid" string => filestat($(G.testfile), gid);
- "desired_gid" int => getgid("pr_gr_1");
+
+ "desired_gid"
+ int => getgid("pr_gr_1"),
+ if => groupexists("pr_gr_1");
reports:
"$(this.promise_filename) Pass"
diff --git a/tests/acceptance/10_files/unsafe/multiple-owner-candidates-first-found-user-perms-if-no-listed-candidate-matches.cf b/tests/acceptance/10_files/unsafe/multiple-owner-candidates-first-found-user-perms-if-no-listed-candidate-matches.cf
index 2d7325fc70a..2da83d66422 100644
--- a/tests/acceptance/10_files/unsafe/multiple-owner-candidates-first-found-user-perms-if-no-listed-candidate-matches.cf
+++ b/tests/acceptance/10_files/unsafe/multiple-owner-candidates-first-found-user-perms-if-no-listed-candidate-matches.cf
@@ -39,7 +39,10 @@ bundle agent check
{
vars:
"observed_uid" string => filestat($(G.testfile), uid);
- "desired_uid" int => getuid("pr_us_1");
+
+ "desired_uid"
+ int => getuid("pr_us_1"),
+ if => userexists("pr_us_1");
reports:
"$(this.promise_filename) Pass"
diff --git a/tests/acceptance/15_control/01_common/classic_evaluation_custom_promise_types.cf b/tests/acceptance/15_control/01_common/classic_evaluation_custom_promise_types.cf
index 379663d0b9a..d5ea9e47962 100644
--- a/tests/acceptance/15_control/01_common/classic_evaluation_custom_promise_types.cf
+++ b/tests/acceptance/15_control/01_common/classic_evaluation_custom_promise_types.cf
@@ -1,13 +1,13 @@
body common control
{
inputs => { "../../default.sub.cf" };
- bundlesequence => { "test" };
+ bundlesequence => { "init", "test", "cleanup" };
evaluation_order => "classic";
}
promise agent dummy
{
- path => "$(this.promise_dirname)/top_down/dummy_promise_type.py";
+ path => "$(this.promise_dirname)/dummy_promise_type.py";
interpreter => "/usr/bin/python3";
}
@@ -23,13 +23,17 @@ bundle agent test
"/tmp/dummyfile" smth => "hello";
vars:
- "content" string => readfile("/tmp/dummyfile");
+ "content"
+ string => readfile("/tmp/dummyfile"),
+ if => fileexists("/tmp/dummyfile");
files:
"/tmp/dummyfile" content => "ok";
vars:
- "content" string => readfile("/tmp/dummyfile");
+ "content"
+ string => readfile("/tmp/dummyfile"),
+ if => fileexists("/tmp/dummyfile");
classes:
"ok" expression => strcmp("$(content)", "ok");
diff --git a/tests/acceptance/15_control/01_common/classic_evaluation_long_policy.cf b/tests/acceptance/15_control/01_common/classic_evaluation_long_policy.cf
index 077fffdbd95..1a06957f2e9 100644
--- a/tests/acceptance/15_control/01_common/classic_evaluation_long_policy.cf
+++ b/tests/acceptance/15_control/01_common/classic_evaluation_long_policy.cf
@@ -34,7 +34,10 @@ bundle agent test
"/tmp/example" content => "fourth";
vars:
- "content" string => readfile("/tmp/example");
+ "content"
+ string => readfile("/tmp/example"),
+ if => fileexists("/tmp/example");
+
"result" string => concat("$(result)", ", $(content)");
classes:
@@ -48,7 +51,9 @@ bundle agent test
"/tmp/otherfile" content => "something";
vars:
- "othercontent" string => readfile("/tmp/otherfile");
+ "othercontent"
+ string => readfile("/tmp/otherfile"),
+ if => fileexists("/tmp/otherfile");
files:
"/tmp/otherfile" delete => tidy;
diff --git a/tests/acceptance/15_control/01_common/dummy_promise_type.py b/tests/acceptance/15_control/01_common/dummy_promise_type.py
new file mode 100644
index 00000000000..506733d056a
--- /dev/null
+++ b/tests/acceptance/15_control/01_common/dummy_promise_type.py
@@ -0,0 +1,40 @@
+#!/usr/bin/python3
+#
+# Minimal custom promise module which accepts any promise and does nothing,
+# used to have a custom promise type in evaluation order tests.
+
+import sys
+
+
+def read_request():
+ request = {}
+ for line in sys.stdin:
+ line = line.rstrip("\n")
+ if not line:
+ return request
+ key, _, value = line.partition("=")
+ request[key] = value
+ sys.exit(0)
+
+
+def write_response(operation, result):
+ sys.stdout.write("operation=%s\nresult=%s\n\n" % (operation, result))
+ sys.stdout.flush()
+
+
+# Skip the header from the agent and send ours
+read_request()
+sys.stdout.write("dummy_promise_type 0.0.1 v1 line_based\n\n")
+sys.stdout.flush()
+
+while True:
+ operation = read_request().get("operation")
+ if operation == "validate_promise":
+ write_response(operation, "valid")
+ elif operation == "evaluate_promise":
+ write_response(operation, "kept")
+ elif operation == "terminate":
+ write_response(operation, "success")
+ sys.exit(0)
+ else:
+ write_response(operation, "error")
diff --git a/tests/acceptance/15_control/01_common/top_down_evaluation_long_policy.cf b/tests/acceptance/15_control/01_common/top_down_evaluation_long_policy.cf
index 5d85ecbb5a9..01151c1248f 100644
--- a/tests/acceptance/15_control/01_common/top_down_evaluation_long_policy.cf
+++ b/tests/acceptance/15_control/01_common/top_down_evaluation_long_policy.cf
@@ -34,7 +34,10 @@ bundle agent test
"/tmp/example" content => "fourth";
vars:
- "content" string => readfile("/tmp/example");
+ "content"
+ string => readfile("/tmp/example"),
+ if => fileexists("/tmp/example");
+
"result" string => concat("$(result)", ", $(content)");
classes:
@@ -48,7 +51,9 @@ bundle agent test
"/tmp/otherfile" content => "something";
vars:
- "othercontent" string => readfile("/tmp/otherfile");
+ "othercontent"
+ string => readfile("/tmp/otherfile"),
+ if => fileexists("/tmp/otherfile");
files:
"/tmp/otherfile" delete => tidy;
diff --git a/tests/acceptance/29_simulate_mode/simulate_safe_functions.cf b/tests/acceptance/29_simulate_mode/simulate_safe_functions.cf
index 289f5811d5a..484869b968b 100644
--- a/tests/acceptance/29_simulate_mode/simulate_safe_functions.cf
+++ b/tests/acceptance/29_simulate_mode/simulate_safe_functions.cf
@@ -56,6 +56,9 @@ bundle agent check
"result"
string => readfile(
"$(sys.workdir)$(const.dirsep)state$(const.dirsep)agent.log"
+ ),
+ if => fileexists(
+ "$(sys.workdir)$(const.dirsep)state$(const.dirsep)agent.log"
);
methods:
diff --git a/tests/acceptance/31_tickets/CFE-3866/test.cf b/tests/acceptance/31_tickets/CFE-3866/test.cf
index 5a8dd626451..dd8c0a1d98d 100644
--- a/tests/acceptance/31_tickets/CFE-3866/test.cf
+++ b/tests/acceptance/31_tickets/CFE-3866/test.cf
@@ -68,7 +68,10 @@ bundle agent check
"expected" string => "[section]
key=value
";
- "actual" string => readfile("$(G.testfile)", "1000");
+
+ "actual"
+ string => readfile("$(G.testfile)", "1000"),
+ if => fileexists("$(G.testfile)");
classes:
"ok" expression => strcmp("$(expected)", "$(actual)");
diff --git a/tests/acceptance/README b/tests/acceptance/README
index 2435b57b224..b192cb5995c 100644
--- a/tests/acceptance/README
+++ b/tests/acceptance/README
@@ -113,6 +113,13 @@ case letters and underscores only. If the test is expected to generate an error
additional '.x' suffix before '.cf' (e.g. 'string_vars.x.cf'). A crash will
still cause a failure.
+Regular tests (without any special suffix) fail if they log any errors, even
+if they print the Pass message. If the test is expected to log errors (e.g. it
+contains promises which are intentionally not kept), it should have an
+additional '.error' suffix before '.cf' (e.g. 'bad_perms.error.cf'), in which
+case it passes as long as it logs at least one error and exits with 0. If it
+should also print the Pass message, use the '.error.pass.cf' suffix instead.
+
Tests which are not expected to pass yet (e.g. there is a bug in code which
prevents tests from passing) should be placed in 'staging' subdirectory in the
test directory where they belong. Such test cases will be only run if --staging
diff --git a/tests/acceptance/dcs.sub.cf b/tests/acceptance/dcs.sub.cf
index e752cf24c7d..33dd9422428 100644
--- a/tests/acceptance/dcs.sub.cf
+++ b/tests/acceptance/dcs.sub.cf
@@ -1097,6 +1097,10 @@ bundle agent dcs_passif_output(wanted, unwanted, command, test)
string => execresult($(command), "useshell"),
meta => { "simulate_safe" };
+ # Indent the command output in the DEBUG report, so that errors printed
+ # by the command are not mistaken for errors of the test by testall
+ "subout_indented" string => regex_replace($(subout), "^", " | ", "gm");
+
classes:
"__passif_output_unwanted" expression => regcmp($(unwanted), $(subout));
"__passif_output_wanted" expression => regcmp($(wanted), $(subout));
@@ -1128,7 +1132,7 @@ bundle agent dcs_passif_output(wanted, unwanted, command, test)
if => "!__passif_output_unwanted";
DEBUG::
- "$(this.bundle): the output of command '$(command)' was: '$(subout)'";
+ "$(this.bundle): the output of command '$(command)' was: '$(subout_indented)'";
}
bundle agent dcs_passif_output1(wanted, command, test)
diff --git a/tests/acceptance/testall b/tests/acceptance/testall
index 621ee4efe87..f3cc24a75b0 100755
--- a/tests/acceptance/testall
+++ b/tests/acceptance/testall
@@ -82,6 +82,7 @@ TIMED_TESTS=${TIMED_TESTS:-1} ; export TIMED_TESTS
SLOW_TESTS=${SLOW_TESTS:-1} ; export SLOW_TESTS
ERROREXIT_TESTS=${ERROREXIT_TESTS:-1} ; export ERROREXIT_TESTS
ERRORLOG_TESTS=${ERRORLOG_TESTS:-1} ; export ERRORLOG_TESTS
+ERRORPASS_TESTS=${ERRORPASS_TESTS:-1} ; export ERRORPASS_TESTS
SERIAL_TESTS=${SERIAL_TESTS:-1} ; export SERIAL_TESTS
NETWORK_TESTS=${NETWORK_TESTS:-1} ; export NETWORK_TESTS
LIBXML2_TESTS=${LIBXML2_TESTS:-1} ; export LIBXML2_TESTS
@@ -216,6 +217,8 @@ usage() {
echo "If no test is given, all standard tests are run:"
echo " Tests with names of form .cf are expected to run successfully"
echo " Tests with names of form .x.cf are expected to exit with error"
+ echo " Tests with names of form .error.cf are expected to log error(s) and exit with 0"
+ echo " Tests with names of form .error.pass.cf are expected to log error(s), pass and exit with 0"
echo "Set ${COLOR_SUCCESS}CFENGINE_COLOR=1${COLOR_NORMAL} to get ANSI color markers where appropriate."
echo
echo "If arguments are given, those are executed as tests"
@@ -645,8 +648,16 @@ export CFENGINE_TEST_OVERRIDE_WORKDIR TEMP CFENGINE_TEST_OVERRIDE_EXTENSION_LIBR
fi
elif grep -E "R: .*$ESCAPED_TEST Pass" $OUTFILE > /dev/null
then
- RESULT=Pass
- RESULT_MSG="${COLOR_SUCCESS}Pass${COLOR_NORMAL}"
+ # Regular tests must not log errors, tests which are expected
+ # to log errors should be named *.error.cf or *.error.pass.cf
+ if grep -E '^ *error: ' $OUTFILE > /dev/null
+ then
+ RESULT=FAIL
+ RESULT_MSG="${COLOR_FAILURE}FAIL (Error printed)${COLOR_NORMAL}"
+ else
+ RESULT=Pass
+ RESULT_MSG="${COLOR_SUCCESS}Pass${COLOR_NORMAL}"
+ fi
elif grep -E "R: .*$ESCAPED_TEST Skip/unsupported" $OUTFILE > /dev/null
then
RESULT=Skip