From d0719e8ad715588446409155d68fd1783486aa69 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 6 Jan 2012 01:14:29 -0600 Subject: show the entire cycle in the warning --- t/basic.t | 6 +++--- t/hidden_cycle.t | 2 +- t/hide_middleman.t | 2 +- t/hide_middleman2.t | 2 +- t/hide_middleman3.t | 2 +- t/long_cycle.t | 23 +++++++++++++++++++++++ t/long_cycle/Bar.pm | 3 +++ t/long_cycle/Baz.pm | 3 +++ t/long_cycle/Blorg.pm | 3 +++ t/long_cycle/Foo.pm | 3 +++ t/long_cycle/Quux.pm | 3 +++ 11 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 t/long_cycle.t create mode 100644 t/long_cycle/Bar.pm create mode 100644 t/long_cycle/Baz.pm create mode 100644 t/long_cycle/Blorg.pm create mode 100644 t/long_cycle/Foo.pm create mode 100644 t/long_cycle/Quux.pm (limited to 't') diff --git a/t/basic.t b/t/basic.t index 14eda8d..44fade4 100644 --- a/t/basic.t +++ b/t/basic.t @@ -12,7 +12,7 @@ circular::require->unimport; my $warnings; local $SIG{__WARN__} = sub { $warnings .= $_[0] }; use_ok('Foo'); - is($warnings, "Circular require detected: Foo.pm (from Baz.pm)\nCircular require detected: Baz.pm (from Bar.pm)\n", "correct warnings"); + is($warnings, "Circular require detected:\n Foo.pm\n Baz.pm\n Foo.pm\nCircular require detected:\n Baz.pm\n Bar.pm\n Baz.pm\n", "correct warnings"); undef $warnings; use_ok('Foo'); @@ -25,7 +25,7 @@ circular::require->unimport; my $warnings; local $SIG{__WARN__} = sub { $warnings .= $_[0] }; use_ok('Bar'); - is($warnings, "Circular require detected: Baz.pm (from Foo.pm)\nCircular require detected: Bar.pm (from Baz.pm)\n", "correct warnings"); + is($warnings, "Circular require detected:\n Baz.pm\n Foo.pm\n Baz.pm\nCircular require detected:\n Bar.pm\n Baz.pm\n Bar.pm\n", "correct warnings"); clear(); } @@ -33,7 +33,7 @@ circular::require->unimport; my $warnings; local $SIG{__WARN__} = sub { $warnings .= $_[0] }; use_ok('Baz'); - is($warnings, "Circular require detected: Baz.pm (from Foo.pm)\nCircular require detected: Baz.pm (from Bar.pm)\n", "correct warnings"); + is($warnings, "Circular require detected:\n Baz.pm\n Foo.pm\n Baz.pm\nCircular require detected:\n Baz.pm\n Bar.pm\n Baz.pm\n", "correct warnings"); clear(); } diff --git a/t/hidden_cycle.t b/t/hidden_cycle.t index a2b33f1..39d03bc 100644 --- a/t/hidden_cycle.t +++ b/t/hidden_cycle.t @@ -16,7 +16,7 @@ my @warnings; is_deeply( \@warnings, - ["Circular require detected: Bar.pm (from )\n"], + ["Circular require detected in Bar.pm (from unknown file)\n"], "hiding all packages in the cycle shouldn't report a package outside of the cycle as being the source" ); diff --git a/t/hide_middleman.t b/t/hide_middleman.t index 90950b2..1bdb627 100644 --- a/t/hide_middleman.t +++ b/t/hide_middleman.t @@ -16,7 +16,7 @@ my @warnings; is_deeply( \@warnings, - ["Circular require detected: Foo.pm (from Bar.pm)\n"], + ["Circular require detected:\n Foo.pm\n Bar.pm\n Foo.pm\n"], "Show the module that used base, instead of 'base' when a cycle occurs from a use base." ); diff --git a/t/hide_middleman2.t b/t/hide_middleman2.t index bb3092a..f0cfae3 100644 --- a/t/hide_middleman2.t +++ b/t/hide_middleman2.t @@ -16,7 +16,7 @@ my @warnings; is_deeply( \@warnings, - ["Circular require detected: Foo.pm (from Bar.pm)\n"], + ["Circular require detected:\n Foo.pm\n Bar.pm\n Foo.pm\n"], "Show the module that used base, instead of 'base' when a cycle occurs from a use base." ); diff --git a/t/hide_middleman3.t b/t/hide_middleman3.t index 361eb45..1f888b3 100644 --- a/t/hide_middleman3.t +++ b/t/hide_middleman3.t @@ -19,7 +19,7 @@ my @warnings; is_deeply( \@warnings, - ["Circular require detected: Foo.pm (from )\n"], + ["Circular require detected in Foo.pm (from unknown file)\n"], "don't loop infinitely if all packages are hidden" ); diff --git a/t/long_cycle.t b/t/long_cycle.t new file mode 100644 index 0000000..fb0c703 --- /dev/null +++ b/t/long_cycle.t @@ -0,0 +1,23 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use lib 't/long_cycle'; + +no circular::require; + +my @warnings; + +{ + $SIG{__WARN__} = sub { push @warnings => @_ }; + + use_ok( 'Foo' ); +} + +is_deeply( + \@warnings, + ["Circular require detected:\n Bar.pm\n Baz.pm\n Quux.pm\n Blorg.pm\n Bar.pm\n"], + "detection of longer cycles" +); + +done_testing; diff --git a/t/long_cycle/Bar.pm b/t/long_cycle/Bar.pm new file mode 100644 index 0000000..5d7209a --- /dev/null +++ b/t/long_cycle/Bar.pm @@ -0,0 +1,3 @@ +package Bar; +use Baz; +1; diff --git a/t/long_cycle/Baz.pm b/t/long_cycle/Baz.pm new file mode 100644 index 0000000..0ece003 --- /dev/null +++ b/t/long_cycle/Baz.pm @@ -0,0 +1,3 @@ +package Baz; +use Quux; +1; diff --git a/t/long_cycle/Blorg.pm b/t/long_cycle/Blorg.pm new file mode 100644 index 0000000..d84c3fc --- /dev/null +++ b/t/long_cycle/Blorg.pm @@ -0,0 +1,3 @@ +package Blorg; +use Bar; +1; diff --git a/t/long_cycle/Foo.pm b/t/long_cycle/Foo.pm new file mode 100644 index 0000000..1558402 --- /dev/null +++ b/t/long_cycle/Foo.pm @@ -0,0 +1,3 @@ +package Foo; +use Bar; +1; diff --git a/t/long_cycle/Quux.pm b/t/long_cycle/Quux.pm new file mode 100644 index 0000000..d0357d4 --- /dev/null +++ b/t/long_cycle/Quux.pm @@ -0,0 +1,3 @@ +package Quux; +use Blorg; +1; -- cgit v1.2.3-54-g00ecf