⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apitest.pm

📁 source of perl for linux application,
💻 PM
字号:
package XS::APItest;use 5.008;use strict;use warnings;use Carp;use base qw/ DynaLoader Exporter /;# Items to export into callers namespace by default. Note: do not export# names by default without a very good reason. Use EXPORT_OK instead.# Do not simply export all your public functions/methods/constants.# Export everything since these functions are only used by a test scriptour @EXPORT = qw( print_double print_int print_long		  print_float print_long_double have_long_double print_flush		  mpushp mpushn mpushi mpushu		  mxpushp mxpushn mxpushi mxpushu		  call_sv call_pv call_method eval_sv eval_pv require_pv		  G_SCALAR G_ARRAY G_VOID G_DISCARD G_EVAL G_NOARGS		  G_KEEPERR G_NODEBUG G_METHOD		  apitest_exception mycroak strtab		  my_cxt_getint my_cxt_getsv my_cxt_setint my_cxt_setsv		  sv_setsv_cow_hashkey_core sv_setsv_cow_hashkey_notcore);# from cop.h sub G_SCALAR()	{   0 }sub G_ARRAY()	{   1 }sub G_VOID()	{ 128 }sub G_DISCARD()	{   2 }sub G_EVAL()	{   4 }sub G_NOARGS()	{   8 }sub G_KEEPERR()	{  16 }sub G_NODEBUG()	{  32 }sub G_METHOD()	{  64 }our $VERSION = '0.12';use vars '$WARNINGS_ON_BOOTSTRAP';use vars map "\$${_}_called_PP", qw(BEGIN UNITCHECK CHECK INIT END);# Do these here to verify that XS code and Perl code get called at the same# timesBEGIN {    $BEGIN_called_PP++;}UNITCHECK {    $UNITCHECK_called_PP++;}{    # Need $W false by default, as some tests run under -w, and under -w we    # can get warnings about "Too late to run CHECK" block (and INIT block)    no warnings 'void';    CHECK {	$CHECK_called_PP++;    }    INIT {	$INIT_called_PP++;    }}END {    $END_called_PP++;}if ($WARNINGS_ON_BOOTSTRAP) {    bootstrap XS::APItest $VERSION;} else {    # More CHECK and INIT blocks that could warn:    local $^W;    bootstrap XS::APItest $VERSION;}1;__END__=head1 NAMEXS::APItest - Test the perl C API=head1 SYNOPSIS  use XS::APItest;  print_double(4);=head1 ABSTRACTThis module tests the perl C API. Currently tests that C<printf>works correctly.=head1 DESCRIPTIONThis module can be used to check that the perl C API is behavingcorrectly. This module provides test functions and an associatedtest script that verifies the output.This module is not meant to be installed.=head2 EXPORTExports all the test functions:=over 4=item B<print_double>Test that a double-precision floating point number is formattedcorrectly by C<printf>.  print_double( $val );Output is sent to STDOUT.=item B<print_long_double>Test that a C<long double> is formatted correctly byC<printf>. Takes no arguments - the test value is hard-wiredinto the function (as "7").  print_long_double();Output is sent to STDOUT.=item B<have_long_double>Determine whether a C<long double> is supported by Perl.  This shouldbe used to determine whether to test C<print_long_double>.  print_long_double() if have_long_double;=item B<print_nv>Test that an C<NV> is formatted correctly byC<printf>.  print_nv( $val );Output is sent to STDOUT.=item B<print_iv>Test that an C<IV> is formatted correctly byC<printf>.  print_iv( $val );Output is sent to STDOUT.=item B<print_uv>Test that an C<UV> is formatted correctly byC<printf>.  print_uv( $val );Output is sent to STDOUT.=item B<print_int>Test that an C<int> is formatted correctly byC<printf>.  print_int( $val );Output is sent to STDOUT.=item B<print_long>Test that an C<long> is formatted correctly byC<printf>.  print_long( $val );Output is sent to STDOUT.=item B<print_float>Test that a single-precision floating point number is formattedcorrectly by C<printf>.  print_float( $val );Output is sent to STDOUT.=item B<call_sv>, B<call_pv>, B<call_method>These exercise the C calls of the same names. Everything after the flagsarg is passed as the the args to the called function. They return whateverthe C function itself pushed onto the stack, plus the return value fromthe function; for example    call_sv( sub { @_, 'c' }, G_ARRAY,  'a', 'b'); # returns 'a', 'b', 'c', 3    call_sv( sub { @_ },      G_SCALAR, 'a', 'b'); # returns 'b', 1=item B<eval_sv>Evaluates the passed SV. Result handling is done the same as forC<call_sv()> etc.=item B<eval_pv>Exercises the C function of the same name in scalar context. Returns thesame SV that the C function returns.=item B<require_pv>Exercises the C function of the same name. Returns nothing.=back=head1 SEE ALSOL<XS::Typemap>, L<perlapi>.=head1 AUTHORSTim Jenness, E<lt>t.jenness@jach.hawaii.eduE<gt>,Christian Soeller, E<lt>csoelle@mph.auckland.ac.nzE<gt>,Hugo van der Sanden E<lt>hv@crypt.compulink.co.ukE<gt>=head1 COPYRIGHT AND LICENSECopyright (C) 2002,2004 Tim Jenness, Christian Soeller, Hugo van der Sanden.All Rights Reserved.This library is free software; you can redistribute it and/or modifyit under the same terms as Perl itself. =cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -