1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#######################################################
#
# Test makerule()
#
#######################################################
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:
"lold" slist => { "$(G.etc_passwd)", "$(G.etc_group)" };
"lnew" slist => { "$(G.etc_passwd)", "$(G.testfile)" };
"lnon" slist => { "$(G.etc_passwd)", "/etc/NoFriggin'WayThisExi5ts" };
files:
"$(G.testfile)"
create => "true";
"$(G.testfile).nosuchfile"
delete => tidy;
}
#######################################################
bundle agent check
{
classes:
# A new file does not need to be rebuilt from an older file (fails)
"ok1" expression => makerule("$(G.testfile)", "$(G.etc_passwd)");
# An older file does need to be rebuilt from a newer file
"ok2" expression => makerule("$(G.etc_passwd)", "$(G.testfile)");
# An older file cannot be rebuilt from a non existent file (fails)
"ok3" expression => makerule("$(G.etc_passwd)", "$(G.testfile).nosuchfile");
# An non existent file does need to be rebuilt from a source file
"ok4" expression => makerule("$(G.testfile).nosuchfile", "$(G.etc_passwd)");
# A new file does not need to be rebuilt from an older file (fails)
"ok5" expression => makerule("$(G.testfile)", "test.lold");
# An old file does need to be rebuilt from an newer file in a list
"ok6" expression => makerule("$(G.etc_passwd)", "test.lnew");
# An old file does not need to be rebuilt from sources with a missing file (fails)
"ok7" expression => makerule("$(G.etc_passwd)", "test.lnon");
"ok" and => { "!ok1", "ok2", "!ok3", "ok4", "!ok5", "ok6", "!ok7" };
reports:
DEBUG.ok1::
"1. pass";
DEBUG.ok2::
"2. pass";
DEBUG.ok3::
"3. pass";
DEBUG.ok4::
"4. pass";
DEBUG.ok5::
"5. pass";
DEBUG.ok6::
"6. pass";
DEBUG.ok7::
"7. pass";
ok::
"$(this.promise_filename) Pass";
!ok::
"$(this.promise_filename) FAIL";
}
|