Skip to content

Commit

Permalink
Work in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
Fdall committed Feb 12, 2019
1 parent 2d912e6 commit 7cc17ff
Show file tree
Hide file tree
Showing 7 changed files with 286 additions and 11 deletions.
15 changes: 14 additions & 1 deletion tests/acceptance/30_generic_methods/command_execution.cf
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ bundle agent init
vars:
"command_name" string => "/bin/date | egrep '[0-9]'";
"canonified_command_name" string => canonify("${command_name}");

"file_name" string => execresult("echo $RANDOM", "useshell");
"audit_command_name" string => "touch ${file_name}";
"canonified_audit_command_name" string => canonify("${audit_command_name}");
}

#######################################################
Expand All @@ -32,14 +36,23 @@ bundle agent test
{
methods:
"ph1" usebundle => command_execution("${init.command_name}");

"enable" usebundle => set_dry_run_mode("true");
"ph1" usebundle => command_execution("${init.audit_command_name}");
"disable" usebundle => set_dry_run_mode("false");
}

#######################################################

bundle agent check
{
classes:
"ok" expression => "command_execution_${init.canonified_command_name}_ok.!command_execution_${init.canonified_command_name}_error";
"enforce_ok" expression => "command_execution_${init.canonified_command_name}_ok.!command_execution_${init.canonified_command_name}_error";

"file_exists" expression => fileexists("${init.file_name}");
"audit_ok" expression => "command_execution_${init.canonified_audit_command_name}_error.!command_execution_${init.canonified_audit_command_name}_repaired.!command_execution_${init.canonified_audit_command_name}_ok.!file_exists";

"ok" expression => "enforce_ok.audit_ok";

reports:
ok::
Expand Down
27 changes: 26 additions & 1 deletion tests/acceptance/30_generic_methods/command_execution_result.cf
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ bundle agent init
vars:
"command_0" string => "exit 0";
"canonified_command_0" string => canonify("${command_name}");

"file_name" string => execresult("echo $RANDOM", "useshell");
"audit_command_line" string => "touch ${file_name} &&";
"canonified_audit_command_name" string => canonify("${audit_command_line}");
}

#######################################################
Expand All @@ -40,20 +44,41 @@ bundle agent test
"phC" usebundle => command_execution_result("exit 3", "${kept_codes}", "${repaired_codes}");
"phD" usebundle => command_execution_result("exit 4", "${kept_codes}", "${repaired_codes}");
"phE" usebundle => command_execution_result("exit 5", "${kept_codes}", "${repaired_codes}");

"enable" usebundle => set_dry_run_mode("true");
"phF" usebundle => command_execution_result("${init.audit_command_line} exit 0", "${kept_codes}", "${repaired_codes}");
"phG" usebundle => command_execution_result("${init.audit_command_line} exit 2", "${kept_codes}", "${repaired_codes}");
"phH" usebundle => command_execution_result("${init.audit_command_line} exit 3", "${kept_codes}", "${repaired_codes}");
"phI" usebundle => command_execution_result("${init.audit_command_line} exit 4", "${kept_codes}", "${repaired_codes}");
"phJ" usebundle => command_execution_result("${init.audit_command_line} exit 5", "${kept_codes}", "${repaired_codes}");
"disable" usebundle => set_dry_run_mode("false");
}

#######################################################

