This is a live mirror of the Perl 5 development currently hosted at
10 years agoRefactor t/lib/proxy_constant_subs.t to use skip_all_without_extension()
Nicholas Clark [Mon, 7 Mar 2011 17:10:26 +0000 (17:10 +0000)]
Refactor t/lib/proxy_constant_subs.t to use skip_all_without_extension()

10 years agoSimplify the startup skip logic of tests in t/uni.
Nicholas Clark [Mon, 7 Mar 2011 16:31:05 +0000 (16:31 +0000)]
Simplify the startup skip logic of tests in t/uni.

Use the various skip_all*() functions in to express the desired intent.

10 years agoAdd skip_all_without_perlio() to, and use it in 8 tests.
Nicholas Clark [Mon, 7 Mar 2011 13:33:48 +0000 (13:33 +0000)]
Add skip_all_without_perlio() to, and use it in 8 tests.

It's a common idiom in the tests. This makes it easier to find, read, and

10 years agoFix building with -Uuseperlio
Nicholas Clark [Mon, 7 Mar 2011 12:05:14 +0000 (12:05 +0000)]
Fix building with -Uuseperlio

It was inadvertently broken by 2e0cfa16dea85dd3. Many tests still fail, but
that is unrelated to that change. It's more likely that we will remove
-Uuseperlio than fix the tests.

10 years agoRefactor 6 tests in t/op and t/run to use skip_all_if_miniperl().
Nicholas Clark [Mon, 7 Mar 2011 11:00:53 +0000 (11:00 +0000)]
Refactor 6 tests in t/op and t/run to use skip_all_if_miniperl().

10 years agoEnsure that the C<exists &Errno::EFOO> idiom continues to work as documented.
Nicholas Clark [Mon, 7 Mar 2011 10:27:17 +0000 (10:27 +0000)]
Ensure that the C<exists &Errno::EFOO> idiom continues to work as documented.

A change post-5.12 (probably 42607a60df6df19b) caused the documented idiom not
to work if Errno was loaded after the C<exists> code had been compiled, as
the compiler implicitly creates typeglobs in the Errno symbol table when it
builds the optree for the C<exists code>.

10 years agoMore changes to perlretut
Father Chrysostomos [Mon, 7 Mar 2011 06:28:47 +0000 (22:28 -0800)]
More changes to perlretut

Mostly minor punctuation changes, but also:

• Some of the ‘new’ features are no longer new.
• Explain that \Q\L\U only apply to literal regexps, not interpolated
• The charnames pragma is not required for \p
• The section on [:POSIX:] char classes was still explaining 5.6.

10 years agoLibraries in @INC may be in Unix or VMS format on VMS.
Craig A. Berry [Mon, 7 Mar 2011 03:58:34 +0000 (21:58 -0600)]
Libraries in @INC may be in Unix or VMS format on VMS.

We now (after 816005240f1a3b9989c940e630e829048597537c) will store
them in @INC in Unix format, but either format is legal.  We can't
change the values in %Config to be Unix format, though, because
MakeMaker and other utilities may use those to construct paths
for native software that needs them in native format.

10 years agoAdd appropriate archname appendages in
Craig A. Berry [Sun, 6 Mar 2011 22:07:30 +0000 (16:07 -0600)]
Add appropriate archname appendages in

Now that we have the relevant questions answered before we set
archname, add the appropriate components to archname at the right
time so they'll become part of the architecture-specific
directory names.

FIXME: We don't (yet) set archname64, so at present we're not
adding it to archname.

10 years agoReorder archname-related questions in
Craig A. Berry [Sun, 6 Mar 2011 21:59:06 +0000 (15:59 -0600)]
Reorder archname-related questions in

By moving these to after other questions have been asked, we can
construct a proper $Config{archname} that indicates threads, long
doubles, multiplicity, or anything else that needs to be appended
to the architecture name.

This means letting go of the ability to configure for a different
architecture than the one you're running on, but that feature is
unlikely to have worked very well in recent years anyway as there
have been an increasing number of features that are not available
on all architectures.

10 years agoUse full archname in architecture-specific directories on VMS.
Craig A. Berry [Sun, 6 Mar 2011 04:18:38 +0000 (22:18 -0600)]
Use full archname in architecture-specific directories on VMS.

We were only using the base archname (e.g., "VMS_AXP"), which is
ok for a default bulid, but if any additions were made to it,
such as "-thread", there would be a discrepancy between the
actual directory on disk and what perl.c:S_incpush would look for
when loading up @INC.  The net effect was that the architecture-
specific directory would not get loaded into @INC.

10 years agoMake archname checks relocatable in
Craig A. Berry [Sun, 6 Mar 2011 04:08:24 +0000 (22:08 -0600)]
Make archname checks relocatable in

Instead of testing for equality, look for the first minus sign-
delimited element.  This means it won't matter which order these
checks are done in relation to adding things like "-thread-multi"
to archname.

10 years agoMore perlretut tweaks
Father Chrysostomos [Mon, 7 Mar 2011 00:58:46 +0000 (16:58 -0800)]
More perlretut tweaks

In particular:

• The word ‘substitute’ was misused. I changed it to substitution,
  but then realised that it was actually wordy and redundant, so I
  removed it.
• The /e modifier does not do an eval{...} or eval '...' or anything
  of the sort. s/foo/die/e demonstrates this clearly. (/ee is a diffe-
  rent matter, but is not covered in perlretut.)

10 years agoperlretut: Mention /p
Father Chrysostomos [Sun, 6 Mar 2011 23:59:14 +0000 (15:59 -0800)]
perlretut: Mention /p

10 years agoperlretut tweaks
Father Chrysostomos [Sun, 6 Mar 2011 23:57:46 +0000 (15:57 -0800)]
perlretut tweaks

In particular, remove the obsolete mention of new features ‘in 5.6.0’.

10 years agoEnsure that t/io/{print,read,say}.t load Errno at BEGIN time.
Nicholas Clark [Sun, 6 Mar 2011 22:42:22 +0000 (22:42 +0000)]
Ensure that t/io/{print,read,say}.t load Errno at BEGIN time.

If Errno is loaded after the compiler has parsed the C<exists &Errno::EBADF>
later in the script, then the intent of that test is subverted - &Errno::EBADF
does not exist, at least as far as the typeglob bound to that op is concerned,
and the test for $! is skipped. I suspect that these have been skipping since
the implementation of Errno was changed in 42607a60df6df19b in May 2010 to
reduce its memory footprint by 55%.

10 years agoTidy perlio_open.t, by using skip_all* functions where appropriate.
Nicholas Clark [Sun, 6 Mar 2011 22:14:23 +0000 (22:14 +0000)]
Tidy perlio_open.t, by using skip_all* functions where appropriate.

This reduces the startup boilerplate code by more than half.

10 years agoAdd skip_all_without_extension() to, for the common skip idiom.
Nicholas Clark [Sun, 6 Mar 2011 21:58:19 +0000 (21:58 +0000)]
Add skip_all_without_extension() to, for the common skip idiom.

Use it in t/io/layers.t to skip if Encode is not built.

10 years agoTidy t/io/layers.t
Nicholas Clark [Sun, 6 Mar 2011 21:41:01 +0000 (21:41 +0000)]
Tidy t/io/layers.t

Skip under minitest using skip_all_if_miniperl().
skip_all() once rather than skipping every test if Encode is not built, or
PerlIO is not available.

10 years agoTidy t/io/crlf.t
Nicholas Clark [Sun, 6 Mar 2011 21:25:47 +0000 (21:25 +0000)]
Tidy t/io/crlf.t

Skip a test under minitest using skip_if_miniperl().
Use eq(), like() and unlike() where appropriate, instead of ok().

10 years agoTidy t/io/binmode.t
Nicholas Clark [Sun, 6 Mar 2011 21:21:10 +0000 (21:21 +0000)]
Tidy t/io/binmode.t

Remove redundant C<use Config;>
If C<find PerlIO::Layer 'perlio'> fails, use skip() rather than ok() to skip.
Make the indenting on 2 inconsistent lines consistent with the rest of the file.
Die if Errno can't be loaded, unless it's miniperl.

10 years agoperlrequick tweaks
Father Chrysostomos [Sun, 6 Mar 2011 22:29:09 +0000 (14:29 -0800)]
perlrequick tweaks

10 years agoReword a perldiag entry
Father Chrysostomos [Sun, 6 Mar 2011 21:55:36 +0000 (13:55 -0800)]
Reword a perldiag entry

It’s a little more readable if it’s more concise, at least in
this case.

