-#!/usr/bin/perl
-
-BEGIN { print "1..3\n"; }
+use strict;
+use warnings;
+BEGIN { $^P |= 0x210 }
+use Test::More 0.88;
use Sub::Name;
my $x = subname foo => sub { (caller 0)[3] };
-print $x->() eq "main::foo" ? "ok 1\n" : "not ok 1\n";
+my $line = __LINE__ - 1;
+my $file = __FILE__;
+my $anon = $DB::sub{"main::__ANON__[${file}:${line}]"};
+is($x->(), "main::foo");
package Blork;
use Sub::Name;
subname " Bar!", $x;
-print $x->() eq "Blork:: Bar!" ? "ok 2\n" : "not ok 2\n";
+::is($x->(), "Blork:: Bar!");
subname "Foo::Bar::Baz", $x;
-print $x->() eq "Foo::Bar::Baz" ? "ok 3\n" : "not ok 3\n";
+::is($x->(), "Foo::Bar::Baz");
+
+subname "subname (dynamic $_)", \&subname for 1 .. 3;
+
+for (4 .. 5) {
+ subname "Dynamic $_", $x;
+ ::is($x->(), "Blork::Dynamic $_");
+}
+
+::is($DB::sub{"main::foo"}, $anon);
+
+for (4 .. 5) {
+ ::is($DB::sub{"Blork::Dynamic $_"}, $anon);
+}
+for ("Blork:: Bar!", "Foo::Bar::Baz") {
+ ::is($DB::sub{$_}, $anon);
+}
-# $Id: smoke.t,v 1.4 2004/08/18 12:03:42 xmath Exp $
+::done_testing;
# vim: ft=perl