bundle agent check
{
vars:
"audit_report" string => "command_execution_result_${init.canonified_audit_command_name}_exit";

classes:
"ok_A" expression => "command_execution_result_exit_0_kept.!command_execution_result_exit_0_repaired.!command_execution_result_exit_0_error";
"ok_B" expression => "command_execution_result_exit_2_kept.!command_execution_result_exit_2_repaired.!command_execution_result_exit_2_error";
"ok_C" expression => "!command_execution_result_exit_3_kept.command_execution_result_exit_3_repaired.!command_execution_result_exit_3_error";
"ok_D" expression => "!command_execution_result_exit_4_kept.command_execution_result_exit_4_repaired.!command_execution_result_exit_4_error";
"ok_E" expression => "!command_execution_result_exit_5_kept.!command_execution_result_exit_5_repaired.command_execution_result_exit_5_error";

"ok" expression => "ok_A.ok_B.ok_C.ok_D.ok_E";

"file_exists" expression => fileexists("${init.file_name}");
"ok_F" expression => "!${audit_report}_0_kept.!${audit_report}_0_repaired.${audit_report}_0_error";
"ok_G" expression => "!${audit_report}_2_kept.!${audit_report}_2_repaired.${audit_report}_2_error";
"ok_H" expression => "!${audit_report}_3_kept.!${audit_report}_3_repaired.${audit_report}_3_error";
"ok_I" expression => "!${audit_report}_4_kept.!${audit_report}_4_repaired.${audit_report}_4_error";
"ok_J" expression => "!${audit_report}_5_kept.!${audit_report}_5_repaired.${audit_report}_5_error";

"enforce_ok" expression => "ok_A.ok_B.ok_C.ok_D.ok_E";
"audit_ok" expression => "ok_F.ok_G.ok_H.ok_I.ok_J.!file_exists";
"ok" expression => "enforce_ok.audit_ok";

reports:
ok::
Expand Down
24 changes: 23 additions & 1 deletion tests/acceptance/30_generic_methods/condition_from_command.cf
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ body common control
bundle agent init
{
vars:
"very_long_command" string => "exit 1; #Comment to reach 4K string aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
}

#######################################################
Expand All @@ -38,6 +39,16 @@ bundle agent test
"phC" usebundle => condition_from_command("classC", "exit 3", "${true_codes}", "${false_codes}"); # false
"phD" usebundle => condition_from_command("classD", "exit 4", "${true_codes}", "${false_codes}"); # false
"phE" usebundle => condition_from_command("classE", "exit 5", "${true_codes}", "${false_codes}"); # error
"phF" usebundle => condition_from_command("classF", "${init.very_long_command}", "${true_codes}", "${false_codes}"); # true

"enable" usebundle => set_dry_run_mode("true");
"phG" usebundle => condition_from_command("classG", "exit 0", "${true_codes}", "${false_codes}"); # error
"phH" usebundle => condition_from_command("classH", "exit 2", "${true_codes}", "${false_codes}"); # error
"phI" usebundle => condition_from_command("classI", "exit 3", "${true_codes}", "${false_codes}"); # error
"phJ" usebundle => condition_from_command("classJ", "exit 4", "${true_codes}", "${false_codes}"); # error
"phK" usebundle => condition_from_command("classK", "exit 5", "${true_codes}", "${false_codes}"); # error
"phL" usebundle => condition_from_command("classL", "${init.very_long_command}", "${true_codes}", "${false_codes}"); # true
"disable" usebundle => set_dry_run_mode("false");
}

#######################################################
Expand All @@ -50,8 +61,19 @@ bundle agent check
"ok_C" expression => "condition_from_command_classC_kept.!condition_from_command_classC_repaired.!condition_from_command_classC_error.!classC_true.classC_false";
"ok_D" expression => "condition_from_command_classD_kept.!condition_from_command_classD_repaired.!condition_from_command_classD_error.!classD_true.classD_false";
"ok_E" expression => "!condition_from_command_classE_kept.!condition_from_command_classE_repaired.condition_from_command_classE_error.!classE_true.!classE_false";
"ok_F" expression => "condition_from_command_classF_kept.!condition_from_command_classF_repaired.!condition_from_command_classF_error.classA_true.!classF_false";

# No classes are defined in audit mode since we do not execute the command
"ok_G" expression => "!condition_from_command_classG_kept.!condition_from_command_classG_repaired.condition_from_command_classG_error.!classG_true.!classG_false";
"ok_H" expression => "!condition_from_command_classH_kept.!condition_from_command_classH_repaired.condition_from_command_classH_error.!classH_true.!classH_false";
"ok_I" expression => "!condition_from_command_classI_kept.!condition_from_command_classI_repaired.condition_from_command_classI_error.!classI_true.!classI_false";
"ok_J" expression => "!condition_from_command_classJ_kept.!condition_from_command_classJ_repaired.condition_from_command_classJ_error.!classJ_true.!classJ_false";
"ok_K" expression => "!condition_from_command_classK_kept.!condition_from_command_classK_repaired.condition_from_command_classK_error.!classK_true.!classK_false";
"ok_L" expression => "!condition_from_command_classL_kept.!condition_from_command_classL_repaired.condition_from_command_classL_error.!classL_true.!classL_false";

"ok" expression => "ok_A.ok_B.ok_C.ok_D.ok_E";
"enforce_ok" expression => "ok_A.ok_B.ok_C.ok_D.ok_E.ok_F";
"audit_ok" expression => "ok_G.ok_H.ok_I.ok_J.ok_K.ok_L";
"ok" expression => "enforce_ok.audit_ok";

