From 8fddd4400d09891094843fe9e77fec74e4510c67 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Wed, 10 Dec 2014 13:34:52 +0000 Subject: Data-Compare-1.25 --- t/FIXME-large-structures.t | 421 +++++++++++++++++++++ t/compare.t | 164 ++++++++ t/coverage.sh | 5 + t/deep-objects.t | 28 ++ t/deep-recursion.t | 34 ++ t/duplicates.t | 16 + t/lib/SpecialClass.pm | 12 + t/noimport-register_plugins.t | 13 + t/noimport.t | 11 + t/oo.t | 27 ++ t/opts-ignore-hash-keys.t | 38 ++ t/overload.t | 15 + t/plugins.t | 23 ++ t/pod.t | 9 + t/realtainttest | 11 + t/saritha-nalagandla-bug.t | 34 ++ .../test082_updateevent_multipleinvitees.exp | 51 +++ .../test082_updateevent_multipleinvitees.out | 51 +++ t/scalar-properties.t | 100 +++++ t/taint.t | 30 ++ 20 files changed, 1093 insertions(+) create mode 100644 t/FIXME-large-structures.t create mode 100644 t/compare.t create mode 100755 t/coverage.sh create mode 100644 t/deep-objects.t create mode 100644 t/deep-recursion.t create mode 100644 t/duplicates.t create mode 100644 t/lib/SpecialClass.pm create mode 100644 t/noimport-register_plugins.t create mode 100644 t/noimport.t create mode 100644 t/oo.t create mode 100644 t/opts-ignore-hash-keys.t create mode 100644 t/overload.t create mode 100644 t/plugins.t create mode 100644 t/pod.t create mode 100644 t/realtainttest create mode 100644 t/saritha-nalagandla-bug.t create mode 100644 t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.exp create mode 100644 t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.out create mode 100644 t/scalar-properties.t create mode 100644 t/taint.t (limited to 't') diff --git a/t/FIXME-large-structures.t b/t/FIXME-large-structures.t new file mode 100644 index 0000000..077df4d --- /dev/null +++ b/t/FIXME-large-structures.t @@ -0,0 +1,421 @@ +use strict; +use warnings; +use Test::More tests => 1; + +use Data::Compare; +$SIG{ALRM} = sub { fail("timeout"); exit }; +alarm(5); + +TODO: { + local $TODO = "broken"; + ok(0); + # ok(Data::Compare::Compare(_get_data()), "yay, didn't timeout"); +} + +sub _get_data { +my $VAR1 = { +'bodies' => bless( { +'774e1dee53a6c80d99cca81f188abf91' => bless( { +'body' => 'Get Lost! +For the 2th time', +'headers' => bless( { +'340954c191bbbadfbd7ab37e62ac91c0' => bless( { +'body' => {}, +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Billy 2', +'messages' => bless( { +'340954c191bbbadfbd7ab37e62ac91c0' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => bless( { +'From' => 'Jonny 1', +'messages' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => bless( { +'body' => bless( { +'body' => 'Let me count the ways.... 3', +'headers' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => {} +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Sally 3', +'messages' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => '0a763e41c9c22e1a97fcef68e37d2564' +}, 'Quarantine::Header' ), +'340954c191bbbadfbd7ab37e62ac91c0' => {}, +'655c7a5d8f36c58632a92e9c318fa9b4' => bless( { +'body' => {}, +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Fred 2', +'messages' => bless( { +'655c7a5d8f36c58632a92e9c318fa9b4' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => '655c7a5d8f36c58632a92e9c318fa9b4' +}, 'Quarantine::Header' ), +'7020baa09e5801d94724257ee8fba3bc' => bless( { +'body' => bless( { +'body' => 'Get Lost! +For the 3th time', +'headers' => bless( { +'7020baa09e5801d94724257ee8fba3bc' => {}, +'ddd55caf8ac04ed3e75224cd12847bac' => bless( { +'body' => {}, +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Billy 3', +'messages' => bless( { +'ddd55caf8ac04ed3e75224cd12847bac' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => 'ddd55caf8ac04ed3e75224cd12847bac' +}, 'Quarantine::Header' ) +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Fred 3', +'messages' => bless( { +'7020baa09e5801d94724257ee8fba3bc' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => '7020baa09e5801d94724257ee8fba3bc' +}, 'Quarantine::Header' ), +'bbed5198630e5d982f474ddb946b5cb6' => bless( { +'body' => bless( { +'body' => 'Let me count the ways.... 2', +'headers' => bless( { +'bbed5198630e5d982f474ddb946b5cb6' => {} +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Sally 2', +'messages' => bless( { +'bbed5198630e5d982f474ddb946b5cb6' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => 'bbed5198630e5d982f474ddb946b5cb6' +}, 'Quarantine::Header' ), +'ddd55caf8ac04ed3e75224cd12847bac' => {} +}, 'Quarantine::SMessages' ) +}, 'Quarantine::Sender' ), +'uniq' => '340954c191bbbadfbd7ab37e62ac91c0' +}, 'Quarantine::Header' ), +'655c7a5d8f36c58632a92e9c318fa9b4' => {} +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'81a987f71ec224975ad33bcd09e9ebe4' => {}, +'e3973a2585798a8e85f3a9a6a6ece156' => {}, +'f5794e56fc5ecd3a92a3586da3b6392a' => {} +}, 'Quarantine::Bodies' ), +'buckets' => bless( { +0 => bless( { +'a' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +3 => bless( { +4 => bless( { +'340954c191bbbadfbd7ab37e62ac91c0' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +6 => bless( { +5 => bless( { +'655c7a5d8f36c58632a92e9c318fa9b4' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +7 => bless( { +0 => bless( { +'7020baa09e5801d94724257ee8fba3bc' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +'b' => bless( { +'b' => bless( { +'bbed5198630e5d982f474ddb946b5cb6' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +'d' => bless( { +'d' => bless( { +'ddd55caf8ac04ed3e75224cd12847bac' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ) +}, 'Quarantine::Buckets' ), +'headers' => bless( {}, 'Quarantine::Headers' ), +'recipients' => bless( { +'Billy 2' => {}, +'Billy 3' => {}, +'Fred 2' => {}, +'Fred 3' => {}, +'Sally 2' => {}, +'Sally 3' => {} +}, 'Quarantine::Recipients' ), +'senders' => bless( { +'Jonny 1' => {} +}, 'Quarantine::Senders' ) +}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'body'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'recipients'}[0]{'messages'}{'340954c191bbbadfbd7ab37e62ac91c0'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'body'}{'headers'}{'0a763e41c9c22e1a97fcef68e37d2564'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'recipients'}[0]{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'sender'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'340954c191bbbadfbd7ab37e62ac91c0'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'body'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'recipients'}[0]{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'sender'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'7020baa09e5801d94724257ee8fba3bc'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'body'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'recipients'}[0]{'messages'}{'ddd55caf8ac04ed3e75224cd12847bac'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'sender'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'recipients'}[0]{'messages'}{'7020baa09e5801d94724257ee8fba3bc'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'sender'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'body'}{'headers'}{'bbed5198630e5d982f474ddb946b5cb6'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'recipients'}[0]{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'sender'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'ddd55caf8ac04ed3e75224cd12847bac'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}; +$VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'655c7a5d8f36c58632a92e9c318fa9b4'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}; +$VAR1->{'bodies'}{'81a987f71ec224975ad33bcd09e9ebe4'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}; +$VAR1->{'bodies'}{'e3973a2585798a8e85f3a9a6a6ece156'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'body'}; +$VAR1->{'bodies'}{'f5794e56fc5ecd3a92a3586da3b6392a'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'body'}; +$VAR1->{'buckets'}{0}{'a'}{'0a763e41c9c22e1a97fcef68e37d2564'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}; +$VAR1->{'buckets'}{3}{4}{'340954c191bbbadfbd7ab37e62ac91c0'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}; +$VAR1->{'buckets'}{6}{5}{'655c7a5d8f36c58632a92e9c318fa9b4'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}; +$VAR1->{'buckets'}{7}{0}{'7020baa09e5801d94724257ee8fba3bc'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}; +$VAR1->{'buckets'}{'b'}{'b'}{'bbed5198630e5d982f474ddb946b5cb6'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}; +$VAR1->{'buckets'}{'d'}{'d'}{'ddd55caf8ac04ed3e75224cd12847bac'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}; +$VAR1->{'recipients'}{'Billy 2'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'recipients'}[0]; +$VAR1->{'recipients'}{'Billy 3'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'recipients'}[0]; +$VAR1->{'recipients'}{'Fred 2'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'recipients'}[0]; +$VAR1->{'recipients'}{'Fred 3'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'recipients'}[0]; +$VAR1->{'recipients'}{'Sally 2'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'recipients'}[0]; +$VAR1->{'recipients'}{'Sally 3'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'recipients'}[0]; +$VAR1->{'senders'}{'Jonny 1'} = $VAR1->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; + + +my $VAR2 = { +'bodies' => bless( { +'774e1dee53a6c80d99cca81f188abf91' => bless( { +'body' => 'Get Lost! +For the 2th time', +'headers' => bless( { +'340954c191bbbadfbd7ab37e62ac91c0' => bless( { +'body' => {}, +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Billy 2', +'messages' => bless( { +'340954c191bbbadfbd7ab37e62ac91c0' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => bless( { +'From' => 'Jonny 1', +'messages' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => bless( { +'body' => bless( { +'body' => 'Let me count the ways.... 3', +'headers' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => {} +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Sally 3', +'messages' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => '0a763e41c9c22e1a97fcef68e37d2564' +}, 'Quarantine::Header' ), +'340954c191bbbadfbd7ab37e62ac91c0' => {}, +'655c7a5d8f36c58632a92e9c318fa9b4' => bless( { +'body' => {}, +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Fred 2', +'messages' => bless( { +'655c7a5d8f36c58632a92e9c318fa9b4' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => '655c7a5d8f36c58632a92e9c318fa9b4' +}, 'Quarantine::Header' ), +'7020baa09e5801d94724257ee8fba3bc' => bless( { +'body' => bless( { +'body' => 'Get Lost! +For the 3th time', +'headers' => bless( { +'7020baa09e5801d94724257ee8fba3bc' => {}, +'ddd55caf8ac04ed3e75224cd12847bac' => bless( { +'body' => {}, +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Billy 3', +'messages' => bless( { +'ddd55caf8ac04ed3e75224cd12847bac' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => 'ddd55caf8ac04ed3e75224cd12847bac' +}, 'Quarantine::Header' ) +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Fred 3', +'messages' => bless( { +'7020baa09e5801d94724257ee8fba3bc' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => '7020baa09e5801d94724257ee8fba3bc' +}, 'Quarantine::Header' ), +'bbed5198630e5d982f474ddb946b5cb6' => bless( { +'body' => bless( { +'body' => 'Let me count the ways.... 2', +'headers' => bless( { +'bbed5198630e5d982f474ddb946b5cb6' => {} +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'header' => 'Re: Stuff', +'recipients' => bless( [ +bless( { +'To' => 'Sally 2', +'messages' => bless( { +'bbed5198630e5d982f474ddb946b5cb6' => {} +}, 'Quarantine::RMessages' ) +}, 'Quarantine::Recipient' ) +], 'Quarantine::RList' ), +'sender' => {}, +'uniq' => 'bbed5198630e5d982f474ddb946b5cb6' +}, 'Quarantine::Header' ), +'ddd55caf8ac04ed3e75224cd12847bac' => {} +}, 'Quarantine::SMessages' ) +}, 'Quarantine::Sender' ), +'uniq' => '340954c191bbbadfbd7ab37e62ac91c0' +}, 'Quarantine::Header' ), +'655c7a5d8f36c58632a92e9c318fa9b4' => {} +}, 'Quarantine::BHeaders' ) +}, 'Quarantine::Body' ), +'81a987f71ec224975ad33bcd09e9ebe4' => {}, +'e3973a2585798a8e85f3a9a6a6ece156' => {}, +'f5794e56fc5ecd3a92a3586da3b6392a' => {} +}, 'Quarantine::Bodies' ), +'buckets' => bless( { +0 => bless( { +'a' => bless( { +'0a763e41c9c22e1a97fcef68e37d2564' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +3 => bless( { +4 => bless( { +'340954c191bbbadfbd7ab37e62ac91c0' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +6 => bless( { +5 => bless( { +'655c7a5d8f36c58632a92e9c318fa9b4' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +7 => bless( { +0 => bless( { +'7020baa09e5801d94724257ee8fba3bc' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +'b' => bless( { +'b' => bless( { +'bbed5198630e5d982f474ddb946b5cb6' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ), +'d' => bless( { +'d' => bless( { +'ddd55caf8ac04ed3e75224cd12847bac' => {} +}, 'Quarantine::Bucket2' ) +}, 'Quarantine::Bucket1' ) +}, 'Quarantine::Buckets' ), +'headers' => bless( {}, 'Quarantine::Headers' ), +'recipients' => bless( { +'Billy 2' => {}, +'Billy 3' => {}, +'Fred 2' => {}, +'Fred 3' => {}, +'Sally 2' => {}, +'Sally 3' => {} +}, 'Quarantine::Recipients' ), +'senders' => bless( { +'Jonny 1' => {} +}, 'Quarantine::Senders' ) +}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'body'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'recipients'}[0]{'messages'}{'340954c191bbbadfbd7ab37e62ac91c0'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'body'}{'headers'}{'0a763e41c9c22e1a97fcef68e37d2564'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'recipients'}[0]{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'sender'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'340954c191bbbadfbd7ab37e62ac91c0'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'body'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'recipients'}[0]{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'sender'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'7020baa09e5801d94724257ee8fba3bc'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'body'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'recipients'}[0]{'messages'}{'ddd55caf8ac04ed3e75224cd12847bac'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'sender'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'recipients'}[0]{'messages'}{'7020baa09e5801d94724257ee8fba3bc'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'sender'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'body'}{'headers'}{'bbed5198630e5d982f474ddb946b5cb6'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'recipients'}[0]{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'sender'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'ddd55caf8ac04ed3e75224cd12847bac'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}; +$VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'655c7a5d8f36c58632a92e9c318fa9b4'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}; +$VAR2->{'bodies'}{'81a987f71ec224975ad33bcd09e9ebe4'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}; +$VAR2->{'bodies'}{'e3973a2585798a8e85f3a9a6a6ece156'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'body'}; +$VAR2->{'bodies'}{'f5794e56fc5ecd3a92a3586da3b6392a'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'body'}; +$VAR2->{'buckets'}{0}{'a'}{'0a763e41c9c22e1a97fcef68e37d2564'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}; +$VAR2->{'buckets'}{3}{4}{'340954c191bbbadfbd7ab37e62ac91c0'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}; +$VAR2->{'buckets'}{6}{5}{'655c7a5d8f36c58632a92e9c318fa9b4'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}; +$VAR2->{'buckets'}{7}{0}{'7020baa09e5801d94724257ee8fba3bc'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}; +$VAR2->{'buckets'}{'b'}{'b'}{'bbed5198630e5d982f474ddb946b5cb6'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}; +$VAR2->{'buckets'}{'d'}{'d'}{'ddd55caf8ac04ed3e75224cd12847bac'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}; +$VAR2->{'recipients'}{'Billy 2'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'recipients'}[0]; +$VAR2->{'recipients'}{'Billy 3'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'body'}{'headers'}{'ddd55caf8ac04ed3e75224cd12847bac'}{'recipients'}[0]; +$VAR2->{'recipients'}{'Fred 2'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'655c7a5d8f36c58632a92e9c318fa9b4'}{'recipients'}[0]; +$VAR2->{'recipients'}{'Fred 3'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'7020baa09e5801d94724257ee8fba3bc'}{'recipients'}[0]; +$VAR2->{'recipients'}{'Sally 2'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'bbed5198630e5d982f474ddb946b5cb6'}{'recipients'}[0]; +$VAR2->{'recipients'}{'Sally 3'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}{'messages'}{'0a763e41c9c22e1a97fcef68e37d2564'}{'recipients'}[0]; +$VAR2->{'senders'}{'Jonny 1'} = $VAR2->{'bodies'}{'774e1dee53a6c80d99cca81f188abf91'}{'headers'}{'340954c191bbbadfbd7ab37e62ac91c0'}{'sender'}; + +return ($VAR1, $VAR2); +} + diff --git a/t/compare.t b/t/compare.t new file mode 100644 index 0000000..94a6732 --- /dev/null +++ b/t/compare.t @@ -0,0 +1,164 @@ +# -*- Mode: Perl -*- + +BEGIN { unshift @INC, "lib", "../lib" } +use strict; +use warnings; +# use diagnostics; + +use Data::Compare; + +local $^W = 1; +print "1..45\n"; + +my $t = 1; + +my $s0 = undef; +my $s1 = 0; +my $s2 = 10; + +# 1 .. 4 +&comp($s0, $s0, 1); +&comp($s1, $s1, 1); +&comp($s2, $s2, 1); +&comp($s0, $s1, 0); + +my $s3 = \$s2; +my $s4 = \$s1; +my $s5 = "$s4"; +my $s6 = 0; +my $s7 = \$s6; + +# 5 .. 8 +&comp($s3, $s3, 1); +&comp($s3, $s4, 0); +&comp($s4, $s5, 0); +&comp($s4, $s7, 1); + +my $a1 = []; +my $a2 = [ 0 ]; +my $a3 = [ '' ]; +my $a4 = [ 1, 2, 3 ]; +my $a5 = [ 1, 2, 4 ]; +my $a6 = [ 1, 2, 3, 5 ]; + +# 9 .. 13 +&comp($a1, $a1, 1); +&comp($a1, $a2, 0); +&comp($a2, $a3, 0); +&comp($a4, $a5, 0); +&comp($a4, $a6, 0); + +my $h1 = {}; +my $h2 = { 'foo' => 'bar' }; +my $h3 = { 'foo' => 'bar' }; +my $h4 = { 'foo' => 'bar', 'bar' => 'foo' }; + +# 14 .. 19 +&comp($h1, $s0, 0); +&comp($h1, $h1, 1); +&comp($h2, $h2, 1); +&comp($h2, $h3, 1); +&comp($h1, $h2, 0); +&comp($h3, $h4, 0); + +my $o1 = bless [ 'FOO', 'BAR' ], 'foo'; +my $o2 = bless [ 'FOO', 'BAR' ], 'foo'; +my $o3 = bless [ 'FOO', 'BAR' ], 'fool'; +my $o4 = bless [ 'FOO', 'BAR', 'BAZ' ], 'foo'; + +# 20 .. 22 +&comp($o1, $o2, 1); +&comp($o1, $o3, 0); +&comp($o1, $o4, 0); + +my $o5 = bless { 'FOO' => 'BAR' }, 'foo'; +my $o6 = bless { 'FOO' => 'BAR' }, 'foo'; +my $o7 = bless { 'FOO' => 'BAR' }, 'fool'; +my $o8 = bless { 'FOO' => 'BAR', 'foo' => 'BAZ' }, 'foo'; + +# 23 .. 25 +&comp($o5, $o6, 1); +&comp($o5, $o7, 0); +&comp($o5, $o8, 0); + +my $s8 = 0; +my $o9 = bless \$s0, 'foo'; +my $o10 = bless \$s8, 'foo'; +my $o11 = bless \$s1, 'foo'; + +# 26 .. 27 +&comp($o9, $o10, 0); +&comp($o10, $o11, 1); + +my $g1 = \*STDIN; +my $g2 = \*STDOUT; + +# 28 .. 29 +&comp($g1, $g1, 1); +&comp($g1, $g2, 0); + +my $o12 = bless $g1, 'foo'; +my $o13 = bless $g2, 'foo'; + +# 30 .. 31 +&comp($o12, $o12, 1); +&comp($o12, $o13, 0); + +my $o16 = bless sub { print "foo\n" }, 'foo'; +my $o17 = bless sub { print "foo\n" }, 'foo'; + +# 32 +&comp($o16, $o17, 0); # :( + +my $v1 = { 'foo' => [ 1, { 'bar' => 'baz' }, 3 ] }; +my $v2 = { 'bar' => 'baz' }; +my $v3 = [ 1, $v2, 3 ]; +my $v4 = { 'foo' => $v3 }; + +# 33 +&comp($v1, $v4, 1); + +# 34 .. 37 +&comp(\\1, \\1, 1); +&comp(\\1, \\2, 0); +&comp(\\1, 1, 0); +&comp(\\1, \1, 0); + +# 38 .. 40 +&comp(qr/abc/i, qr/abc/i, 1, "Identical regexen"); +&comp(qr/abc/i, qr/[aA][bB][cC]/, 0, "Non-identical regexen"); +&comp(qr/abc/i, '(?i-xsm:abc)', 0, "Regex and scalar which stringify the same"); + +# 41 .. 43 +# scalar cross +$a = []; +my($x, $y); +$x=\$y; +$y=\$x; +$a->[0]=\$a->[1]; +$a->[1]=\$a->[0]; +&comp([$x, $y], $a, 1, "two parallel circular structures compare the same"); + +# these two are probably superfluous, as they test referential equality +# rather than any of the stuff we added to do with circles and recursion +&comp([$x, $y], [$y, $x], 1, "looking at a circle from two different starting points compares the same"); +&comp([$x, $y], [$x, $y], 1, "a circular structure compares to itself"); + +$a = []; +$b = []; +$a->[0] = { foo => { bar => $a } }; +$b->[0] = { foo => { bar => $b } }; +$a->[1] = $b->[1] = 5; +comp($a, $b, 1, "structure of a circle plus same data compares the same"); + +$a->[1] = 6; +comp($a, $b, 0, "structure of a circle plus different data compares different"); +sub comp { + my $a = shift; + my $b = shift; + my $expect = shift; + my $comment = shift; + + print Compare ($a, $b) == $expect ? "" : "not ", "ok ", $t++, + ($comment) ? " $comment\n" : "\n"; +} diff --git a/t/coverage.sh b/t/coverage.sh new file mode 100755 index 0000000..7b334b1 --- /dev/null +++ b/t/coverage.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +cover -delete +HARNESS_PERL_SWITCHES=-MDevel::Cover=-coverage,statement,branch,condition,path,subroutine make test +cover diff --git a/t/deep-objects.t b/t/deep-objects.t new file mode 100644 index 0000000..a2c9702 --- /dev/null +++ b/t/deep-objects.t @@ -0,0 +1,28 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +# use diagnostics; + +eval 'use Clone'; +($@) ? + do { + print "1..0 # Skipping no Clone found\n"; + exit(0); + } : + eval 'use Test::More tests => 1;'; + +use Data::Compare; + +my $c = bless { foo => 1 }, 'Foo'; +my $d = bless { c => $c }, "Foo::D"; +my $e = bless { d => $d }, "Foo::E"; +my $f = bless { e => $e }, "Foo::F"; +my $g = bless { f => $f }, "Foo::G"; +my $h = bless { g => $g }, "Foo::H"; +my $i = bless { h => $h }, "Foo::I"; +my $j = bless { i => $i }, "Foo::J"; +my $k = Clone::clone $j; + +Compare($j, $k); +ok(Compare($j, $k), 'Can compare deeply-nested objecty jibber-jabber'); diff --git a/t/deep-recursion.t b/t/deep-recursion.t new file mode 100644 index 0000000..9861c0a --- /dev/null +++ b/t/deep-recursion.t @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +# use diagnostics; + +use Data::Compare; +use Test::More tests => 3; + +my $warning= ''; +$SIG{__WARN__} = sub { $warning= shift; }; + +my($data1, $data2) = ({}, {}); +foreach my $i (qw(a b c d e f g h i j)) { + foreach my $j (qw(k l m n o p q r s t)) { + $data1->{$i}->{$j} = 'i like pie'; + $data2->{$i}->{$j} = 'i like pie'; + } +} + +# check that we DTRT on very deep recursion +$a = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]; +$b = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]; +Compare($a, $b); +ok($warning, "warn on deep recursion"); +$warning = ''; + +Compare([5], [5]) foreach(1..1000); +ok(!$warning, "recursion counter correctly reset"); + + +Compare($data1, $data2); + +ok(!$warning, "no warnings emitted on large flat structures"); diff --git a/t/duplicates.t b/t/duplicates.t new file mode 100644 index 0000000..e2636fb --- /dev/null +++ b/t/duplicates.t @@ -0,0 +1,16 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +# use diagnostics; + +use Test::More tests => 2; + +use Data::Compare; + +my $z = 0; +ok(Compare([\$z, \$z], [\$z, \$z]), 'Can compare duplicated array data'); +ok(Compare( + { a => \$z, b => \$z }, + { a => \$z, b => \$z } +), 'Can compare duplicated hash data'); diff --git a/t/lib/SpecialClass.pm b/t/lib/SpecialClass.pm new file mode 100644 index 0000000..9dbb3e9 --- /dev/null +++ b/t/lib/SpecialClass.pm @@ -0,0 +1,12 @@ +package SpecialClass; +use strict;use warnings; +use overload + '""' => \&to_string, + '0+' => \&to_number, + fallback=>1; + +sub new { my ($class,%data) = @_; bless {%data},$class } +sub to_string { return $_[0]->{str} || 'foo' } +sub to_number { return $_[0]->{num} || 12 } + +1; diff --git a/t/noimport-register_plugins.t b/t/noimport-register_plugins.t new file mode 100644 index 0000000..de2c669 --- /dev/null +++ b/t/noimport-register_plugins.t @@ -0,0 +1,13 @@ +#!perl -w + +use Data::Compare (); +Data::Compare->register_plugins(); + +print "1..1\n"; + +my $test = 0; + +# and now there should be plugins + +print "not " if(Data::Compare::Compare({}, Data::Compare::plugins())); +print 'ok '.(++$test)." plugins available in no-import mode if explicitly asked for\n"; diff --git a/t/noimport.t b/t/noimport.t new file mode 100644 index 0000000..f752e11 --- /dev/null +++ b/t/noimport.t @@ -0,0 +1,11 @@ +#!perl -w + +use Data::Compare (); +print "1..1\n"; + +my $test = 0; + +# in no-import mode there should be no plugins + +print "not " unless(Data::Compare::Compare({}, Data::Compare::plugins())); +print 'ok '.(++$test)." plugins disabled in no-import mode\n"; diff --git a/t/oo.t b/t/oo.t new file mode 100644 index 0000000..f043d19 --- /dev/null +++ b/t/oo.t @@ -0,0 +1,27 @@ +# -*- Mode: Perl -*- + +BEGIN { unshift @INC, "lib", "../lib" } +use strict; +use Data::Compare; + +local $^W = 1; +print "1..7\n"; + +my $t = 1; + +my $a = { 'foo' => [ 'bar', 'baz' ] }; +my $b = { 'Foo' => [ 'bar', 'baz' ] }; + +my $c = new Data::Compare ($a, $b); +print !$c->Cmp ? "" : "not ", "ok ", $t++, "\n"; +print $c->Cmp($a, $a) ? "" : "not ", "ok ", $t++, "\n"; +print !$c->Cmp($a, $b) ? "" : "not ", "ok ", $t++, "\n"; + +my $d = new Data::Compare; +print $d->Cmp ? "" : "not ", "ok ", $t++, "\n"; +print $d->Cmp($a, $a) ? "" : "not ", "ok ", $t++, "\n"; +print !$d->Cmp($a, $b) ? "" : "not ", "ok ", $t++, "\n"; + +my $e = new Data::Compare; + +print $d->Cmp ($d, $e) ? "" : "not ", "ok ", $t++, "\n"; diff --git a/t/opts-ignore-hash-keys.t b/t/opts-ignore-hash-keys.t new file mode 100644 index 0000000..c5fdd27 --- /dev/null +++ b/t/opts-ignore-hash-keys.t @@ -0,0 +1,38 @@ +# -*- Mode: Perl -*- + +BEGIN { unshift @INC, "lib", "../lib" } +use strict; +use Data::Compare; + +local $^W = 1; +print "1..4\n"; + +my $test = 0; + +print 'not ' unless(Compare( + { foo => 'FOO', bar => 'BAR', baz => 'BAZ' }, + { foo => 'FOO', bar => 'BAR' }, + { ignore_hash_keys => [qw(baz)] } +) == 1); +print 'ok '.(++$test)." different hashes compare the same when ignoring extra key in first\n"; + +print 'not ' unless(Compare( + { foo => 'FOO', bar => 'BAR' }, + { foo => 'FOO', bar => 'BAR', baz => 'BAZ' }, + { ignore_hash_keys => [qw(baz)] } +) == 1); +print 'ok '.(++$test)." different hashes compare the same when ignoring extra key in second\n"; + +print 'not ' unless(Compare( + { foo => 'FOO', bar => 'BAR', baz => [] }, + { foo => 'FOO', bar => 'BAR', baz => 'BAZ' }, + { ignore_hash_keys => [qw(baz)] } +) == 1); +print 'ok '.(++$test)." ignoring a key that differs works\n"; + +print 'not ' unless(Compare( + { foo => 'FOO', bar => 'BAR', baz => [] }, + { foo => 'FOO', bar => 'BAR', baz => 'BAZ' }, + { ignore_hash_keys => [qw(bar)] } +) == 0); +print 'ok '.(++$test)." ignoring equal data in differing hashes compares unequal\n"; diff --git a/t/overload.t b/t/overload.t new file mode 100644 index 0000000..1fdbb97 --- /dev/null +++ b/t/overload.t @@ -0,0 +1,15 @@ +use strict; +use warnings; +use lib 't/lib'; +use SpecialClass; + +use Data::Compare; +use Test::More tests=>2; + +ok(!Compare(SpecialClass->new(str=>'bar'), + SpecialClass->new(str=>'bar',num=>15)), + 'String overload does not fool it'); + +ok(!Compare(SpecialClass->new(str=>'bar',num=>15), + SpecialClass->new(str=>'boo',num=>15)), + 'Numeric overload does not fool it'); diff --git a/t/plugins.t b/t/plugins.t new file mode 100644 index 0000000..828ad5c --- /dev/null +++ b/t/plugins.t @@ -0,0 +1,23 @@ +#!perl -w + +use strict; + +use Data::Compare; + +print "1..1\n"; + +my $test = 0; + +# Scalar::Properties is the only plugin we know will be present. The plugin +# will even be present if S::P itself isn't installed. +my $plugins = Data::Compare::plugins(); +my %pairs = (); +foreach my $key (keys %{$plugins}) { + foreach(@{$plugins->{$key}}) { + $pairs{"$key <-> $_"} = 1; + $pairs{"$_ <-> $key"} = 1 if($key ne $_); + } +} + +print 'not ' unless($pairs{'[scalar] <-> Scalar::Properties'} && $pairs{'Scalar::Properties <-> Scalar::Properties'} && $pairs{'Scalar::Properties <-> [scalar]'}); +print 'ok '.(++$test)." plugins() function\n"; diff --git a/t/pod.t b/t/pod.t new file mode 100644 index 0000000..7f9b2c4 --- /dev/null +++ b/t/pod.t @@ -0,0 +1,9 @@ +# $Id: pod.t,v 1.1 2007/07/30 12:49:38 drhyde Exp $ +use strict; + +$^W=1; + +use Test::More; +eval "use Test::Pod 1.00"; +plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; +all_pod_files_ok(); diff --git a/t/realtainttest b/t/realtainttest new file mode 100644 index 0000000..a972bc7 --- /dev/null +++ b/t/realtainttest @@ -0,0 +1,11 @@ +use strict; + +use Data::Compare; +print "1..1\n"; + +my $test = 0; + +# in taint mode there should be no plugins + +print "not " unless(Compare({}, Data::Compare::plugins())); +print 'ok '.(++$test)." plugins disabled in taint mode\n"; diff --git a/t/saritha-nalagandla-bug.t b/t/saritha-nalagandla-bug.t new file mode 100644 index 0000000..5f70432 --- /dev/null +++ b/t/saritha-nalagandla-bug.t @@ -0,0 +1,34 @@ +#!perl -w +# $Id: saritha-nalagandla-bug.t,v 1.2 2008/08/26 20:51:36 drhyde Exp $ + +use strict; +use Data::Compare; +eval "use JSON"; +if($@) { + eval 'use Test::More skip_all => "no JSON support";exit 0'; +} elsif($JSON::VERSION < 2.9) { + eval 'use Test::More skip_all => "JSON module too old";exit 0'; +} else { + eval 'use Test::More tests => 2'; +} + +my $expfile = "t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.exp"; +my $outfile = "t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.out"; +my $ignoreKeysList = [qw(UID INVID LAST_MODIFIED DTSTAMP_UTC BUILD)]; + +$/ = undef; + +($expfile, $outfile) = map { + open(FILE, $_) || die("Can't open $_\n"); + my $f = ; + close(FILE); + from_json($f); +} ($expfile, $outfile); + +# delete $expfile->{RESPONSE}{VALUE}{ATTENDEE}[0]{RSVP}; +# delete $outfile->{RESPONSE}{VALUE}{ATTENDEE}[0]{RSVP}; +# delete $expfile->{RESPONSE}{VALUE}{ATTENDEE}[1]{RSVP}; +# delete $outfile->{RESPONSE}{VALUE}{ATTENDEE}[1]{RSVP}; + +ok(Compare($expfile, $outfile, {ignore_hash_keys=> $ignoreKeysList}), "match with ignore_hash_keys"); +ok(!Compare($expfile, $outfile), "doesn't match without ignore_hash_keys"); diff --git a/t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.exp b/t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.exp new file mode 100644 index 0000000..48e591c --- /dev/null +++ b/t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.exp @@ -0,0 +1,51 @@ +{ + "REQUEST" : { + "BUILD" : "5.0 hitaine 20080801-1615", + "DTSTAMP_UTC" : "20080804T122520", + "INTL" : "us", + "OPERATION" : "UPDATE_EVENT", + "SERVICE" : "CAL", + "SERVICE_VERSION" : "1.2", + "USER" : "autocaljson3" + }, + "RESPONSE" : { + "CODE" : 0, + "VALUE" : { + "ACCOUNT_ID" : "autocaljson3", + "ALL_DAY" : false, + "ATTENDEE" : [ + { + "EMAIL" : "f323_bart1@yahoo.com", + "PARTSTAT" : "ACCEPTED", + "RSVP" : false + }, + { + "EMAIL" : "f323_bart2@yahoo.com", + "PARTSTAT" : "DECLINED", + "RSVP" : false + } + ], + "CLASS" : "PUBLIC", + "COMMENT" : [ + "test comment" + ], + "COMPONENT_TYPE" : "EVENT", + "DESCRIPTION" : "go party", + "DTEND" : "20080820T093000", + "DTEND_TZID" : "America/Los_Angeles", + "DTSTART" : "20080820T090000", + "DTSTART_TZID" : "America/Los_Angeles", + "DURATION" : "PT30M", + "FOLDER_ID" : 131, + "INVID" : "1092-1091", + "LAST_MODIFIED" : "20080804T122520", + "LOCATION" : "test loc", + "ORGANIZER" : "autocaljson3@yahoo.com", + "STATUS" : "CONFIRMED", + "SUMMARY" : "Party Update event 082", + "TRANSP" : "OPAQUE", + "TYPE" : 10, + "UID" : "c3e0efde-da42-45dc-8322-46ff686a5832" + } + } +} \ No newline at end of file diff --git a/t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.out b/t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.out new file mode 100644 index 0000000..92d45b4 --- /dev/null +++ b/t/saritha-nalagandla-bug/test082_updateevent_multipleinvitees.out @@ -0,0 +1,51 @@ +{ + "REQUEST" : { + "BUILD" : "5.0 akanjila 20080806-1047", + "DTSTAMP_UTC" : "20080807T001048", + "INTL" : "us", + "OPERATION" : "UPDATE_EVENT", + "SERVICE" : "CAL", + "SERVICE_VERSION" : "1.2", + "USER" : "autocaljson3" + }, + "RESPONSE" : { + "CODE" : 0, + "VALUE" : { + "ACCOUNT_ID" : "autocaljson3", + "ALL_DAY" : false, + "ATTENDEE" : [ + { + "EMAIL" : "f323_bart1@yahoo.com", + "PARTSTAT" : "ACCEPTED", + "RSVP" : false + }, + { + "EMAIL" : "f323_bart2@yahoo.com", + "PARTSTAT" : "DECLINED", + "RSVP" : false + } + ], + "CLASS" : "PUBLIC", + "COMMENT" : [ + "test comment" + ], + "COMPONENT_TYPE" : "EVENT", + "DESCRIPTION" : "go party", + "DTEND" : "20080820T093000", + "DTEND_TZID" : "America/Los_Angeles", + "DTSTART" : "20080820T090000", + "DTSTART_TZID" : "America/Los_Angeles", + "DURATION" : "PT30M", + "FOLDER_ID" : 131, + "INVID" : "331-330", + "LAST_MODIFIED" : "20080807T001048", + "LOCATION" : "test loc", + "ORGANIZER" : "autocaljson3@yahoo.com", + "STATUS" : "CONFIRMED", + "SUMMARY" : "Party Update event 082", + "TRANSP" : "OPAQUE", + "TYPE" : 10, + "UID" : "8f060ff2-28bc-4e32-8ba6-3d03dd40d900" + } + } +} \ No newline at end of file diff --git a/t/scalar-properties.t b/t/scalar-properties.t new file mode 100644 index 0000000..3384166 --- /dev/null +++ b/t/scalar-properties.t @@ -0,0 +1,100 @@ +#!perl -w + +my $loaded; + +use strict; + +use constant num_one => 1; +use constant num_two => 2; +use constant txt_one => 'one'; +use constant txt_two => 'two'; + +use Data::Compare; + +$| = 1; +eval 'use Scalar::Properties'; +print (($@) ? "1..0 # Skipping no Scalar::Properties found\n" : "1..17\n"); +exit(0) if($@); + +my $test = 0; +print "ok ".(++$test)." load module\n"; + +eval q{ + +use Scalar::Properties; + +# test SP vs SP + +my($sp1, $sp2) = (1, 1); +print 'not ' unless(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs with same value, no properties compare the same\n"; + +($sp1, $sp2) = (1, 2); +print 'not ' if(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs with different values, no properties compare different\n"; + +($sp1, $sp2) = (1->a('frob')->b(num_one), 1->a('frob')->b(num_one)); +print 'not ' unless(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs with same value, same properties compare the same\n"; + +($sp1, $sp2) = (1->a('foo')->b(num_one), 1->a('frob')->b(num_one)); +print 'not ' if(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs same value, different properties compare different\n"; + +($sp1, $sp2) = (1->a('frob')->b(num_one), 2->a('frob')->b(num_one)); +print 'not ' if(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs different value, same properties compare different\n"; + +($sp1, $sp2) = (1->a('foo')->b(num_one), 2->a('frob')->b(num_one)); +print 'not ' if(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs different value, different properties compare different\n"; + +($sp1, $sp2) = (1, 1->a('frob')->b(num_one)); +print 'not ' if(Compare($sp1, $sp2)); +print 'ok '.(++$test)." SPs with same value, one with extra properties compare different\n"; + +($sp1, $sp2) = (1->a('frob')->b(num_one), 1); +print 'not ' if(Compare($sp1, $sp2)); +print 'ok '.(++$test)." (rev) SPs with same value, one with extra properties compare different\n"; + +# test scalar vs SP + +$sp1 = 1; +my $scalar1 = num_one; +print 'not ' unless(Compare($scalar1, $sp1)); +print 'ok '.(++$test)." scalar and S::P with same numeric value compare the same\n"; + +$sp1 = 2; +print 'not ' if(Compare($scalar1, $sp1)); +print 'ok '.(++$test)." scalar and S::P with different numeric value compare different\n"; + +$sp1 = 'one'; +$scalar1 = txt_one; +print 'not ' unless(Compare($scalar1, $sp1)); +print 'ok '.(++$test)." scalar and S::P with same string value compare the same\n"; + +$sp1 = 'two'; +print 'not ' if(Compare($scalar1, $sp1)); +print 'ok '.(++$test)." scalar and S::P with different string value compare different\n"; + +# test SP vs scalar + +$sp1 = 1; +$scalar1 = num_one; +print 'not ' unless(Compare($sp1, $scalar1)); +print 'ok '.(++$test)." (rev) scalar and S::P with same numeric value compare the same\n"; + +$sp1 = 2; +print 'not ' if(Compare($sp1, $scalar1)); +print 'ok '.(++$test)." (rev) scalar and S::P with different numeric value compare different\n"; + +$sp1 = 'one'; +$scalar1 = txt_one; +print 'not ' unless(Compare($sp1, $scalar1)); +print 'ok '.(++$test)." (rev) scalar and S::P with same string value compare the same\n"; + +$sp1 = 'two'; +print 'not ' if(Compare($sp1, $scalar1)); +print 'ok '.(++$test)." (rev) scalar and S::P with different string value compare different\n"; + +} diff --git a/t/taint.t b/t/taint.t new file mode 100644 index 0000000..5a7a990 --- /dev/null +++ b/t/taint.t @@ -0,0 +1,30 @@ +#!perl -w + +use Config; + +if($^O =~ /vms/i) { + # $^X isn't VMS-friendly. I'm disinclined to add a dependency on + # Probe::Perl just for testing this corner-case + print "1..0 # skip - can't reliably taint-test on VMS\n"; +# } elsif($ENV{PERL5LIB}) { +# print "1..0 # skip - can't reliably taint-test with PERL5LIB set\n"; +# } else { +# exec("$^X -Tw -Iblib/lib t/realtainttest"); +# } +} else { + my $perl5lib = $ENV{PERL5LIB} || ''; + $ENV{PERL5LIB} = ''; + exec( + join(' ', + $Config{perlpath}, + '-Tw', + ( + # map { "-I$_" } + map { qq{-I"$_"} } + grep { -d $_ } # bleh, code-refs getting stringified + split(/$Config{path_sep}/, $perl5lib) + ), + 't/realtainttest' + ) + ); +} -- cgit v1.2.1