blob: 3505b80ce121f46c16151928188a394f44fc88e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#!perl -w
BEGIN {
eval {
require Perl::API;
};
if ($@) {
print "1..0 # skipped: Perl::API needed for this test\n";
print $@;
exit;
}
}
use strict;
use Test qw(plan ok);
use Perl::API qw(SvCUR SvCUR_set SvLEN);
use MIME::Base64 qw(encode_base64 decode_base64);
use MIME::QuotedPrint qw(encode_qp decode_qp);
plan tests => 6;
my $a = "abc";
ok(SvCUR($a), 3);
ok(SvLEN($a), 4);
# Make sure that encode_base64 does not look beyond SvCUR().
# This was fixed in v2.21. Valgrind would also show some
# illegal reads on this.
SvCUR_set($a, 1);
ok(encode_base64($a), "YQ==\n");
SvCUR_set($a, 4);
ok(encode_base64($a), "YWJjAA==\n");
ok(encode_qp($a), "abc=00");
$a = "ab\n";
SvCUR_set($a, 2);
ok(encode_qp($a), "ab");
|