File: caller.t

package info (click to toggle)
libdebug-trace-perl 0.05-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 92 kB
  • sloc: perl: 161; makefile: 2
file content (41 lines) | stat: -rw-r--r-- 935 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*-perl-*-

#########################

use Test;
BEGIN { plan tests => 2 };

# We need to catch the output for verification.
BEGIN { $ENV{PERL5DEBUGTRACE} = ":warn" }

use Debug::Trace qw(x1 :nocaller x2 :caller x3 :nocaller x4);
ok(1); # If we made it this far, we're ok.

#########################

my $l1 = __LINE__ + 1;
sub x1 { x2(qw(a b c)) }
my $l2 = __LINE__ + 1;
sub x2 { x3(qw(x y z)) }
my $l3 = __LINE__ + 1;
sub x3 { x4(qw(1 2 3)) }
my $l4 = __LINE__ + 1;
sub x4 { "foo" }

# warn() interceptor.
my $msg;
$SIG{__WARN__} = sub { $msg .= "@_" };

my $fl;
$msg = ""; $fl = __LINE__ + 1;
x1("blah");
ok($msg,<<EOD);
TRACE:	main::x1("blah") called at @{[__FILE__]} line $fl package main
TRACE:	main::x2("a","b","c")
TRACE:	main::x3("x","y","z") called at @{[__FILE__]} line $l2 sub main::x2
TRACE:	main::x4(1,2,3)
TRACE:	main::x4() returned
TRACE:	main::x3() returned
TRACE:	main::x2() returned
TRACE:	main::x1() returned
EOD