From c12735bbf21c427d9828557cda9e0c2ea60962c0 Mon Sep 17 00:00:00 2001 From: Zefram Date: Sun, 12 Dec 2010 20:09:00 +0000 Subject: [PATCH] API test for find_rundefsv() --- MANIFEST | 1 + ext/XS-APItest/APItest.xs | 14 ++++++++++++++ ext/XS-APItest/t/underscore_length.t | 20 ++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 ext/XS-APItest/t/underscore_length.t diff --git a/MANIFEST b/MANIFEST index 60a60b4..291409f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -3763,6 +3763,7 @@ ext/XS-APItest/t/svsetsv.t Test behaviour of sv_setsv with/without PERL_CORE ext/XS-APItest/t/swaplabel.t test recursive descent label parsing ext/XS-APItest/t/swaptwostmts.t test recursive descent statement parsing ext/XS-APItest/t/temp_lv_sub.t XS::APItest: tests for lvalue subs returning temps +ext/XS-APItest/t/underscore_length.t Test find_rundefsv() ext/XS-APItest/t/utf16_to_utf8.t Test behaviour of utf16_to_utf8{,reversed} ext/XS-APItest/t/utf8.t Tests for code in utf8.c ext/XS-APItest/t/xs_special_subs_require.t for require too diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs index 0b3a6cb..d3d7274 100644 --- a/ext/XS-APItest/APItest.xs +++ b/ext/XS-APItest/APItest.xs @@ -2861,6 +2861,20 @@ CODE: OUTPUT: RETVAL +STRLEN +underscore_length() +PROTOTYPE: +PREINIT: + SV *u; + U8 *pv; + STRLEN bytelen; +CODE: + u = find_rundefsv(); + pv = (U8*)SvPV(u, bytelen); + RETVAL = SvUTF8(u) ? utf8_length(pv, pv+bytelen) : bytelen; +OUTPUT: + RETVAL + MODULE = XS::APItest PACKAGE = XS::APItest::Magic PROTOTYPES: DISABLE diff --git a/ext/XS-APItest/t/underscore_length.t b/ext/XS-APItest/t/underscore_length.t new file mode 100644 index 0000000..7ca6906 --- /dev/null +++ b/ext/XS-APItest/t/underscore_length.t @@ -0,0 +1,20 @@ +use warnings; +use strict; + +use Test::More tests => 4; + +use XS::APItest qw(underscore_length); + +$_ = "foo"; +is underscore_length(), 3; + +$_ = "snowman \x{2603}"; +is underscore_length(), 9; + +my $_ = "xyzzy"; +is underscore_length(), 5; + +$_ = "pile of poo \x{1f4a9}"; +is underscore_length(), 13; + +1; -- 2.7.4