Checking if your kit is complete... Looks good Writing Makefile for config-model /Users/cpanrun/build/5.10.0/bin/perl -MParse::RecDescent - ValueFormulaGrammar.txt Config::Model::ValueFormulaParser precompiling grammar from file 'ValueFormulaGrammar.txt' to class Config::Model::ValueFormulaParser in module file 'ValueFormulaParser.pm' echo "" >> ValueFormulaParser.pm echo "1;" >> ValueFormulaParser.pm cp HashId.pm blib/lib/Config/Model/HashId.pm cp Exception.pm blib/lib/Config/Model/Exception.pm cp WarpedNode.pm blib/lib/Config/Model/WarpedNode.pm cp Loader.pm blib/lib/Config/Model/Loader.pm cp Searcher.pm blib/lib/Config/Model/Searcher.pm cp ValueFormulaParser.pm blib/lib/Config/Model/ValueFormulaParser.pm cp AnyId.pm blib/lib/Config/Model/AnyId.pm cp WarpedThing.pm blib/lib/Config/Model/WarpedThing.pm cp ListId.pm blib/lib/Config/Model/ListId.pm cp Instance.pm blib/lib/Config/Model/Instance.pm cp Model.pm blib/lib/Config/Model.pm cp Value.pm blib/lib/Config/Model/Value.pm cp ObjTreeScanner.pm blib/lib/Config/Model/ObjTreeScanner.pm cp ValueComputer.pm blib/lib/Config/Model/ValueComputer.pm cp Node.pm blib/lib/Config/Model/Node.pm cp Dumper.pm blib/lib/Config/Model/Dumper.pm cp AnyThing.pm blib/lib/Config/Model/AnyThing.pm Manifying blib/man3/Config::Model::ListId.3pm Manifying blib/man3/Config::Model::Instance.3pm Manifying blib/man3/Config::Model.3pm Manifying blib/man3/Config::Model::Value.3pm Manifying blib/man3/Config::Model::HashId.3pm Manifying blib/man3/Config::Model::Exception.3pm Manifying blib/man3/Config::Model::WarpedNode.3pm Manifying blib/man3/Config::Model::ObjTreeScanner.3pm Manifying blib/man3/Config::Model::Searcher.3pm Manifying blib/man3/Config::Model::Loader.3pm Manifying blib/man3/Config::Model::ValueFormulaParser.3pm Manifying blib/man3/Config::Model::AnyId.3pm Manifying blib/man3/Config::Model::ValueComputer.3pm Manifying blib/man3/Config::Model::Node.3pm Manifying blib/man3/Config::Model::WarpedThing.3pm Manifying blib/man3/Config::Model::AnyThing.3pm Manifying blib/man3/Config::Model::Dumper.3pm PERL_DL_NONLAZY=1 /Users/cpanrun/build/5.10.0/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/array_id................1..11 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - bounded list created ok 4 - stored in 1 ok 5 - stored in 0 ok 6 - stored in 2 ok 7 - max error ok 8 - check ids ok 9 - check deleted id ok 10 - check list index_type ok 11 - check list max boundary ok t/dump_tree...............1..6 ok 1 - compiled ok 2 - created dummy instance ok 3 - Config root created ok 4 - set up data in tree with 'std_id:ab X=Bv - std_id:bc X=Av - a_string="toto tata"' ok 5 - check dump of only customized values ok 6 - check dump of all values ok t/grab....................1..27 ok 1 - compiled ok 2 - created dummy instance ok 3 - load 'std_id:ab X=Bv - std_id:bc X=Av - a_string="titi , toto" ' ok 4 - test grab olist:0 ok 5 - Test grab with wrong parameter ok 6 - Test grab with wrong element ok 7 - test grab olist ok 8 - location test ok 9 - grab std_id:ab... ok 10 - ... and test its location ok 11 - grab olist:0... ok 12 - ... and test its location ok 13 - grab olist:1... ok 14 - ... and test its location ok 15 - grab warp... ok 16 - ... and test its location ok 17 - grab warp std_id:toto... ok 18 - ... and test its location ok 19 - test grab with '?warp' ok 20 - The object isa Config::Model::WarpedNode ok 21 - test grab with '?std_id:ab' ok 22 - The object isa Config::Model::Node ok 23 - test grab with '?hash_a:ab' ok 24 - The object isa Config::Model::Value ok 25 - test grab with '?std_id' ok 26 - The object isa Config::Model::HashId ok 27 - test grab with wrong step: '?argh' ok t/hash_id_of_node.........1..6 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - bounded hash created ok 4 - check hash id name ok 5 - fetched element id 1 isa Config::Model::Node ok 6 - check config_class_name ok t/hash_id_of_values.......1..32 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - bounded hash created ok 4 - check hash id name ok 5 - fetched element id 1 isa Config::Model::Value ok 6 - Storing in id 1 ok 7 - Storing in id 2 ok 8 - empty index error ok 9 - min error ok 10 - max error ok 11 - max nb error ok 12 - delete id 2 ok 13 - deleted id does not exist ok 14 - reading value_type ok 15 - reading max boundary ok 16 - created hash_with_auto_created_id ok 17 - check auto-created id ok 18 - ...idem ok 19 - ...idem after creating another id ok 20 - check the 2 ids ok 21 - created hash_with_default_id ... ok 22 - check default id ok 23 - ...and test default id on empty hash ok 24 - created hash_with_default_id_2 ... ok 25 - ... store a value... ok 26 - ...check existing id... ok 27 - ...and test that default id is not provided ok 28 - created hash_with_several_default_keys ... ok 29 - ...check default id ok 30 - created hash_with_several_auto_created_id ... ok 31 - ... store a value... ok 32 - ...check id... ok t/instance................1..19 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - test config root class isa Config::Model::Node ok 4 - test value check, push fetch store ok 5 ok 6 ok 7 ok 8 - test value check, push type ok 9 ok 10 ok 11 - test value check, pop type ok 12 ok 13 ok 14 - test value check, pop fetch store ok 15 ok 16 ok 17 - test empty private data ... ok 18 - store private data ok 19 - retrieve private data ok t/load....................1..33 ok 1 - compiled ok 2 - created dummy instance ok 3 - load 'std_id:ab X=Bv - std_id:bc X=Av - a_string="titi , toto" ' ok 4 - check a_string ok 5 - Set tree_macro ok 6 - load wrong 'std_id:ab ZZX=Bv - std_id:bc X=Bv' ok 7 - load 'lista=a,b,c,d olist:0 X=Av - olist:1 X=Bv - listb=b,c,d' ok 8 - check list element_name ok 9 - check list element 0 class ok 10 - check list element 1 class ok 11 - check lista class isa Config::Model::ListId ok 12 - check lista element 0 class isa Config::Model::Value ok 13 - check lista element 1 class isa Config::Model::Value ok 14 - check list element 0 content ok 15 - check list element 1 content ok 16 - check lista element 0 content ok 17 - check lista element 1 content ok 18 - check lista element 2 content ok 19 - check lista element 3 content ok 20 - load quoted string: 'a_string="foo bar"' ok 21 - check result ok 22 - load : 'a_string="foo bar baz" lista=a,b,c,d,e' ok 23 - check result ok 24 - check lista element 0 content ok 25 - check lista element 1 content ok 26 - check lista element 2 content ok 27 - check lista element 3 content ok 28 - check lista element 4 content ok 29 - load : 'std_id:f/o/o:b.ar X=Bv' ok 30 - check result ok 31 - load : 'hash_a:a=z hash_a:b=z2' ok 32 - check result ok 33 - check result ok t/multi_warp_object.......1..21 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - Created Root ok 4 - check element bar for intermediate user (not available because macro* are undef) ok 5 - check element bar for advanced user (not available because macro* are undef) ok 6 - set macro1 to A ok 7 - check element bar for intermediate user (not available because macro2 is undef) ok 8 - check element bar for advanced user (not available because macro2 is undef) ok 9 - writing to slave->bar (fails tree_macro is undef) ok 10 - set macro2 to C ok 11 - check element bar for intermediate user (not available) ok 12 - check element bar for advanced user (now available) ok 13 - check bar:1 config class name ok 14 - check bar permission ok 15 - set macro2 to D ok 16 - check bar:1 config class name (is SlaveZ) ok 17 - check bar permission ok 18 - set macro1 to B ok 19 - check bar:1 config class name (is now SlaveZ) ok 20 - check element bar permission (back to advanced ) ok 21 - test number of warper for bar elements ok t/multi_warp_value........1..56 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - Test _dclone_key (single key) ok 4 - Test _expand_key (single key) ok 5 - Test _expand_rules ( single keys) ok 6 - Test _dclone_key (backward) ok 7 - Test _expand_key (backward) ok 8 - Test _expand_rules (backward) ok 9 - Test _dclone_key ok 10 - Test _expand_key ok 11 - Test _expand_rules ok 12 - Setting Root macro1 to A1 ok 13 - Setting Root macro2 to A2 ok 14 - Setting Root macro3 to A3 ok 15 - Reading Root slot m1 ok 16 - Reading Root slot m2 ok 17 - Setting Root macro3 to B3 ok 18 - Reading Root slot m1 ok 19 - Reading Root slot m2 ok 20 - Setting Root macro2 to B2 ok 21 - Setting Root macro3 to A3 ok 22 - Reading Root slot m1 ok 23 - Reading Root slot m2 ok 24 - Setting Root macro3 to B3 ok 25 - Reading Root slot m1 ok 26 - Reading Root slot m2 ok 27 - Setting Root macro2 to C2 ok 28 - Setting Root macro3 to A3 ok 29 - Reading Root slot m1 ok 30 - Reading Root slot m2 ok 31 - Setting Root macro3 to B3 ok 32 - Reading Root slot m1 ok 33 - Reading Root slot m2 ok 34 - Setting Root macro1 to B1 ok 35 - Setting Root macro2 to A2 ok 36 - Setting Root macro3 to A3 ok 37 - Reading Root slot m1 ok 38 - Reading Root slot m2 ok 39 - Setting Root macro3 to B3 ok 40 - Reading Root slot m1 ok 41 - Reading Root slot m2 ok 42 - Setting Root macro2 to B2 ok 43 - Setting Root macro3 to A3 ok 44 - Reading Root slot m1 ok 45 - Reading Root slot m2 ok 46 - Setting Root macro3 to B3 ok 47 - Reading Root slot m1 ok 48 - Reading Root slot m2 ok 49 - Setting Root macro2 to C2 ok 50 - Setting Root macro3 to A3 ok 51 - Reading Root slot m1 ok 52 - Reading Root slot m2 ok 53 - Setting Root macro3 to B3 ok 54 - Reading Root slot m1 ok 55 - Reading Root slot m2 ok 56 - test number of warp roots ok t/node....................1..49 ok 1 - Model created ok 2 - Instance created ok 3 - Config root created ok 4 - Created Master Element X of node captain bar is deprecated Element X of node captain bar is deprecated Element X of node array_args bar is deprecated Element X of node array_args bar is deprecated Element X of node hash_args bar is deprecated Element X of node hash_args bar is deprecated ok 5 - check Master elements ok 6 - check Master elements ok 7 - check Master elements ok 8 - Created Captain ok 9 - test class_name ok 10 - test element_name ok 11 - test name ok 12 - test captain location ok 13 - Created Sarge ok 14 - check Y permission ok 15 - check Z permission Element X of node captain bar is deprecated ok 16 - check X permission ok 17 - test X value ok 18 - test Y value ok 19 - test Z value ok 20 - fetch_element with unexpected permission Element X of node captain bar is deprecated ok 21 - check error message ok 22 - fetch_element with unexpected permission ok 23 - check error message Element X of node array_args bar is deprecated Element X of node array_args bar is deprecated ok 24 - Testing X modif done through array ref constructor arg ok 25 ok 26 Element X of node hash_args bar is deprecated ok 27 - test bar config_class_name ok 28 - test bar element_name ok 29 - test bar name Element X of node hash_args bar is deprecated ok 30 - test bar location ok 31 - Testing X modif done through hash ref constructor arg ok 32 - checking X permission ok 33 - Created 2nd Master isa Config::Model::Instance ok 34 - created 2nd tree isa Config::Model::Node ok 35 - Test master global help ok 36 - Test master slot help captain ok 37 - Test master slot help hash_args ok 38 - Test sarge slot help X ok 39 - Non-existing element ok 40 - test element ok 41 - test (non) importance ok 42 - test importance ok 43 - test importance ok 44 - test hidden ok 45 - test importance ok 46 - test next_element (undef) ok 47 - test next_element () ok 48 - test next_element (captain) ok 49 - test next_element (array_args) ok t/obj_tree_scanner........1..9 ok 1 - compiled ok 2 - created dummy instance ok 3 - set up data in tree with 'std_id:ab X=Bv - std_id:bc X=Av - a_string="toto tata"' ok 4 - set up ObjTreeScanner ok 5 - performed scan ok 6 - check result ok 7 - set up ObjTreeScanner with fallback ok 8 - performed scan with fallback ok 9 - check result ok t/recursive_warp_value....1..20 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - Set macro to A ok 4 - Reading Master element m1 ok 5 - Reading Master element m2a ok 6 - Reading Master element m2b ok 7 - Reading Master element e1 ok 8 - Reading Master element e2 ok 9 - Set macro to B ok 10 - Reading Master element m1 ok 11 - Reading Master element m2a ok 12 - Reading Master element m2b ok 13 - Reading Master element e1 ok 14 - Reading Master element e2 ok 15 - Set macro to C ok 16 - Reading Master element m1 ok 17 - Reading Master element m2a ok 18 - Reading Master element m2b ok 19 - Reading Master element e1 ok 20 - Reading Master element e2 ok t/search_element..........1..15 ok 1 - compiled ok 2 - created dummy instance ok 3 - verify search on SlaveZ ok 4 - verify search on SlaveY ok 5 - verify search on Master ok 6 - check first step ok 7 - check choosen object ok 8 - check auto choosen object for X ok 9 - check that no more steps are left ok 10 - check auto choosen object for aa ok 11 - check object of element call-back (DX)) ok 12 - check param of element call-back (DX) ok 13 - check auto choosen object for DX (warp) ok 14 - check auto_choose target for DX (olist) ok 15 - check auto_choose target for DX (std_id) ok t/value...................1..74 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - test create expected failure ok 4 - test create bounded integer ok 5 - store test ok 6 - fetch test ok 7 - bounded integer: max error ok 8 - bounded integer: string error ok 9 - bounded integer: number error ok 10 - created Master bounded_number ok 11 - assign 1 ok 12 - assign 1.5 ok 13 - bounded integer: string error ok 14 - store undef ok 15 - created mandatory_string ok 16 - mandatory string: undef error ok 17 - mandatory_string: store ok 18 - and read ok 19 - created mandatory_boolean ok 20 - mandatory bounded: undef error ok 21 - mandatory bounded: store string error ok 22 - mandatory bounded: store 2 error ok 23 - mandatory boolean: set to 1 ok 24 - mandatory boolean: read ok 25 - mandatory boolean: set to yes ok 26 - and read ok 27 - mandatory boolean: set to Yes ok 28 - and read ok 29 - mandatory boolean: set to no ok 30 - and read ok 31 - mandatory boolean: set to Nope ok 32 - and read ok 33 - mandatory boolean: set to true ok 34 - and read ok 35 - mandatory boolean: set to False ok 36 - and read ok 37 - test create expected failure with enum with wrong default ok 38 - Created enum with correct default ok 39 - enum: store 'toto' error ok 40 - enum with default: read default value ok 41 - enum with default: read custom value ok 42 - enum: store B ok 43 - enum: read custom value ok 44 - enum: read standard value ok 45 - enum: check value_type ok 46 - enum: warping default value ok 47 - enum: check new default value ok 48 - enum: warped default value to wrong value ok 49 - enum: warping choice ok 50 - enum: warping default value to new choice ok 51 - enum: warping choice to completely different set ok 52 - enum: check that new default value is undef ok 53 - enum: check that new current value is undef ok 54 - enum: set a new value ok 55 - Creating enum_integer ok 56 - enum_integer: store 1 ok 57 - and read ok 58 - enum integer: max error ok 59 - enum integer: string error ok 60 - enum integer: store'none' value ok 61 - and read ok 62 - enum integer: negative value ok 63 - and read ok 64 - enum integer: too negative value ok 65 - enum integer: too many -- ok 66 - testing convert => uc ok 67 - uc_convert: testing store ok 68 - uc_convert: testing read ok 69 - testing convert => lc ok 70 - lc_convert: testing store ok 71 - lc_convert: testing read ok 72 - full enum help ok 73 - enum help on one choice ok 74 - test undef help ok t/value_compute...........1..28 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - check available elements ok 4 - created av and bv values ok 5 - create computed integer value (av + bv) ok 6 - test pre_compute parser on a very small formula: '$bar' ok 7 - test compute parser on a very small formula with undef variable ok 8 - test compute parser on a very small formula: '$bar' ok 9 - test pre-compute parser with substitution ok 10 - test compute parser with subsitution ok 11 - test pre_compute parser with a string ok 12 - test compute parser with a string ok 13 - test pre_compute parser with function (&element) ok 14 - test compute parser with function (&element) ok 15 - test that compute croaks with undefined variables ok 16 - test result : computed integer is 3 (a: 1, b: 2) ok 17 - test assignment to a computed value (normal error) ok 18 - result has not changed ok 19 - test result : computed integer is -1 (a: 1, b: -2) ok 20 - change bv value ok 21 - computed integer: computed value error ok 22 - disable fetch value check ok 23 - test result : computed integer is undef (a: 1, b: -2) ok 24 - enable fetch value check ok 25 - test for undef variables in string ok 26 - test result : computed string is 'meet Linus and his penguin' (a: Linus, b: his penguin) ok 27 - test computed value ok 28 - test overridden value ok t/value_refer_to..........1..13 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - Created Root ok 4 - host setup done ok 5 - got lan:A node:1lan:A node:1 ok 6 - setup host=A ok 7 - set up if=eth0 ok 8 - got ip 10.0.0.1 ok 9 - lan setup done ok 10 - got ip 10.0.0.1 ok 11 - got ip 10.0.0.2 ok 12 - got ip 10.0.1.1 ok 13 - got ip 10.0.1.2 ok t/value_simple_warp.......1..23 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - set up warped object with wrong rules syntax ok 4 - set up warped object with wrong rules semantic ok 5 - wrong rules semantic warped object blows up ok 6 - set up warped object ok 7 - try to read warped object while warp master is undef ok 8 - store F in warp master ok 9 - read warped object default value ok 10 - store F2 in warped object ok 11 - and read ok 12 - set up recursive_warped_object ok 13 - try to read recursive warped object while its warp master is F2 ok 14 - recursive_warped_object blows up ok 15 - store F in warped object ok 16 - read recursive_warped_object: default value was set by warp master ok 17 - warp 'enum' so that F2 value is clobbered (outside new choice) ok 18 - set value valid for both warp, warp w1 to G and test that the value is still ok ok 19 - test unset value for w2 after setting warp master ok 20 - idem for w3 ok 21 - set warp master to G and test unset value for w1 ... 2 and w3 ok 22 - ... and w2 ... ok 23 - ... and w3 ok t/warped_id...............1..30 ok 1 - Compilation done ok 2 - compiled ok 3 - created dummy instance ok 4 - Set macro to A ok 5 - Check macro ok 6 - Set one slave ok 7 - Set second slave (normal error) ok 8 - Set macro to B ok 9 - Set second slave ok 10 - Set third slave (normal error) ok 11 - Set macro to C (warp_reset) ok 12 - Set third slave ok 13 - Set fourth slave (normal error) ok 14 - Set macro to B: limit max to 2 when the hash has id '3' ok 15 - Set macro to B (limit max to 2) ok 16 - check reduced key set ok 17 - check multi_warp default max ok 18 - check multi_auto_create default max ok 19 - set version to 2 ok 20 - set macro to C ok 21 - check multi_warp default index parameter ok 22 - check multi_warp default key set with different warp master ok 23 - store Av in X ok 24 - check X value ok 25 - check multi_warp warped_hash max ok 26 - check multi_auto_create default key set with different warp master ok 27 - check X value ok 28 - check multi_auto_create warped_hash max ok 29 - assign new value to warp master (same effect) ok 30 - check X value after assign ok t/warped_node.............1..32 ok 1 - Compilation done ok 2 - compiled ok 3 - created dummy instance ok 4 - check that a_hash_of_warped_nodes is not available ok 5 - test stored on a warped node element (should fail) ok 6 - set master->tree_macro to XY ok 7 - reading a_hash_of_warped_nodes (is SlaveY because tree_macro was set) ok 8 - set master->tree_macro to XZ ok 9 - reading a_hash_of_warped_nodes (is SlaveZ because tree_macro was set) ok 10 - reading master a_hash_of_warped_nodes:234 X (undef) ok 11 - set master v_macro to A ok 12 - reading master a_hash_of_warped_nodes:234 X (default value) ok 13 - reading master a_hash_of_warped_nodes:234 Z (default value) ok 14 - Set master a_hash_of_warped_nodes:234 X to Cv ok 15 - Set master a_hash_of_warped_nodes:234 Z to Cv ok 16 - set master->tree_macro to mXY (with morphing)... ok 17 - ... X value was kept ... ok 18 - ... Y is back to default value ok 19 - set master v_macro to B ok 20 - ... X value was kept ... ok 21 - ... Y is to new default value ok 22 - created warped node isa Config::Model::WarpedNode ok 23 - Check element name of warped node ok 24 - Check index value of warped node ok 25 - Check element name of actual node below warped node ok 26 - Check index value of actual node below warped node ok 27 - reading elements of root ok 28 - set master->tree_macro to W (warp out)... ok 29 - reading elements of root after warp out ok 30 - reading elements of root after warp out ok 31 - set master->b_macro to 1 (warp in bool_object)... ok 32 - check theorical bool_object type... ok t/warped_value............1..43 ok 1 - Compilation done ok 2 - created dummy instance ok 3 - Elements of Master ok 4 - Elements of Slave from the model ok 5 - Created slave(bar) ok 6 - Elements of Slave from the object ok 7 - reading slave->W (undef value_type error) ok 8 - reading slave->X (undef) ok 9 - setting master->macro to A ok 10 - reading slave->X (Av) ok 11 - reading slave->Y (Av) ok 12 - reading slave->Z (Av) ok 13 - setting master->macro to C ok 14 - reading slave->X (undef) ok 15 - Slave elements from the object (W pops in when macro is set to A) ok 16 - Slave elements from the object (W's out when macro is set to B) ok 17 - Slave elements from the object for advanced level ok 18 - reading slave->X (Bv) ok 19 - reading slave->Y (Bv) ok 20 - reading slave->Z (Bv) ok 21 - Set slave->Y to Cv ok 22 - reading slave->W (undef value_type error) ok 23 - reading slave->X (undef) ok 24 - reading slave->Z (undef) ok 25 - reading slave->Y (Cv) ok 26 - reading slave->Comp ok 27 - set m_value to Cv ok 28 - Created new big compute object isa Config::Model::Value ok 29 - testing pre_compute with & and &index on $big_compute_obj ok 30 - testing pre_compute with &element(stuff) and &index($stuff) ok 31 - reading slave->big_compute(test1) ok 32 - reading slave->big_compute(b1) ok 33 - reading rslave1->big_replace(br1) ok 34 - reading rslave2->big_replace(br1) ok 35 - reading rslave1->macro_replace(br1) ok 36 - reading rslave2->macro_replace(br1) ok 37 - reading root->compute ok 38 - reading macro slaves ok 39 - check names of values using 'macro' element ok 40 - reading var_path while where_is_element variable is undef ok 41 - reading var_path while get_element variable is undef ok 42 - reading var_path through m_value element ok 43 - reading var_path through compute element ok All tests successful. Files=20, Tests=547, 10 wallclock secs ( 7.64 cusr + 1.46 csys = 9.10 CPU) make: *** [htmlifypods] Hangup