The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 15;
use Test::NoWarnings;

use Data::Peek qw( DGrow DDump );

my $x = "";
is (length ($x), 0,		"Initial length = 0");
my %dd = DDump $x;
ok ($dd{LEN} <= 16);
my $len = 10240;
ok (my $l = DGrow ($x, $len),	"Set to $len");
is (length ($x), 0,		"Variable content");
ok ($l >= $len,			"returned LEN >= $len");
my $limit = 4 * $len;
ok ($l <= $limit,		"returned LEN <= $limit");
   %dd = DDump $x;
ok ($dd{LEN} >= $len,		"LEN in variable >= $len");
ok ($dd{LEN} <= $limit,		"LEN in variable <= limit");
ok ($l = DGrow (\$x, $limit),	"Set to $limit");
ok ($l >= $limit,		"LEN in variable >= $limit");
($len, $limit) = ($limit, 4 * $limit);
ok ($l <= $limit,		"LEN in variable <= $limit");
   %dd = DDump $x;
ok ($dd{LEN} >= $len,		"LEN in variable >= $len");
ok ($dd{LEN} <= $limit,		"LEN in variable <= $limit");
is (DGrow ($x, 20), $l,		"Don't shrink");

1;