1# Test dry run mode in RRDTool::OO 2 3use Test::More; 4use RRDTool::OO; 5 6use Log::Log4perl qw(:easy); 7 8plan tests => 6; 9 10#Log::Log4perl->easy_init({level => $INFO, layout => "%L: %m%n", 11# category => 'rrdtool', 12# file => 'stdout'}); 13 14my $rrd = RRDTool::OO->new( 15 file => 'foo', 16 dry_run => 1, 17); 18 19my $start_time = 1080460200; 20my $nof_iterations = 10; 21 22 # Define the RRD 23my $rc = $rrd->create( 24 start => $start_time - 10, 25 step => 60, 26 data_source => { name => 'load1', 27 type => 'GAUGE', 28 heartbeat => 90, 29 min => 0, 30 max => 100.0, 31 }, 32 data_source => { name => 'load2', 33 type => 'GAUGE', 34 heartbeat => 90, 35 min => 0, 36 max => 100.0, 37 }, 38 archive => { cfunc => 'MAX', 39 xff => '0.5', 40 cpoints => 1, 41 rows => 5, 42 }, 43 archive => { cfunc => 'MAX', 44 xff => '0.5', 45 cpoints => 5, 46 rows => 10, 47 }, 48); 49 50my($subref, $args, $func) = $rrd->get_exec_env(); 51 52is($func, "create", "get_exec_env function"); 53is("@$args", "foo --start 1080460190 --step 60 DS:load1:GAUGE:90:0:100 DS:load2:GAUGE:90:0:100 RRA:MAX:0.5:1:5 RRA:MAX:0.5:5:10", "dry run arguments"); 54 55$rrd = RRDTool::OO->new( 56 file => 'foo', 57 dry_run => 1, 58 strict => 0, 59); 60 61$rc = $rrd->create( 62 start => $start_time - 10, 63 step => 60, 64 data_source => { name => 'load1', 65 type => 'GAUGE', 66 heartbeat => 90, 67 min => 0, 68 max => 100.0, 69 }, 70 archive => { cfunc => 'MAX', 71 xff => '0.5', 72 cpoints => 1, 73 rows => 5, 74 }, 75); 76 77# Test non-strict 78$rrd->graph( 79 image => "mygraph.png", 80 vertical_label => 'My Salary', 81 start => $start_time, 82 end => $start_time + $nof_iterations * 60, 83 spitzen_sparken => 1, 84); 85 86ok(1, "survived illegal parameter"); 87 88($subref, $args, $func) = $rrd->get_exec_env(); 89like("@$args", qr/--spitzen-sparken 1/, "illegal parameter added to rrd cmd"); 90 91# Add a new parameter in strict mode 92$rrd = RRDTool::OO->new( 93 file => 'foo', 94 dry_run => 1, 95); 96 97$rc = $rrd->create( 98 start => $start_time - 10, 99 step => 60, 100 data_source => { name => 'load1', 101 type => 'GAUGE', 102 heartbeat => 90, 103 min => 0, 104 max => 100.0, 105 }, 106 archive => { cfunc => 'MAX', 107 xff => '0.5', 108 cpoints => 1, 109 rows => 5, 110 }, 111); 112 113$rrd->option_add("graph", "frobnication_level"); 114 115$rrd->graph( 116 image => "mygraph.png", 117 vertical_label => 'My Salary', 118 start => $start_time, 119 end => $start_time + $nof_iterations * 60, 120 frobnication_level => 1, 121); 122 123ok(1, "survived illegal parameter"); 124 125($subref, $args, $func) = $rrd->get_exec_env(); 126like("@$args", qr/--frobnication-level 1/, 127 "illegal parameter added to rrd cmd"); 128