Checking if your kit is complete... Looks good Writing Makefile for Class::MakeMethods::Emulator cp Emulator/Changes.pod blib/lib/Class/MakeMethods/Emulator/Changes.pod cp Emulator/Singleton.pm blib/lib/Class/MakeMethods/Emulator/Singleton.pm cp Emulator/MethodMaker.pm blib/lib/Class/MakeMethods/Emulator/MethodMaker.pm cp Emulator/Inheritable.pm blib/lib/Class/MakeMethods/Emulator/Inheritable.pm cp Emulator.pm blib/lib/Class/MakeMethods/Emulator.pm cp Emulator/AccessorFast.pm blib/lib/Class/MakeMethods/Emulator/AccessorFast.pm cp Emulator/Struct.pm blib/lib/Class/MakeMethods/Emulator/Struct.pm cp Emulator/ToDo.pod blib/lib/Class/MakeMethods/Emulator/ToDo.pod Manifying blib/man3/Class::MakeMethods::Emulator::Singleton.3 Manifying blib/man3/Class::MakeMethods::Emulator::Changes.3 Manifying blib/man3/Class::MakeMethods::Emulator::MethodMaker.3 Manifying blib/man3/Class::MakeMethods::Emulator::Inheritable.3 Manifying blib/man3/Class::MakeMethods::Emulator.3 Manifying blib/man3/Class::MakeMethods::Emulator::AccessorFast.3 Manifying blib/man3/Class::MakeMethods::Emulator::Struct.3 Manifying blib/man3/Class::MakeMethods::Emulator::ToDo.3 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/Class_Accessor_Fast............1..20 ok 1 - compile() ok 2 - accessor get/set ok 3 - accessor read-only ok 4 - accessor read-only: write protection ok 5 - accessor write-only ok 6 - accessor write-only: read protection ok 7 - accessor alias ok 8 ok 9 ok 10 - bad accessor() ok 11 - accessor get in list context ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok t/Class_Inheritable..............1..12 ok 1 - compile ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok t/Class_Inheritable_trans........1..12 ok 1 - compile ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok t/Class_Singleton................1..22 ok 1 Class::Singleton instance 1: Class::MakeMethods::Emulator::Singleton=HASH(0x181ada0) ok 2 Class::Singleton instance 2: Class::MakeMethods::Emulator::Singleton=HASH(0x181ada0) ok 3 Class::Singleton instances are identical ok 4 DerivedSingleton instance 1: DerivedSingleton=HASH(0x181ae30) ok 5 DerivedSingleton instance 2: DerivedSingleton=HASH(0x181ae30) ok 6 DerivedSingleton instances are identical ok 7 AnotherSingleton instance 1: AnotherSingleton=HASH(0x181aeb0) ok 8 AnotherSingleton instance 2: AnotherSingleton=HASH(0x181aeb0) ok 9 AnotherSingleton instances are identical ok 10 Class::Singleton and DerviedSingleton are different ok 11 Class::Singleton and AnotherSingleton are different ok 12 DerivedSingleton and AnotherSingleton are different ok 13 ListSingleton #1 is defined ok 14 ListSingleton #2 is defined ok 15 ListSingleton #1 and #2 correctly reference the same list ok 16 ListSingleton correctly contains a list reference ok 17 ConfigSingleton #1 is defined ok 18 ConfigSingleton #2 is defined ok 19 ConfigSingleton #1 and #2 correctly reference the same object ok 20 ConfigSingleton #1 correctly has 3 keys ok 21 ConfigSingleton #2 correctly has 3 keys ok 22 ok t/Class_Singleton_transparent....1..22 ok 1 Class::Singleton instance 1: Class::MakeMethods::Emulator::Singleton=HASH(0x181ae80) ok 2 Class::Singleton instance 2: Class::MakeMethods::Emulator::Singleton=HASH(0x181ae80) ok 3 Class::Singleton instances are identical ok 4 DerivedSingleton instance 1: DerivedSingleton=HASH(0x181af00) ok 5 DerivedSingleton instance 2: DerivedSingleton=HASH(0x181af00) ok 6 DerivedSingleton instances are identical ok 7 AnotherSingleton instance 1: AnotherSingleton=HASH(0x181af80) ok 8 AnotherSingleton instance 2: AnotherSingleton=HASH(0x181af80) ok 9 AnotherSingleton instances are identical ok 10 Class::Singleton and DerviedSingleton are different ok 11 Class::Singleton and AnotherSingleton are different ok 12 DerivedSingleton and AnotherSingleton are different ok 13 ListSingleton #1 is defined ok 14 ListSingleton #2 is defined ok 15 ListSingleton #1 and #2 correctly reference the same list ok 16 ListSingleton correctly contains a list reference ok 17 ConfigSingleton #1 is defined ok 18 ConfigSingleton #2 is defined ok 19 ConfigSingleton #1 and #2 correctly reference the same object ok 20 ConfigSingleton #1 correctly has 3 keys ok 21 ConfigSingleton #2 correctly has 3 keys ok 22 ok t/Class_Struct...................1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok t/Class_Struct_compare...........1..44 # Running under perl version 5.010000 for darwin # Current time local: Fri Nov 23 19:32:59 2007 # Current time GMT: Sat Nov 24 03:32:59 2007 # Using Test.pm version 1.25 { package MyStructArray; use Carp; sub new { my ($class, %init) = @_; $class = __PACKAGE__ unless @_; my($r) = []; $r->[0] = defined($init{'s'}) ? $init{'s'} : undef; # s croak 'Initializer for a must be array reference' if defined($init{'a'}) && ref($init{'a'}) ne 'ARRAY'; $r->[1] = defined($init{'a'}) ? $init{'a'} : []; # a croak 'Initializer for h must be hash reference' if defined($init{'h'}) && ref($init{'h'}) ne 'HASH'; $r->[2] = defined($init{'h'}) ? $init{'h'} : {}; # h if (defined($init{'c'})) { if (ref $init{'c'} eq 'HASH') { $r->[3] = My_Other_Class->new(%{$init{'c'}}) } # c elsif (UNIVERSAL::isa($init{'c'}, 'My_Other_Class')) { $r->[3] = $init{'c'} } # c else { croak 'Initializer for c must be hash or My_Other_Class reference' } } bless $r, $class; } sub s { my $r = shift; croak 'Too many args to s' if @_ > 1; @_ ? ($r->[0] = shift) : $r->[0]; } sub a { my $r = shift; my $i; @_ ? ($i = shift) : return $r->[1]; if (ref($i) eq 'ARRAY' && !@_) { $r->[1] = $i; return $r } croak 'Too many args to a' if @_ > 1; @_ ? ($r->[1]->[$i] = shift) : $r->[1]->[$i]; } sub h { my $r = shift; my $i; @_ ? ($i = shift) : return $r->[2]; if (ref($i) eq 'HASH' && !@_) { $r->[2] = $i; return $r } croak 'Too many args to h' if @_ > 1; @_ ? ($r->[2]->{$i} = shift) : $r->[2]->{$i}; } sub c { my $r = shift; croak 'c argument is wrong class' if @_ && ! UNIVERSAL::isa($_[0], 'My_Other_Class'); croak 'Too many args to c' if @_ > 1; @_ ? ($r->[3] = shift) : $r->[3]; } } 1; { package MyStructHash; use Carp; sub new { my ($class, %init) = @_; $class = __PACKAGE__ unless @_; my($r) = {}; if (defined($init{'c'})) { if (ref $init{'c'} eq 'HASH') { $r->{'MyStructHash::c'} = My_Other_Class->new(%{$init{'c'}}) } elsif (UNIVERSAL::isa($init{'c'}, 'My_Other_Class')) { $r->{'MyStructHash::c'} = $init{'c'} } else { croak 'Initializer for c must be hash or My_Other_Class reference' } } croak 'Initializer for h must be hash reference' if defined($init{'h'}) && ref($init{'h'}) ne 'HASH'; $r->{'MyStructHash::h'} = defined($init{'h'}) ? $init{'h'} : {}; croak 'Initializer for a must be array reference' if defined($init{'a'}) && ref($init{'a'}) ne 'ARRAY'; $r->{'MyStructHash::a'} = defined($init{'a'}) ? $init{'a'} : []; $r->{'MyStructHash::s'} = defined($init{'s'}) ? $init{'s'} : undef; bless $r, $class; } sub c { my $r = shift; croak 'c argument is wrong class' if @_ && ! UNIVERSAL::isa($_[0], 'My_Other_Class'); croak 'Too many args to c' if @_ > 1; @_ ? ($r->{'MyStructHash::c'} = shift) : $r->{'MyStructHash::c'}; } sub h { my $r = shift; my $i; @_ ? ($i = shift) : return $r->{'MyStructHash::h'}; if (ref($i) eq 'HASH' && !@_) { $r->{'MyStructHash::h'} = $i; return $r } croak 'Too many args to h' if @_ > 1; @_ ? ($r->{'MyStructHash::h'}->{$i} = shift) : $r->{'MyStructHash::h'}->{$i}; } sub a { my $r = shift; my $i; @_ ? ($i = shift) : return $r->{'MyStructHash::a'}; if (ref($i) eq 'ARRAY' && !@_) { $r->{'MyStructHash::a'} = $i; return $r } croak 'Too many args to a' if @_ > 1; @_ ? ($r->{'MyStructHash::a'}->[$i] = shift) : $r->{'MyStructHash::a'}->[$i]; } sub s { my $r = shift; croak 'Too many args to s' if @_ > 1; @_ ? ($r->{'MyStructHash::s'} = shift) : $r->{'MyStructHash::s'}; } } 1; ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok t/MethodMaker_abstract...........1..2 ok 1 ok 2 ok t/MethodMaker_boolean.092........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_boolean............1..19 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok t/MethodMaker_code...............1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok t/MethodMaker_copy...............1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok t/MethodMaker_counter............1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok t/MethodMaker_get_concat.092.....1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok t/MethodMaker_get_concat.........1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok t/MethodMaker_get_set.092........1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok t/MethodMaker_get_set............1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok t/MethodMaker_grouped_fields.....1..16 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok t/MethodMaker_hash.092...........1..21 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok t/MethodMaker_hash...............1..25 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok t/MethodMaker_hash_of_lists......1..43 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok t/MethodMaker_key_attrib.........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_key_with_create....1..18 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok t/MethodMaker_list.092...........1..12 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok t/MethodMaker_list...............1..20 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok t/MethodMaker_listed_attrib......1..15 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok t/MethodMaker_method.............1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok t/MethodMaker_new.092............1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok t/MethodMaker_new................1..19 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok t/MethodMaker_object.092.........1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/MethodMaker_object.............1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/MethodMaker_object_list........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_static_get_set.....1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok t/MethodMaker_static_hash.092....1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok t/MethodMaker_static_hash........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_struct.............1..15 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 a b c d e ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok t/MethodMaker_sugar.092..........1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok t/MethodMaker_tie_hash...........1..14 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok All tests successful. Files=38, Tests=610, 4 wallclock secs ( 2.25 cusr + 0.70 csys = 2.95 CPU) Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/AccessorFast.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/Changes.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/Inheritable.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/MethodMaker.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/Singleton.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/Struct.html Installing /Users/cpanrun/build/5.10.0/html/site/lib/Class/MakeMethods/Emulator/ToDo.html Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator.pm Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/AccessorFast.pm Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/Changes.pod Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/Inheritable.pm Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/MethodMaker.pm Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/Singleton.pm Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/Struct.pm Installing /Users/cpanrun/build/5.10.0/site/lib/Class/MakeMethods/Emulator/ToDo.pod Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::AccessorFast.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::Changes.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::Inheritable.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::MethodMaker.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::Singleton.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::Struct.3 Installing /Users/cpanrun/build/5.10.0/site/man/man3/Class::MakeMethods::Emulator::ToDo.3 Appending installation info to /Users/cpanrun/build/5.10.0/lib/perllocal.pod