#######################################################
#
# copy_from compare=>"digest" when file is there but differs - should copy
#
#######################################################

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

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

bundle agent init
{
}

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

bundle agent test
{
  files:
      "$(G.testdir)/destfile_classic"
        copy_from => copy_src_file("classic"),
        classes => if_repaired("copied_classic");
      "$(G.testdir)/destfile_latest"
        copy_from => copy_src_file("latest"),
        classes => if_repaired("copied_latest");
}

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

body copy_from copy_src_file(protocol_version)
{
      protocol_version => "$(protocol_version)";

      source      => "$(G.testdir)/source_file";
      servers     => { "127.0.0.1" };
      compare     => "digest";
      copy_backup => "false";
      trustkey    => "true";
      portnumber  => "9876"; # localhost_open
}

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

bundle agent check
{
  classes:
      "dummy" expression => regextract("(.*)\.sub", $(this.promise_filename), "fn");

  methods:
      "any" usebundle => dcs_if_diff_expected(
                             "$(G.testdir)/source_file", "$(G.testdir)/destfile_classic",
                             "no", "same_classic", "differ_classic");
      "any" usebundle => dcs_if_diff_expected(
                             "$(G.testdir)/source_file", "$(G.testdir)/destfile_latest",
                             "no", "same_latest", "differ_latest");

  reports:

    same_classic.same_latest::
      "$(fn[1]) Pass";
    !same_classic|!same_latest::
      "$(fn[1]) FAIL";

}
