#######################################################
#
# Test filesexist()
#
#######################################################

body common control
{
      inputs => { "../../default.cf.sub" };
      bundlesequence  => { default("$(this.promise_filename)") };   
      version => "1.0";
}

bundle agent init
{
  vars:
      "dummy" string => "dummy";
}

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

bundle agent test
{
  vars:
      "dummy" string => "dummy";
}

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

bundle agent check
{
  vars:
      "f1" string => "$(G.etc_passwd)";
      "f2" string => "$(G.etc_group)";
      "f3" string => "/etc/NoFriggin'WayThisExi5ts";

      "s1" slist => { "$(f1)", "$(f2)" };
      "s2" slist => { "$(f1)", "$(f2)", "$(f3)" };

  classes:
      "ok1" expression => filesexist("@(s1)");
      "ok2" not => filesexist("@(s2)");

      "ok" and => { "ok1", "ok2" };

  reports:
    DEBUG.ok1::
      "All files in list s1 $(s1) exist as expected";
    DEBUG.!ok1::
      "All files in list s1 $(s1) DO NOT exist (and should)";
    DEBUG.ok2::
      "All files in list s2 $(s2) do not exist as expected";
    DEBUG.!ok2::
      "All files in list s2 $(s2) DO exist (and shouldn't)";
    ok::
      "$(this.promise_filename) Pass";
    !ok::
      "$(this.promise_filename) FAIL";
}
