This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Devel::PPPort: force string when testing SvPV_renew
[perl5.git] / cpan / Devel-PPPort / t / SvPV.t
CommitLineData
adfe19db
MHM
1################################################################################
2#
3# !!!!! Do NOT edit this file directly! !!!!!
4#
5# Edit mktests.PL and/or parts/inc/SvPV instead.
6#
cac25305
MHM
7# This file was automatically generated from the definition files in the
8# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
9# works, please read the F<HACKERS> file that came with this distribution.
10#
adfe19db
MHM
11################################################################################
12
13BEGIN {
14 if ($ENV{'PERL_CORE'}) {
15 chdir 't' if -d 't';
0ff33da8 16 @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
adfe19db
MHM
17 require Config; import Config;
18 use vars '%Config';
a745474a 19 if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
adfe19db
MHM
20 print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
21 exit 0;
22 }
23 }
24 else {
25 unshift @INC, 't';
26 }
27
c07deaaf
MHM
28 sub load {
29 eval "use Test";
30 require 'testutil.pl' if $@;
adfe19db 31 }
c07deaaf 32
c01be2ce 33 if (47) {
c07deaaf 34 load();
c01be2ce 35 plan(tests => 47);
adfe19db
MHM
36 }
37}
38
39use Devel::PPPort;
40use strict;
41$^W = 1;
42
236afa0a
MHM
43package Devel::PPPort;
44use vars '@ISA';
45require DynaLoader;
46@ISA = qw(DynaLoader);
47bootstrap Devel::PPPort;
48
49package main;
50
679ad62d
MHM
51my $mhx = "mhx";
52
53ok(&Devel::PPPort::SvPVbyte($mhx), 3);
54
55my $i = 42;
56
57ok(&Devel::PPPort::SvPV_nolen($mhx), $i++);
58ok(&Devel::PPPort::SvPV_const($mhx), $i++);
59ok(&Devel::PPPort::SvPV_mutable($mhx), $i++);
60ok(&Devel::PPPort::SvPV_flags($mhx), $i++);
61ok(&Devel::PPPort::SvPV_flags_const($mhx), $i++);
62
63ok(&Devel::PPPort::SvPV_flags_const_nolen($mhx), $i++);
64ok(&Devel::PPPort::SvPV_flags_mutable($mhx), $i++);
65ok(&Devel::PPPort::SvPV_force($mhx), $i++);
66ok(&Devel::PPPort::SvPV_force_nolen($mhx), $i++);
67ok(&Devel::PPPort::SvPV_force_mutable($mhx), $i++);
68
69ok(&Devel::PPPort::SvPV_force_nomg($mhx), $i++);
70ok(&Devel::PPPort::SvPV_force_nomg_nolen($mhx), $i++);
71ok(&Devel::PPPort::SvPV_force_flags($mhx), $i++);
72ok(&Devel::PPPort::SvPV_force_flags_nolen($mhx), $i++);
73ok(&Devel::PPPort::SvPV_force_flags_mutable($mhx), $i++);
74
75ok(&Devel::PPPort::SvPV_nolen_const($mhx), $i++);
76ok(&Devel::PPPort::SvPV_nomg($mhx), $i++);
77ok(&Devel::PPPort::SvPV_nomg_const($mhx), $i++);
78ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), $i++);
adfe19db 79
8d2082b0
MHM
80$mhx = 42; ok(&Devel::PPPort::SvPV_nolen($mhx), 0);
81$mhx = 42; ok(&Devel::PPPort::SvPV_const($mhx), 2);
82$mhx = 42; ok(&Devel::PPPort::SvPV_mutable($mhx), 2);
83$mhx = 42; ok(&Devel::PPPort::SvPV_flags($mhx), 2);
84$mhx = 42; ok(&Devel::PPPort::SvPV_flags_const($mhx), 2);
85
86$mhx = 42; ok(&Devel::PPPort::SvPV_flags_const_nolen($mhx), 0);
87$mhx = 42; ok(&Devel::PPPort::SvPV_flags_mutable($mhx), 2);
88$mhx = 42; ok(&Devel::PPPort::SvPV_force($mhx), 2);
89$mhx = 42; ok(&Devel::PPPort::SvPV_force_nolen($mhx), 0);
90$mhx = 42; ok(&Devel::PPPort::SvPV_force_mutable($mhx), 2);
91
92$mhx = 42; ok(&Devel::PPPort::SvPV_force_nomg($mhx), 2);
93$mhx = 42; ok(&Devel::PPPort::SvPV_force_nomg_nolen($mhx), 0);
94$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags($mhx), 2);
95$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags_nolen($mhx), 0);
96$mhx = 42; ok(&Devel::PPPort::SvPV_force_flags_mutable($mhx), 2);
97
98$mhx = 42; ok(&Devel::PPPort::SvPV_nolen_const($mhx), 0);
99$mhx = 42; ok(&Devel::PPPort::SvPV_nomg($mhx), 2);
100$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const($mhx), 2);
101$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), 0);
102
c01be2ce 103my $str = "";
90b0dc0e 104&Devel::PPPort::SvPV_force($str);
c01be2ce
MHM
105my($s2, $before, $after) = &Devel::PPPort::SvPV_renew($str, 81, "x"x80);
106ok($str, "x"x80);
107ok($s2, "x"x80);
108ok($before < 81);
109ok($after, 81);
110
111$str = "x"x400;
90b0dc0e 112&Devel::PPPort::SvPV_force($str);
c01be2ce
MHM
113($s2, $before, $after) = &Devel::PPPort::SvPV_renew($str, 41, "x"x40);
114ok($str, "x"x40);
115ok($s2, "x"x40);
116ok($before > 41);
117ok($after, 41);
118