1####################################################### 2# 3# Test basename() with suffix removal 4# 5####################################################### 6 7body common control 8{ 9 inputs => { "../../default.cf.sub" }; 10 bundlesequence => { default("$(this.promise_filename)") }; 11 version => "1.0"; 12} 13 14####################################################### 15 16bundle agent test 17{ 18 vars: 19 # The tests starting with template will be tested with both types of 20 # directory separators on Windows. 21 22 "template_input[root]" string => "/"; 23 "template_suffix[root]" string => ""; 24 "template_expected[root]" string => "/"; 25 26 "template_input[simple]" string => "/foo/bar.c"; 27 "template_suffix[simple]" string => ".c"; 28 "template_expected[simple]" string => "bar"; 29 30 "template_input[rel_suffif]" string => "foo.xyz"; 31 "template_suffix[rel_suffif]" string => ".xyz"; 32 "template_expected[rel_suffif]" string => "foo"; 33 34 "template_input[no_matching_suffix]" string => "/foo/bar"; 35 "template_suffix[no_matching_suffix]" string => "baz"; 36 "template_expected[no_matching_suffix]" string => "bar"; 37 38 "template_input[same_suffix]" string => "foo"; 39 "template_suffix[same_suffix]" string => "foo"; 40 "template_expected[same_suffix]" string => "foo"; 41 42 "template_input[sub_same_suffix]" string => "foo/bar"; 43 "template_suffix[sub_same_suffix]" string => "bar"; 44 "template_expected[sub_same_suffix]" string => "bar"; 45 46 "template_keys" slist => getindices("template_input"); 47 48 any:: 49 "input[native_$(template_keys)]" string => "$(template_input[$(template_keys)])"; 50 "expected[native_$(template_keys)]" string => "$(template_expected[$(template_keys)])"; 51 "suffix[native_$(template_keys)]" string => "$(template_suffix[$(template_keys)])"; 52 53 "keys" slist => getindices("input"); 54 55 "actual[$(keys)]" string => basename("$(input[$(keys)])", "$(suffix[$suffix])"); 56} 57 58####################################################### 59 60bundle agent check 61{ 62 vars: 63 "keys" slist => { @(test.keys) }; 64 65 classes: 66 "failed_cmp_$(keys)" not => strcmp(basename("$(test.input[$(keys)])", "$(test.suffix[$(keys)])"), "$(test.expected[$(keys)])"); 67 "ok" not => classmatch("failed_cmp_.*"); 68 69 reports: 70 DEBUG:: 71 "'basename($(test.input[$(keys)]), $(test.suffix[$(keys)]))' = '$(test.actual[$(keys)])' != '$(test.expected[$(keys)])'" 72 if => "failed_cmp_$(keys)"; 73 74 ok:: 75 "$(this.promise_filename) Pass"; 76 !ok:: 77 "$(this.promise_filename) FAIL"; 78} 79