something strange happening with testing using Test::More I have a t directory with my .t files
Not even sure how to ask about problem? So forgive if problem is sketchy. If you don't use Test::More you will probably not be able to help. I can run perl -Mblib t/NodeMalloc.t and everything is fine when I run make test and it runs PERL_DL_NONLAZY=1 /data/cdmg/perl/5.8.0-32/SunOS/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t I get: t/NodeLayer.......ok t/NodeMalloc......ok 92/94Confused test output: test 92 answered after test 92 t/NodeMalloc......ok 93/94Confused test output: test 93 answered after test 93 t/NodeMalloc......FAILED test 91 Failed 1/94 tests, 98.94% okay Would seem to be that I have a missing '/" somewhere. I use gvim and it is color syntax'd I see no problems. Here is snippett of xs code: case lCLF: if (items NE 5) { lERROR("Node::New : CLF needs layer, width and pointer to list of points."); goto END; } if (SvTYPE(ST(2)) NE SVt_IV) { lERROR("Node::New : CLF : Arg 2 must be layer integer!"); goto END; } if (SvTYPE(ST(3)) NE SVt_IV) { lERROR("Node::New : CLF : Arg 3 must be width integer!"); goto END; } if (SvTYPE(ST(4)) NE SVt_RV) { lERROR("Node::New : CLF :arg 4 must be a reference!"); goto END; } if (SvTYPE(SvRV(ST(4))) NE SVt_PVAV) { lERROR("Node::New : CLF :arg 4 must be reference to an array!"); goto END; } av = (AV*) SvRV(ST(4)); npts = av_len(av) / 2; for (i = 0,npts = 0; i < av_len(av); i++,npts++) { pts[npts].x = SvIV(*av_fetch(av,i,0)); i++; pts[npts].y = SvIV(*av_fetch(av,i,0)); } retp = NodeMalloc(ltype ,SvIV(ST(2)) ,SvIV(ST(3)) ,npts,pts); break; Here is my .t: comments below use Data::Dumper; use Test::More tests => 94 ; use Laff; # failure ok(0); # successful ok(1); # a list to be used multiple times @pts = qw ( 0 0 0 10 10 10 10 0 0 0); ######################################################################################## ## ## build main tag types ## ######################################################################################## ok($np = Laff::Node->New , 'malloc empty node'); ok($np->Type == lNOOP , 'confirm type is lNOOP'); ok(! Laff::Node->New(11111) , 'fails does know type 11111'); ok($np = Laff::Node->New(lBOUNDARY) , 'create BOUNDARY node'); ok($np->Type == lBOUNDARY , 'confirm node is BOUNDARY'); ok($np = Laff::Node->New(lDETAIL) , 'create lDETAIL node'); ok($np->Type == lDETAIL , 'confirm node is lDETAIL'); ok($np = Laff::Node->New(lDIAGNOSTIC) , 'create lDIAGNOSTIC node'); ok($np->Type == lDIAGNOSTIC , 'confirm node is lDIAGNOSTIC'); ok($np = Laff::Node->New(lNAMES) , 'create lNAMES node'); ok($np->Type == lNAMES , 'confirm node is lNAMES'); ok($np = Laff::Node->New(lPORTS) , 'create lPORTS node'); ok($np->Type == lPORTS , 'confirm node is lPORTS'); ok($np = Laff::Node->New(lSTRUCT) , 'create lSTRUCT node'); ok($np->Type == lSTRUCT , 'confirm node is lSTRUCT'); ok($np = Laff::Node->New(lSYMBOLIC) , 'create lSYMBOLIC node'); ok($np->Type == lSYMBOLIC , 'confirm node is lSYMBOLIC'); ################################################################################################### ## ## build and check arb ## ################################################################################################### ok(! Laff::Node->New(lARB) , 'fail no layer or reference to list'); ok(! Laff::Node->New(lARB,"fail") , 'fail arg 2 must be a int'); ok(! Laff::Node->New(lARB,111,"fail") , 'fail arg 3 will not accept string'); ok(! Laff::Node->New(lARB,111,111) , 'fail arg 3 will not accept int'); ok(! Laff::Node->New(lARB,111,%_) , 'fail arg 3 will not accept hash'); ok(! Laff::Node->New(lARB,111,\%_) , 'fail arg 3 will not accept reference to hash'); ok(! Laff::Node->New(lARB,111,@pts) , 'fail arg 3 will not accept list'); ok($p = Laff::Node->New(lARB,111,[EMAIL PROTECTED]) , 'allocate new arb'); ok($p->Type == lARB , 'confirm node ia arb'); ok($p->Layer == 111 , 'confirm layer'); ok(@list = $p->Points , 'get points'); ok(0 == shift @list , 'confirm 0->x == 0'); ok(0 == shift @list , 'confirm 0->y == 0'); ok(0 == shift @list , 'confirm 1->x == 0'); ok(10 == shift @list , 'confirm 1->y == 10'); ok(10 == shift @list , 'confirm 2->x == 10'); ok(10 == shift @list , 'confirm 2->y == 10'); ok(10 == shift @list , 'confirm 3->x == 10'); ok(0 == shift @list , 'confirm 3->y == 0'); ok(! @list , 'confirm only 4 points'); ################################################################################################## # # build and check attr # ################################################################################################## ok(! Laff::Node->New(lATTR) , 'fail no value passed'); ok(! Laff::Node->New(lATTR,123) , 'fail will not accept integers'); ok(! Laff::Node->New(lATTR,[EMAIL PROTECTED]) , 'fail will not accept reference to list'); ok(! Laff::Node->New(lATTR,\%_) , 'fail will not accept reference to hash'); ok(! Laff::Node->New(lATTR,@_) , 'fail will not accept list'); ok(! Laff::Node->New(lATTR,%_) , 'fail will not accept hash'); ok($np = Laff::Node->New(lATTR,'test') , 'allocate attr with value test'); ok($np->Name eq 'TEST' , 'confirm value is TEST'); ################################################################################################## # # build and check circle # ################################################################################################## ok(! Laff::Node->New(lCIRCLE) , 'fail CIRCLE needs layer, radius, x and y.'); ok(! Laff::Node->New(lCIRCLE,"s",1,0,0) , 'fail arg 2 will not accept string'); ok(! Laff::Node->New(lCIRCLE, @_,1,0,0) , 'fail arg 2 will not accept list'); ok(! Laff::Node->New(lCIRCLE, %_,1,0,0) , 'fail arg 2 will not accept hash'); ok(! Laff::Node->New(lCIRCLE,[EMAIL PROTECTED],1,0,0) , 'fail arg 2 will not accept reference to list'); ok(! Laff::Node->New(lCIRCLE,\%_,1,0,0) , 'fail arg 2 will not accept reference to hash'); ok(! Laff::Node->New(lCIRCLE,1,"s",0,0) , 'fail arg 3 will not accept string'); ok(! Laff::Node->New(lCIRCLE,1, @_,0,0) , 'fail arg 3 will not accept list'); ok(! Laff::Node->New(lCIRCLE,1, %_,0,0) , 'fail arg 3 will not accept hash'); ok(! Laff::Node->New(lCIRCLE,1,[EMAIL PROTECTED],0,0) , 'fail arg 3 will not accept reference to list'); ok(! Laff::Node->New(lCIRCLE,1,\%_,0,0) , 'fail arg 3 will not accept reference to hash'); ok(! Laff::Node->New(lCIRCLE,1,0,"s",0) , 'fail arg 4 will not accept string'); ok(! Laff::Node->New(lCIRCLE,1,0, @_,0) , 'fail arg 4 will not accept list'); ok(! Laff::Node->New(lCIRCLE,1,0, %_,0) , 'fail arg 4 will not accept hash'); ok(! Laff::Node->New(lCIRCLE,1,0,[EMAIL PROTECTED],0) , 'fail arg 4 will not accept reference to list'); ok(! Laff::Node->New(lCIRCLE,1,0,0,\%_) , 'fail arg 5 will not accept reference to hash'); ok(! Laff::Node->New(lCIRCLE,1,0,0,"s") , 'fail arg 5 will not accept string'); ok(! Laff::Node->New(lCIRCLE,1,0,0, @_) , 'fail arg 5 will not accept list'); ok(! Laff::Node->New(lCIRCLE,1,0,0, %_) , 'fail arg 5 will not accept hash'); ok(! Laff::Node->New(lCIRCLE,1,0,0,[EMAIL PROTECTED]) , 'fail arg 5 will not accept reference to list'); ok(! Laff::Node->New(lCIRCLE,1,0,0,\%_) , 'fail arg 5 will not accept reference to hash'); ok($np = Laff::Node->New(lCIRCLE,2,20,30,40) , 'allocate circle node'); ok($np->Type == lCIRCLE , 'confirm node is lCIRCLE'); ok($np->Layer == 2 , 'confirm layer is 2'); ok($np->Radius == 20 , 'confirm radius is 20'); ok(@list = $np->Points , 'get points'); ok(2 == scalar(@list) , 'confirm 2 points'); ok(30 == $list[0] , 'confirm x is 30'); ok(40 == $list[1] , 'confirm y is 40'); ################################################################################################### ## ## build and check circle ## ################################################################################################### ok(! Laff::Node->New(lCLF) , 'fail CLF needs layer, width and reference to list'); ok(! Laff::Node->New(lCLF,"s",3,20) , 'fail arg 2 will not accept a string'); ok(! Laff::Node->New(lCLF, @_,3,20) , 'fail arg 2 will not accept a list'); ok(! Laff::Node->New(lCLF, %_,3,20) , 'fail arg 2 will not accept a hash'); ok(! Laff::Node->New(lCLF,[EMAIL PROTECTED],3,20) , 'fail arg 2 will not accept a reference to a list'); ok(! Laff::Node->New(lCLF,\%_,3,20) , 'fail arg 2 will not accept a reference to a hash'); COMMENT ADDED if I comment out the previous line I get no errors t/NodeMalloc......ok 92/94Confused test output: test 92 answered after test 92 t/NodeMalloc......ok 93/94Confused test output: test 93 answered after test 93 which are the checks below. END COMMENT ################################################################################################## # # build and check connect # ################################################################################################## ok(! Laff::Node->New(lCONNECT) , 'fail CONNECT needs id number and signal name'); ok(! Laff::Node->New(lCONNECT,'s',1) , 'fail arg 2 will not accept string'); ok(! Laff::Node->New(lCONNECT, @_,1) , 'fail arg 2 will not accept list'); ok(! Laff::Node->New(lCONNECT, %_,1) , 'fail arg 2 will not accept hash'); ok(! Laff::Node->New(lCONNECT,\%_,1) , 'fail arg 2 will not accept refernece to hash'); ok(! Laff::Node->New(lCONNECT,[EMAIL PROTECTED],1) , 'fail arg 2 will not accept reference to list'); ok(! Laff::Node->New(lCONNECT,1,1) , 'fail arg 2 will not accept int'); ok(! Laff::Node->New(lCONNECT,1, @_) , 'fail arg 2 will not accept list'); ok(! Laff::Node->New(lCONNECT,1, %_) , 'fail arg 2 will not accept hash'); ok(! Laff::Node->New(lCONNECT,1,\%_) , 'fail arg 2 will not accept refernece to hash'); ok(! Laff::Node->New(lCONNECT,1,[EMAIL PROTECTED]) , 'fail arg 2 will not accept reference to list'); ok($np = Laff::Node->New(lCONNECT,1,'test') , 'allocate connect node'); ok($np->Id == 1 , 'confirm id is 1'); ok($np->Name eq 'TEST' , 'confirm name is test'); ___ _ ____ ___ __ __ / _ )(_) / /_ __ / _ \___ _/ /_/ /____ ___ / _ / / / / // / / ___/ _ `/ __/ __/ _ \/ _ \ /____/_/_/_/\_, / /_/ \_,_/\__/\__/\___/_//_/ /___/ Texas Instruments ASIC Circuit Design Methodlogy Group Dallas, Texas, 214-480-4455, [EMAIL PROTECTED]