From 6fdd95bb5a6417825284e93279db42b056958cb1 Mon Sep 17 00:00:00 2001 From: "H.Merijn Brand" Date: Thu, 25 Sep 2008 09:29:07 +0200 Subject: [PATCH] Tests for DPeek () --- ChangeLog | 1 + MANIFEST | 1 + t/20_DPeek.t | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 t/20_DPeek.t diff --git a/ChangeLog b/ChangeLog index d14517e..a4fa3f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ * PerlIO is only available in 5.8 and up * Perl 5.6 is a minimal requirement for 'use warnings' + * Tests for DPeek () 2008-09-24 0.10 - H.Merijn Brand diff --git a/MANIFEST b/MANIFEST index 74c3a64..365d1e0 100644 --- a/MANIFEST +++ b/MANIFEST @@ -9,4 +9,5 @@ typemap t/00_pod.t Check if pod is valid t/01_pod.t Check if pod covers all t/10_base.t Base tests (combine and parse only) +t/20_DPeek.t Tests for DPeek () examples/ddumper.pl show the use diff --git a/t/20_DPeek.t b/t/20_DPeek.t new file mode 100644 index 0000000..ac1b8fc --- /dev/null +++ b/t/20_DPeek.t @@ -0,0 +1,91 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +#use Test::More tests => 1; + use Test::More "no_plan"; + +BEGIN { + use_ok "DDumper"; + plan skip_all => "Cannot load DDumper" if $@; + } + +$| = 1; + +is (DPeek ($/), 'PVMG("\n"\0)', '$/'); +is (DPeek ($\), 'PVMG()', '$\\'); +is (DPeek ($.), 'PVMG()', '$.'); +is (DPeek ($,), 'PVMG()', '$,'); +is (DPeek ($;), 'PV("\34"\0)', '$;'); +is (DPeek ($"), 'PV(" "\0)', '$"'); +is (DPeek ($:), 'PVMG(" \n-"\0)', '$:'); +is (DPeek ($~), 'PVMG()', '$~'); +is (DPeek ($^), 'PVMG()', '$^'); +is (DPeek ($=), 'PVMG()', '$='); +is (DPeek ($-), 'PVMG()', '$-'); +is (DPeek ($!), 'PVMG(""\0)', '$!'); +is (DPeek ($?), 'PVMG()', '$?'); +is (DPeek ($|), 'PVMG(1)', '$|'); + +"abc" =~ m/(b)/; # Don't know why these magic vars have this content +is (DPeek ($1), 'PVMG("$"\0)', ' $1'); +is (DPeek ($`), 'PVMG()', ' $`'); +is (DPeek ($&), 'PVMG()', ' $&'); +is (DPeek ($'), 'PVMG()', " \$'"); + +is (DPeek (undef), 'SV_UNDEF', 'undef'); +is (DPeek (1), 'IV(1)', 'constant 1'); +is (DPeek (""), 'PV(""\0)', 'constant ""'); +is (DPeek (1.), 'NV(1)', 'constant 1.'); +is (DPeek (\1), '\IV(1)', 'constant \1'); +is (DPeek (\\1), '\\\IV(1)', 'constant \\\1'); + +is (DPeek (\@ARGV), '\AV()', '\@ARGV'); +is (DPeek (\@INC), '\AV()', '\@INC'); +is (DPeek (\%INC), '\HV()', '\%INC'); +is (DPeek (*STDOUT), 'GV()', '*STDOUT'); +is (DPeek (sub {}), '\CV(__ANON__)', 'sub {}'); + +{ our ($VAR, @VAR, %VAR); + open VAR, ">VAR.txt"; + sub VAR {} + format VAR = +. + END { unlink "VAR.txt" }; + + is (DPeek ( $VAR), 'UNDEF', ' $VAR undef'); + is (DPeek (\$VAR), '\UNDEF', '\$VAR undef'); + $VAR = 1; + is (DPeek ($VAR), 'IV(1)', ' $VAR 1'); + is (DPeek (\$VAR), '\IV(1)', '\$VAR 1'); + $VAR = ""; + is (DPeek ($VAR), 'PVIV(""\0)', ' $VAR ""'); + is (DPeek (\$VAR), '\PVIV(""\0)', '\$VAR ""'); + $VAR = "\xa8"; + is (DPeek ($VAR), 'PVIV("\250"\0)', ' $VAR "\xa8"'); + is (DPeek (\$VAR), '\PVIV("\250"\0)', '\$VAR "\xa8"'); + SKIP: { + $] <= 5.008001 and skip "UTF8 tests useless in this ancient perl version", 1; + $VAR = "a\x0a\x{20ac}"; + is (DPeek ($VAR), 'PVIV("a\n\342\202\254"\0) [UTF8 "an\x{20ac}"]', + ' $VAR "a\x0a\x{20ac}"'); + } + $VAR = sub { "VAR" }; + is (DPeek ($VAR), '\CV(__ANON__)', ' $VAR sub { "VAR" }'); + is (DPeek (\$VAR), '\\\CV(__ANON__)', '\$VAR sub { "VAR" }'); + $VAR = 0; + + is (DPeek (\&VAR), '\CV(VAR)', '\&VAR'); + is (DPeek ( *VAR), 'GV()', ' *VAR'); + + is (DPeek (*VAR{SCALAR}), '\PVIV(0)', ' *VAR{SCALAR}'); + is (DPeek (*VAR{ARRAY}), '\AV()', ' *VAR{ARRAY}'); + is (DPeek (*VAR{HASH}), '\HV()', ' *VAR{HASH}'); + is (DPeek (*VAR{CODE}), '\CV(VAR)', ' *VAR{CODE}'); + is (DPeek (*VAR{IO}), '\IO()', ' *VAR{IO}'); + is (DPeek (*VAR{FORMAT}), '\FM()', ' *VAR{FORMAT}'); + is (DPeek (*VAR{GLOB}), '\GV()', ' *VAR{GLOB}'); + } + +1; -- 2.11.4.GIT