Devel-DebugHooks

 view release on metacpan or  search on metacpan

t/01-common  view on Meta::CPAN

#!/usr/bin/env perl


use strict;
use warnings;

use Test::More 'no_plan';
use Test::Output;
use FindBin qw/ $Bin /;  my $lib =  "-I$Bin/lib -I$Bin/../lib";
use Data::Section::Simple qw/ get_data_section /;

use Test::Differences;
unified_diff();
{
	no warnings qw/ redefine prototype /;
	*is =  \&eq_or_diff;
}



sub n {
	$_ =  join '', map{ defined $_ ? $_ : '&undef' } @_;

	s/(\(0x[\da-f]{6,}\))/(0x000000)/g;
	s#(?:/.*?)?([^/]+\.pm)#$1#gm;
	s#^(\w{4}: .*?\.pm -)(\d+)#$1xxx#gm;
	s#(\.pm:)(\d+)-(\d+)$#$1xx-xx#gm;

	$_;
}


sub normalize {
	my $files =  shift;

	for my $key ( keys %$files ) {
		$files->{ $key } =  n( $files->{ $key } );
	}

	return $files;
}



my $files =  normalize( get_data_section() );



use_ok( 'Devel::DebugHooks', 'use Devel::DebugHooks' );

my $script =  <<'PERL';
sub t1{ return 7; };
sub t2{ goto &t1 };
$x =  t2( 5, 'str' );
$x++;
PERL
is
	n( `$^X $lib -d:DebugHooks -e '$script'` )
	, $files->{ VerboseBehaviour }
	, "Check verbose behaviour for demo purpose";


# Debug zero value
is `$^X $lib -d:DZV -e0`, "\n". $files->{ dzv }, "Debug zero value";
is
	`$^X $lib -d:DZVii -e0`
	, "\n". $files->{ dzv }
	, "Debug zero value. Default initialization";


# Test flags for tracing messages
is



( run in 1.025 second using v1.01-cache-2.11-cpan-6aa56a78535 )