reports:
ok::
Expand Down
17 changes: 14 additions & 3 deletions tests/acceptance/30_generic_methods/condition_from_expression.cf
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,28 @@ bundle agent test
"ph1" usebundle => condition_from_expression("class1", "any");
"ph2" usebundle => condition_from_expression("class2", "!any");

"enable" usebundle => set_dry_run_mode("true");
"ph3" usebundle => condition_from_expression("class3", "any");
"ph4" usebundle => condition_from_expression("class4", "!any");
"disable" usebundle => set_dry_run_mode("false");

}

#######################################################

bundle agent check
{
classes:
"ok_class1" expression => "condition_from_expression_class1_ok.class1_true";
"ok_class2" expression => "condition_from_expression_class2_ok.class2_false";
"ok_class1" expression => "condition_from_expression_class1_ok.class1_true.!condition_from_expression_class1_error.!condition_from_expression_class1_repaired";
"ok_class2" expression => "condition_from_expression_class2_ok.class2_false.!condition_from_expression_class2_error.!condition_from_expression_class2_repaired";

"ok_class3" expression => "condition_from_expression_class3_ok.class3_true.!condition_from_expression_class3_error.!condition_from_expression_class3_repaired";
"ok_class4" expression => "condition_from_expression_class4_ok.class4_false.!condition_from_expression_class4_error.!condition_from_expression_class4_repaired";

"enforce_ok" expression => "ok_class1.ok_class2";
"audit_ok" expression => "ok_class3.ok_class4";

"ok" expression => "ok_class1.ok_class2";
"ok" expression => "enforce_ok.audit_ok";

reports:
ok::
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#######################################################
#
# Test if only success classes are created
#
#######################################################

bundle common acc_path
{
vars:
"root" string => getenv("NCF_TESTS_ACCEPTANCE", 1024);
}

body common control
{
inputs => { "${acc_path.root}/default.cf.sub", "${acc_path.root}/default_ncf.cf.sub", "@{ncf_inputs.default_files}" };
bundlesequence => { configuration, default("$(this.promise_filename)") };
version => "1.0";
}

#######################################################

bundle agent init
{
vars:
methods:
"method_call" usebundle => variable_string("my_prefix", "my_variable", "Some text");
"method_call" usebundle => variable_string("my_prefix", "my_empty_variable", "");
}

#######################################################

bundle agent test
{
methods:
"ph1" usebundle => condition_from_variable_existence("class1", "my_prefix.my_variable");
"ph2" usebundle => condition_from_variable_existence("class2", "my_prefix.my_empty_variable");
"ph3" usebundle => condition_from_variable_existence("class3", "my_prefix.my_undefined_variable");

"enable" usebundle => set_dry_run_mode("true");
"ph4" usebundle => condition_from_variable_existence("class4", "my_prefix.my_variable");
"ph5" usebundle => condition_from_variable_existence("class5", "my_prefix.my_empty_variable");
"ph6" usebundle => condition_from_variable_existence("class6", "my_prefix.my_undefined_variable");
"disable" usebundle => set_dry_run_mode("false");

}

#######################################################

bundle agent check
{
classes:
"ok_class1" expression => "condition_from_variable_existence_class1_my_prefix_my_variable_ok.class1_true";
"ok_class2" expression => "condition_from_variable_existence_class2_my_prefix_my_empty_variable_ok.class2_true";
"ok_class3" expression => "condition_from_variable_existence_class3_my_prefix_my_undefined_variable_ok.class3_false";

"ok_class4" expression => "condition_from_variable_existence_class1_my_prefix_my_variable_ok.class4_true";
"ok_class5" expression => "condition_from_variable_existence_class2_my_prefix_my_empty_variable_ok.class5_true";
"ok_class6" expression => "condition_from_variable_existence_class3_my_prefix_my_undefined_variable_ok.class6_false";

"enforce_ok" expression => "ok_class1.ok_class2.ok_class3";
"audit_ok" expression => "ok_class4.ok_class5.ok_class6";
"ok" expression => "enforce_ok.audit_ok";

reports:
!ok_class1::
"Test 1 failed";
!ok_class2::
"Test 2 failed";
!ok_class3::
"Test 3 failed";
ok::
"$(this.promise_filename) Pass";
!ok::
"$(this.promise_filename) FAIL";
}
Loading

0 comments on commit 7cc17ff

Please sign in to comment.