Stas Bekman wrote: > +1
> +1 ok, here's a patch. it warns when t_cmp() is used with a regex and the arguments are not in the proper order. the mod_perl test suite seems to run fine with it. --Geoff
Index: lib/Apache/TestUtil.pm =================================================================== RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestUtil.pm,v retrieving revision 1.39 diff -u -r1.39 TestUtil.pm --- lib/Apache/TestUtil.pm 2 Jun 2004 02:13:23 -0000 1.39 +++ lib/Apache/TestUtil.pm 8 Jun 2004 19:54:04 -0000 @@ -97,13 +97,23 @@ sub t_cmp ($$;$) { Carp::carp(join(":", (caller)[1..2]) . - ' usage: $res = t_cmp($expected, $received, [$comment])') + ' usage: $res = t_cmp($received, $expected, [$comment])') if @_ < 2 || @_ > 3; + # this was added in Apache::Test::VERSION 1.12 - remove deprecated + # logic in 1.15. + if (UNIVERSAL::isa($_[0], 'Regexp')) { + my $warning = "WARNING!!! t_cmp() argument order has changed.\n" . + "use of a regular expression as the first argument\n" . + "is deprecated. support will be removed soon."; + t_debug($warning); + ($_[0], $_[1]) = ($_[1], $_[0]); + } + t_debug("testing : " . pop) if @_ == 3; - t_debug("expected: " . struct_as_string(0, $_[0])); - t_debug("received: " . struct_as_string(0, $_[1])); - return t_is_equal($_[0], $_[1]); + t_debug("received: " . struct_as_string(0, $_[0])); + t_debug("expected: " . struct_as_string(0, $_[1])); + return t_is_equal($_[1], $_[0]); } # Essentially t_cmp, but on Win32, first converts pathnames @@ -405,7 +415,7 @@ =item t_cmp() - t_cmp($expected, $received, $comment); + t_cmp($received, $expected, $comment); t_cmp() prints the values of I<$comment>, I<$expected> and I<$received>. e.g.: @@ -443,9 +453,9 @@ "hash of array of hashes"); You can also compare the second argument against the first as a -regex. Use the C<qr//> function in the first argument. For example: +regex. Use the C<qr//> function in the second argument. For example: - t_cmp(qr/^abc/, "abcd", "regex compare"); + t_cmp("abcd", qr/^abc/, "regex compare"); will do: