#!./perl -w
#
# automated tests for Data::Dumper that need large amounts of memory; they
# are skipped unless PERL_TEST_MEMORY is set, and at least 10
#
use strict;
use warnings;
use Test::More;
use Config;
use Data::Dumper;
BEGIN {
plan skip_all => 'Data::Dumper was not built'
if $Config{extensions} !~ m{\b Data/Dumper \b}x;
plan skip_all => 'Need 64-bit pointers for this test'
if $Config{ptrsize} < 8;
plan skip_all => 'Need ~10 GiB of core for this test'
if !$ENV{PERL_TEST_MEMORY} || $ENV{PERL_TEST_MEMORY} < 10;
}
plan tests => 1;
{
my $input = q/'/ x 2**31;
my $len = length Dumper($input);
# Each single-quote will get backslashed, so the output must have
# stricly more than twice as many characters as the input.
cmp_ok($len, '>', 2**32, 'correct output for huge all-quotable value');
undef $input;
}