1####################################################### 2# 3# Test readintarray(), introduce 777 duplicate key 4# 5# The 5xx tests look at the same thing as their corresponding 4xx tests 6# 500-519 are readintarray, 520-539 test the same things for parseintarray 7# 8####################################################### 9 10body common control 11{ 12 inputs => { "../../default.cf.sub" }; 13 bundlesequence => { default("$(this.promise_filename)") }; 14 version => "1.0"; 15} 16 17bundle agent init 18{ 19 files: 20 "$(G.testfile)" 21 delete => init_delete; 22 23 "$(G.testfile)" 24 create => "true", 25 edit_line => init_fill_in; 26} 27 28bundle edit_line init_fill_in 29{ 30 insert_lines: 31 32 "0:1:2 33999:888:777:666 34999:000 351:2:3"; 36 37} 38 39body delete init_delete 40{ 41 dirlinks => "delete"; 42 rmdirs => "true"; 43} 44 45####################################################### 46 47bundle agent test 48{ 49 vars: 50 "cnt" int => readintarray("ary", "$(G.testfile)","NoComment",":",10,1000); 51 "num" int => "3"; # 4 lines, but 3 unique keys 52} 53 54####################################################### 55 56bundle agent check 57{ 58 vars: 59 "idx" slist => getindices("test.ary"); 60 61 classes: 62 "good" and => { 63 strcmp("$(test.num)", "$(test.cnt)"), 64 65 strcmp("$(test.ary[0][0])", "0"), 66 strcmp("$(test.ary[0][1])", "1"), 67 strcmp("$(test.ary[0][2])", "2"), 68 69 # The second value should overwrite the first 70 strcmp("$(test.ary[999][0])", "999"), 71 strcmp("$(test.ary[999][1])", "0"), 72 73 strcmp("$(test.ary[1][0])", "1"), 74 strcmp("$(test.ary[1][1])", "2"), 75 strcmp("$(test.ary[1][2])", "3"), 76 }; 77 78 # Make sure there are no trailing elements 79 "bad" or => { 80 isvariable("test.ary[0][3]"), 81 isvariable("test.ary[999][2]"), 82 isvariable("test.ary[1][3]"), 83 }; 84 85 "ok" expression => "good&!bad"; 86 87 reports: 88 DEBUG:: 89 "expected $(test.num) entries, saw $(test.cnt)"; 90 91 "saw array indices '$(idx)'"; 92 93 "expected test.ary[0][0] = '0', saw '$(test.ary[0][0])'"; 94 "expected test.ary[0][1] = '1', saw '$(test.ary[0][1])'"; 95 "expected test.ary[0][2] = '2', saw '$(test.ary[0][2])'"; 96 97 "expected test.ary[999][0] = '999', saw '$(test.ary[999][0])'"; 98 "expected test.ary[999][1] = '0', saw '$(test.ary[999][1])'"; 99 100 "expected test.ary[1][0] = '1', saw '$(test.ary[1][0])'"; 101 "expected test.ary[1][1] = '2', saw '$(test.ary[1][1])'"; 102 "expected test.ary[1][2] = '3', saw '$(test.ary[1][2])'"; 103 104 ok:: 105 "$(this.promise_filename) Pass"; 106 107 !ok:: 108 "$(this.promise_filename) FAIL"; 109} 110