10 years agoFix [perl #85508] regression in print length undef
David Leadbeater [Sun, 6 Mar 2011 15:19:57 +0000 (15:19 +0000)]
Fix [perl #85508] regression in print length undef

length was returning a temporary copy of undef, this meant it didn't
generate a warning when used uninitialised. Return PL_sv_undef but
also ensure TARG is cleared if needed.

10 years agoMove the tests for split /\s/ and Unicode from split.t to split_unicode.t
Nicholas Clark [Sun, 6 Mar 2011 20:36:33 +0000 (20:36 +0000)]
Move the tests for split /\s/ and Unicode from split.t to split_unicode.t

Skip split_unicode.t under minitest, as it uses charnames, which uses
File::Spec, which may not be available.

[Experimentation reveals that git blame by default won't attribute lines past
this commit, unless --find-copies-harder is used. The alternative approach,
copy t/op/split.t as t/op/split_unicode.t as 1 commit, then prune both, fares
no better - by default git blame can't attribute through that *either*.
Again, --find-copies-harder works. Hence, do the partition as this one commit,
as it is simpler, and all other things are equal]

10 years agoMove t/re/re.t to ext/re/t/re_funcs_u.t, so that it is not part of minitest.
Nicholas Clark [Sun, 6 Mar 2011 18:59:52 +0000 (18:59 +0000)]
Move t/re/re.t to ext/re/t/re_funcs_u.t, so that it is not part of minitest.

The test file is for functions in the re:: namespace implemented in
universal.c, but needs to load re, which isn't built for minitest. As none of
these functions are used as part of the core's build process, seems best to
move it with all the other tests related to the re extension.

10 years agoEnsure t/op/stat.t passes under minitest if File::Spec is unavailable.
Nicholas Clark [Sun, 6 Mar 2011 18:15:43 +0000 (18:15 +0000)]
Ensure t/op/stat.t passes under minitest if File::Spec is unavailable.

require File::Spec in an eval. For miniperl, if the eval fails, skip tests
relating to File::Spec->devnull() and needing File::Spec->rel2abs(), and assume
that '.' will work as the current directory. Remove a call to catfile() only
needed for MacOS Classic - every other platform will accept Unix-style paths.

10 years agoEnsure t/op/mkdir.t passes under minitest by loading File::Path in an eval.
Nicholas Clark [Sun, 6 Mar 2011 17:58:26 +0000 (17:58 +0000)]
Ensure t/op/mkdir.t passes under minitest by loading File::Path in an eval.

File::Path::rmtree() is only used as a cleanup function of last resort - by
default t/op/mkdir.t directly cleans up the test directory that it creates
before it exits.

10 years agoEnsure that chdir.t can find File::Spec and Cwd under minitest
Nicholas Clark [Sun, 6 Mar 2011 17:50:36 +0000 (17:50 +0000)]
Ensure that chdir.t can find File::Spec and Cwd under minitest

As a working chdir is a key part of the build process, it would be counter-
productive to skip testing it if the build process failed, because it might be
cause of the problems. So add the source locations for Cwd and File::Spec in
dist/Cwd and dist/Cwd/lib respectively.

10 years agoUnder minitest, tests requiring File::Spec->devnull(), as it may not be built.
Nicholas Clark [Sun, 6 Mar 2011 17:38:36 +0000 (17:38 +0000)]
Under minitest, tests requiring File::Spec->devnull(), as it may not be built.

Although File::Spec is pure Perl, it is part of the Cwd distribution, and
that isn't built for minitest. So we can't rely on it.

10 years agocharset.t: Improve diagnostic messages
Karl Williamson [Sun, 6 Mar 2011 17:19:34 +0000 (10:19 -0700)]
charset.t: Improve diagnostic messages

10 years agocharset.t: Group tests by complement/non-
Karl Williamson [Sun, 6 Mar 2011 16:51:18 +0000 (09:51 -0700)]
charset.t: Group tests by complement/non-

This is in preparation for giving different descriptions for the
complement case

10 years agoUpdate Unicode-Collate to CPAN version 0.73
Chris 'BinGOs' Williams [Sun, 6 Mar 2011 16:59:33 +0000 (16:59 +0000)]
Update Unicode-Collate to CPAN version 0.73


  0.73  Sun Mar  6 13:24:22 2011
    - DUCET is updated (for Unicode 6.0.0) as Collate/allkeys.txt.
    ! However no maint perl has supported Unicode 6.0.0 yet;
      wait for 5.14, or try developing 5.13.7 or later.
    ! Please notice that allkeys.txt will be overwritten if you have had
      other allkeys.txt already.
    - The default UCA_Version is 22. Locale/*.pl and are updated.
    - test: compare allkeys.txt's version with Base_Unicode_Version
      in t/default.t.

10 years agoMention make test_porting
Leon Brocard [Sun, 6 Mar 2011 16:58:33 +0000 (16:58 +0000)]
Mention make test_porting

10 years agoAdd Danny Sadinoff's old email address to Porting/
Leon Brocard [Sun, 6 Mar 2011 16:57:11 +0000 (16:57 +0000)]
Add Danny Sadinoff's old email address to Porting/

10 years agoUpdate Danny Sadinoff's email address in AUTHORS, per <AANLkTinUkRsb2DLR3LW5VsUETK2K0...
Leon Brocard [Sun, 6 Mar 2011 16:39:11 +0000 (16:39 +0000)]
Update Danny Sadinoff's email address in AUTHORS, per <>

10 years agoIn gv.t, check that the installed $SIG{__DIE__} handler is never called.
Nicholas Clark [Sun, 6 Mar 2011 13:27:43 +0000 (13:27 +0000)]
In gv.t, check that the installed $SIG{__DIE__} handler is never called.

98e007d4a6d559b3 missed adding a check that the first $SIG{__DIE__} handler
was never called. While tidying, make the second $e lexical, and check that
the second $SIG{__DIE__} handler remains uncalled at the end of its block.

10 years agoA clearer layout for the fall-through logic of Socket::inet_aton()
Nicholas Clark [Sun, 6 Mar 2011 10:31:23 +0000 (10:31 +0000)]
A clearer layout for the fall-through logic of Socket::inet_aton()

10 years agoIn inet_aton(), use newSVpvn_flags() instead of sv_newmortal(), sv_setpvn()
Nicholas Clark [Sun, 6 Mar 2011 10:16:22 +0000 (10:16 +0000)]
In inet_aton(), use newSVpvn_flags() instead of sv_newmortal(), sv_setpvn()

The API calls are equivalent, but the object code is slightly smaller.

10 years agoSkip regexp_unicode_prop.t under minitest, as File::Spec may not be available.
Nicholas Clark [Sat, 5 Mar 2011 22:49:29 +0000 (22:49 +0000)]
Skip regexp_unicode_prop.t under minitest, as File::Spec may not be available.

It uses charnames, which uses File::Spec->file_name_is_absolute().
As regexp_unicode_prop.t now requires, switch to using $::IS_EBCDIC,
which sets.

10 years agoSkip pat_re_eval.t in minitest, as it uses re, which needs dynamic loading.
Nicholas Clark [Sat, 5 Mar 2011 22:36:15 +0000 (22:36 +0000)]
Skip pat_re_eval.t in minitest, as it uses re, which needs dynamic loading.

10 years agoMove two tests using charnames from t/re/pat.t to pat_rt_report.t
Nicholas Clark [Fri, 25 Feb 2011 15:56:04 +0000 (15:56 +0000)]
Move two tests using charnames from t/re/pat.t to pat_rt_report.t

The latter is skipped under minitest, as C<re> may not be available.
charnames may also fail to load under minitest, if File::Spec has not been
built. t/re/pat.t should now always run (and pass) under minitest.

10 years agoIn fold_grind.t, move the use charnames; after the skip_all_if_miniperl().
Nicholas Clark [Fri, 25 Feb 2011 15:54:15 +0000 (15:54 +0000)]
In fold_grind.t, move the use charnames; after the skip_all_if_miniperl().

This test isn't run under minitest, but use charnames; may well fail before
that skip is encountered, if it fails to load File::Spec. Moving it after
the BEGIN block ensures that the test will always run, or skip cleanly.

10 years agoSkip reg_eval_scope.t under minitest, as it needs charnames.
Nicholas Clark [Fri, 25 Feb 2011 15:53:10 +0000 (15:53 +0000)]
Skip reg_eval_scope.t under minitest, as it needs charnames.

Charnames uses File::Spec, which may not have been build.

10 years agoSkip taint.t and lex_utf8.t under minitest, as both require C<re>.
Nicholas Clark [Fri, 25 Feb 2011 14:59:55 +0000 (14:59 +0000)]
Skip taint.t and lex_utf8.t under minitest, as both require C<re>.

10 years agoSkip reg_fold.t under minitest, as it uses charnames, which uses File::Spec.
Nicholas Clark [Fri, 25 Feb 2011 14:58:58 +0000 (14:58 +0000)]
Skip reg_fold.t under minitest, as it uses charnames, which uses File::Spec.

10 years agoSkip a block of ref.t's tests on minitest, as C<re> may not be available.
Nicholas Clark [Fri, 25 Feb 2011 14:57:57 +0000 (14:57 +0000)]
Skip a block of ref.t's tests on minitest, as C<re> may not be available.

10 years agoCorrect the skip count for t/op/switch.t under minitest.
Nicholas Clark [Fri, 25 Feb 2011 14:56:20 +0000 (14:56 +0000)]
Correct the skip count for t/op/switch.t under minitest.

Skip this section unconditionally under miniperl, rather than assuming that
Scalar::Util will fall back to a pure perl version if "installed" in lib/, but
dynamic loading is unavailable.

10 years agoFix magic.t's expectation for $^X under minitest when the OS makes $^X absolute
Nicholas Clark [Fri, 25 Feb 2011 14:01:43 +0000 (14:01 +0000)]
Fix magic.t's expectation for $^X under minitest when the OS makes $^X absolute

Under minitest, t/perl is a symlink to ../perl. Test scripts are invoked with
./perl. When $Config{d_procselfexe} is undefined, $^X is still ./perl.
When it is defined, the OS resolves it to the absolute path .../miniperl.
Fix t/op/magic.t to be aware of this. Previously it was working for all cases
other than [$Config{d_procselfexe} is defined] and [make minitest] and
[perl does not exist].

10 years agoIn t/ avoid using File::Spec for paths only used by Perl.
Nicholas Clark [Thu, 24 Feb 2011 10:06:35 +0000 (10:06 +0000)]
In t/ avoid using File::Spec for paths only used by Perl.

All platforms Perl builds on can already support Unix-style paths (given that is using them). This makes 7 more tests pass under minitest, which
doesn't build File::Spec, because it's part of an XS module.

10 years agoRefactor t/op/time.t to use's warning_is().
Nicholas Clark [Sun, 6 Mar 2011 09:12:19 +0000 (09:12 +0000)]
Refactor t/op/time.t to use's warning_is().

10 years agocharset.t: Don't test locale if not working.
Karl Williamson [Sat, 5 Mar 2011 22:01:04 +0000 (15:01 -0700)]
charset.t: Don't test locale if not working.

Commit 09fcee4e4050e683c4608bbadac4c255a63c8ea5 didn't finish the

10 years agoDocument running "make minitest" to test miniperl.
Craig A. Berry [Sun, 6 Mar 2011 03:57:20 +0000 (21:57 -0600)]
Document running "make minitest" to test miniperl.

10 years agoperlfunc tweaks
Father Chrysostomos [Sun, 6 Mar 2011 02:37:04 +0000 (18:37 -0800)]
perlfunc tweaks

Also remove a redundant paragraph from ‘open’.

10 years ago[perl #77384] Passing a ref to warn doesn't append file and line
Father Chrysostomos [Sun, 6 Mar 2011 02:11:52 +0000 (18:11 -0800)]
[perl #77384] Passing a ref to warn doesn't append file and line

This commit makes pp_warn stringify the warning if there is no
$SIG{__WARN__} handler. See the RT ticket for the discussion.

10 years agoMinor spelling fix.
Paul Johnson [Sat, 5 Mar 2011 23:55:21 +0000 (00:55 +0100)]
Minor spelling fix.

10 years ago[perl #85482] Make bmuladd() able to handle third arg properly.
Peter John Acklam [Sun, 6 Mar 2011 00:55:30 +0000 (16:55 -0800)]
[perl #85482] Make bmuladd() able to handle third arg properly.

bmuladd() contains a test to avoid calling objectify() when it isn't
necessary. This test catches too much, so objectify() isn't always called
when it should have been, e.g., when the two first arguments are are
Math::BigInts and the third is something else, a Math::BigInt::Lite for
example. This causes tests in Math::BigInt::Lite to fail (RT #66369). Also
fix bmuladd() in Math::BigFloat since it suffers from the same problem.

10 years ago[perl #85476] Add tests to confirm fix of RT #49569.
Peter John Acklam [Sat, 5 Mar 2011 22:38:36 +0000 (14:38 -0800)]
[perl #85476] Add tests to confirm fix of RT #49569.

Confirm that numify() on a value that can be represented exactly as
a Perl scalar integer is not converted to a floating point number,
e.g., that it returns 18446744073709551615, not 1.84467440737096e+19.

10 years ago[perl #85334] Document actual behaviour of from_xxx() methods.
Peter John Acklam [Sat, 5 Mar 2011 22:15:30 +0000 (14:15 -0800)]
[perl #85334] Document actual behaviour of from_xxx() methods.

Add more precise documentation of the behaviour of from_oct(),
from_hex(), and from_bin().

10 years agoNow that pat_{advanced,rt_report}.t use, use skip_all_if_miniperl().
Nicholas Clark [Sat, 5 Mar 2011 15:23:42 +0000 (15:23 +0000)]
Now that pat_{advanced,rt_report}.t use, use skip_all_if_miniperl().

Neither can run during minitest as miniperl can't load support code for %+ and
%-. If your build is so unwell that it's fallen back to minitest, your problems
are bigger than "advanced" regular expression features not working.

10 years agoEliminate t/re/ require './' directly in its 3 (former) users.
Nicholas Clark [Sat, 5 Mar 2011 15:13:17 +0000 (15:13 +0000)]
Eliminate t/re/ require './' directly in its 3 (former) users.

10 years agoMove setting $IS_ASCII and $IS_EBCDIC from to
Nicholas Clark [Sat, 5 Mar 2011 14:54:11 +0000 (14:54 +0000)]
Move setting $IS_ASCII and $IS_EBCDIC from to

As doesn't C<use vars> for either (and shouldn't start), modify the
users to fully qualify the variables, to avoid strict vars errors.

10 years agoEliminate $::ordA from, inlining its constant value in its only user.
Nicholas Clark [Sat, 5 Mar 2011 14:43:33 +0000 (14:43 +0000)]
Eliminate $::ordA from, inlining its constant value in its only user.

10 years agoEliminate eval_ok() from by inlining the logic in the only caller.
Nicholas Clark [Sat, 5 Mar 2011 14:39:23 +0000 (14:39 +0000)]
Eliminate eval_ok() from by inlining the logic in the only caller.

Refactor the 19 remaining calls into a data driven loop in pat.t, inlining the
eval logic.

10 years agoReplace three uses of eval_ok() with is() as the tested code doesn't die.
Nicholas Clark [Sat, 5 Mar 2011 13:48:43 +0000 (13:48 +0000)]
Replace three uses of eval_ok() with is() as the tested code doesn't die.

It's not clear whether the code ever threw exceptions. Not using eval_ok() here
makes subsequent refactoring a lot simpler.

10 years agoRefactor some calls to eval_ok() into is(eval $foo ...) and is($@, '') pairs.
Nicholas Clark [Sat, 5 Mar 2011 13:30:48 +0000 (13:30 +0000)]
Refactor some calls to eval_ok() into is(eval $foo ...) and is($@, '') pairs.

This gives better diagnostics on failure.

10 years agoAdd warnings_like() in to replace must_warn() in
Nicholas Clark [Sat, 5 Mar 2011 13:03:03 +0000 (13:03 +0000)]
Add warnings_like() in to replace must_warn() in

warnings_like() provides a subset of the functionality of the routine of the
same name in Test::Warn.

10 years agoAdd warning_like() in to replace some uses of's must_warn().
Nicholas Clark [Sat, 5 Mar 2011 12:19:53 +0000 (12:19 +0000)]
Add warning_like() in to replace some uses of's must_warn().

warning_like() provides a subset of the functionality of the routine of the
same name in Test::Warn. Remove the definition of must_warn() in t/re/subst.t,
which had been copied from t/re/ from when and

10 years agoIn pat_advanced.t, refactor 6 calls to must_warn() into a loop.
Nicholas Clark [Sat, 5 Mar 2011 12:04:03 +0000 (12:04 +0000)]
In pat_advanced.t, refactor 6 calls to must_warn() into a loop.

10 years agoImprove warning_is() to verify that exactly 0 or 1 warning has been seen.
Nicholas Clark [Sat, 5 Mar 2011 11:04:44 +0000 (11:04 +0000)]
Improve warning_is() to verify that exactly 0 or 1 warning has been seen.

10 years agoAdd warning_is() in to replace may_not_warn() in
Nicholas Clark [Sat, 5 Mar 2011 10:57:43 +0000 (10:57 +0000)]
Add warning_is() in to replace may_not_warn() in

warning_is() provides a subset of the functionality of the routine of the same
name in Test::Warn.

10 years agoEliminate must_die() from, which is only used 3 times in pat.t
Nicholas Clark [Sat, 5 Mar 2011 10:44:50 +0000 (10:44 +0000)]
Eliminate must_die() from, which is only used 3 times in pat.t

Replace it with is(eval ..., undef); like($@, $error);

It's not viable to emulate Test::Exception's throws_ok() in, as it
only takes a code reference, whereas these tests are for compilation errors
and so use string eval.

10 years agoMove the loading of %Config from to the only use point in pat.t
Nicholas Clark [Sat, 5 Mar 2011 10:07:01 +0000 (10:07 +0000)]
Move the loading of %Config from to the only use point in pat.t

10 years agoPrune redundant blank lines.
Nicholas Clark [Sat, 5 Mar 2011 06:42:00 +0000 (06:42 +0000)]
Prune redundant blank lines.

10 years agot/re/pat_{psycho,re_eval,special_cc}.t can use direct.
Nicholas Clark [Sat, 5 Mar 2011 06:32:07 +0000 (06:32 +0000)]
t/re/pat_{psycho,re_eval,special_cc}.t can use direct.

They no longer use any of the extra functions of

10 years agoEliminate the placeholder text 'Noname test'.
Nicholas Clark [Sat, 5 Mar 2011 06:23:18 +0000 (06:23 +0000)]
Eliminate the placeholder text 'Noname test'.

It's no longer needed now that the migration from's TAP generation
functions is completed.

10 years agoEliminate iseq() from by changing all callers to use is().
Nicholas Clark [Sat, 5 Mar 2011 06:08:18 +0000 (06:08 +0000)]
Eliminate iseq() from by changing all callers to use is().

10 years agoEliminate nok() from by refactoring all uses to other test functions.
Nicholas Clark [Sat, 5 Mar 2011 05:38:18 +0000 (05:38 +0000)]
Eliminate nok() from by refactoring all uses to other test functions.

10 years agoRefactor to use for testing functions and TAP generation.
Nicholas Clark [Fri, 4 Mar 2011 22:32:24 +0000 (22:32 +0000)]
Refactor to use for testing functions and TAP generation.

Provide compatibility implementations of nok(), and iseq(), which will be
removed once their callers are refactored. Eliminate isneq(), which is now

10 years agoSlight tweaks to regexp tests so that they still produce sane TAP with
Nicholas Clark [Fri, 4 Mar 2011 21:55:46 +0000 (21:55 +0000)]
Slight tweaks to regexp tests so that they still produce sane TAP with

Explicitly escape non-printable characters in test descriptions, instead of
relying on some part of the TAP generation code to do so. Use diag() instead of
passing 3 arguments to ok(). Add a mininal diag() implementation to

10 years agoUse $::TODO, instead of $TODO, and relying on use vars '$TODO' in
Nicholas Clark [Fri, 4 Mar 2011 22:02:23 +0000 (22:02 +0000)]
Use $::TODO, instead of $TODO, and relying on use vars '$TODO' in

10 years agoRemove the line number from the test description output by
Nicholas Clark [Fri, 4 Mar 2011 20:47:28 +0000 (20:47 +0000)]
Remove the line number from the test description output by

This means that the TAP it generates is much closer to that generated by

10 years agoEliminate the global override $BugId from t/re/
Nicholas Clark [Fri, 4 Mar 2011 18:25:15 +0000 (18:25 +0000)]
Eliminate the global override $BugId from t/re/

10 years agoEliminate use of $::BugId in t/re/pat_rt_report.t
Nicholas Clark [Fri, 4 Mar 2011 18:24:19 +0000 (18:24 +0000)]
Eliminate use of $::BugId in t/re/pat_rt_report.t

Pass the message in explicitly to the test functions. Change to use
compatible functions where appropriate. For now avoid renumbering lines, or
any other change that changes the generated TAP output. (Hence no splitting
tests, and adding the seemingly useless 'Noname test;', as that was what
t/re/'s _ok() was defaulting to)

10 years agoEliminate use of $::BugId in t/re/pat_re_eval.t
Nicholas Clark [Fri, 4 Mar 2011 16:14:20 +0000 (16:14 +0000)]
Eliminate use of $::BugId in t/re/pat_re_eval.t

Pass the message in explicitly to the test functions. Change to use
compatible functions where appropriate. For now avoid renumbering lines, or
any other change that changes the generated TAP output. (Hence no splitting
tests, and adding the seemingly useless 'Noname test;', as that was what
t/re/'s _ok() was defaulting to)

10 years agoEliminate the global override $Message from t/re/
Nicholas Clark [Fri, 4 Mar 2011 16:04:21 +0000 (16:04 +0000)]
Eliminate the global override $Message from t/re/

10 years agoEliminate use of $::Message in t/re/pat_re_eval.t
Nicholas Clark [Fri, 4 Mar 2011 16:03:37 +0000 (16:03 +0000)]
Eliminate use of $::Message in t/re/pat_re_eval.t

Pass the message in explicitly to the test functions. Change to use
compatible functions where appropriate. For now avoid renumbering lines, or
any other change that changes the generated TAP output. (Hence no splitting

10 years agoEliminate use of $::Message in t/re/pat_rt_report.t
Nicholas Clark [Fri, 4 Mar 2011 15:31:17 +0000 (15:31 +0000)]
Eliminate use of $::Message in t/re/pat_rt_report.t

Pass the message in explicitly to the test functions. Change to use
compatible functions where appropriate. For now avoid renumbering lines, or
any other change that changes the generated TAP output. (Hence no splitting

10 years agoEliminate use of $::Message in t/re/pat_advanced.t
Nicholas Clark [Fri, 4 Mar 2011 10:02:36 +0000 (10:02 +0000)]
Eliminate use of $::Message in t/re/pat_advanced.t

Pass the message in explicitly to the test functions. Change to use
compatible functions where appropriate. For now avoid renumbering lines, or
any other change that changes the generated TAP output. (Hence no splitting

10 years agoEliminate use of $::Message in t/re/pat.t
Nicholas Clark [Thu, 3 Mar 2011 14:45:25 +0000 (14:45 +0000)]
Eliminate use of $::Message in t/re/pat.t

Pass the message in explicitly to the test functions. Change to use
compatible functions where appropriate. For now avoid renumbering lines, or
any other change that changes the generated TAP output. (Hence no splitting of

10 years agoIn, provide is(), isnt(), like() and unlike(), equivalent to
Nicholas Clark [Thu, 3 Mar 2011 14:44:31 +0000 (14:44 +0000)]
In, provide is(), isnt(), like() and unlike(), equivalent to

This will ease the migration of the users of to

10 years agoIn, convert iseq() and isneq() to the same logic as's is/isnt
Nicholas Clark [Wed, 2 Mar 2011 16:23:17 +0000 (16:23 +0000)]
In, convert iseq() and isneq() to the same logic as's is/isnt

Previously both would stringify first, then compare, which would mean that
any overloaded objects would have their stringify method called, instead of
'eq' or 'ne'.

10 years agoIn, change like() and unlike() to avoid copying the tested scalar.
Nicholas Clark [Thu, 3 Mar 2011 08:30:16 +0000 (08:30 +0000)]
In, change like() and unlike() to avoid copying the tested scalar.

This means that side effects of matching regexps on it are maintained,
specifically the value of pos, making more useful for tests in t/re.

This is a subtle divergence from the behaviour of Test::More::{like,unlike}

10 years ago59d6f6a4c05afa7f was too aggressive, as it disabled #! line -I on miniperl
Nicholas Clark [Sat, 5 Mar 2011 19:59:42 +0000 (19:59 +0000)]
59d6f6a4c05afa7f was too aggressive, as it disabled #! line -I on miniperl

Restore -I processing on the #! line for miniperl. This gets t/run/switchI.t
and t/run/switchd-78586.t passing again under minitest.

10 years agoFix podchecker warnings.
Michael Stevens [Mon, 28 Feb 2011 14:23:52 +0000 (14:23 +0000)]
Fix podchecker warnings.

Fix warnings due to empty lines containing whitespace in

10 years agoAvoid miniperl SEGVing when processing -I on the #! line
Nicholas Clark [Sat, 5 Mar 2011 18:14:47 +0000 (18:14 +0000)]
Avoid miniperl SEGVing when processing -I on the #! line

A side-effect of change 3185893b8dec1062 was to force av in S_incpush() to be
NULL, whilst other flag variables were still set as if it were non-NULL, for
certain cases, only when compiled with -DPERL_IS_MINIPERL

The "obvious" fix is to also set all the flag variables to 0 under
-DPERL_IS_MINIPERL, to make everything consistent. However, this confuses (at
least) the local version of gcc, which issues warnings about passing a NULL
value (av, known always to be NULL) as a not-NULL parameter, despite the fact
that all the relevant calls are inside blocks which are actually dead code,
due to the if() conditions being const variables set to 0 under

So to avoid future bug reports about compiler warnings, the least worst thing
to do seems to be to use #ifndef to use the pre-processor to eliminate the
dead code, and related variables.

10 years agoIn S_incpush, unixify libdir earlier.
Craig A. Berry [Fri, 4 Mar 2011 22:44:24 +0000 (16:44 -0600)]
In S_incpush, unixify libdir earlier.

This allows, for example, -I[.lib] to have Unix format appendages
added, such as "/", "/", etc.

It was previously only being converted to Unix syntax to allow the addition
of subdirectories, but the number of things that want to glue pieces onto
lib/ have multiplied over the years.

10 years agoIn S_incpush, omit subdirs when PERL_IS_MINIPERL.
Craig A. Berry [Fri, 4 Mar 2011 22:35:16 +0000 (16:35 -0600)]
In S_incpush, omit subdirs when PERL_IS_MINIPERL.

The new logic in S_parse_body that loads lib/ in
miniperl relies on lib being in $INC[0], which it won't be if we've
loaded version- and architecture-specific directories before lib.

Since miniperl isn't installed and can't do dynamic loading, it
doesn't really need those subdirectories, so skip loading them
for miniperl.

10 years agoperldelta entry for c707cf8e56262e82a832f4b1eceb109bee32ec3a
Karl Williamson [Fri, 4 Mar 2011 02:54:02 +0000 (19:54 -0700)]
perldelta entry for c707cf8e56262e82a832f4b1eceb109bee32ec3a

10 years All code points are in some block
Karl Williamson [Fri, 4 Mar 2011 02:10:06 +0000 (19:10 -0700)] All code points are in some block

Code points that are not in a block are considered to be in the
pseudo-block 'No_Block' by the Unicode standard; so change to do that
instead of 'undef'