Apache2-API
view release on metacpan or search on metacpan
lib/Apache2/API.pm view on Meta::CPAN
##----------------------------------------------------------------------------
## Apache2 API Framework - ~/lib/m
## Version v0.5.4
## Copyright(c) 2026 DEGUEST Pte. Ltd.
## Author: Jacques Deguest <jack@deguest.jp>
## Created 2023/05/30
## Modified 2026/06/17
## All rights reserved
##
##
## This program is free software; you can redistribute it and/or modify it
## under the same terms as Perl itself.
##----------------------------------------------------------------------------
package Apache2::API;
BEGIN
{
use strict;
use warnings;
use warnings::register;
use parent qw( Module::Generic );
use vars qw( $VERSION $DEBUG @EXPORT $USE_RFC_ERROR );
use version;
use Encode ();
# use Apache2::Const qw( :common :http );
use Apache2::Const -compile => qw( :cmd_how :common :config :conn_keepalive :context :filter_type :http :input_mode :log :methods :mpmq :options :override :platform :remotehost :satisfy :types :proxy );
use APR::Const -compile => qw( :common :error :fopen :filepath :fprot :filetype :finfo :flock :hook :limit :lockmech :poll :read_type :shutdown_how :socket :status :table :uri );
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::ServerUtil ();
use Apache2::RequestUtil ();
use Apache2::Response ();
use Apache2::Log ();
use Apache2::API::Request;
use Apache2::API::Response;
use Apache2::API::Status;
use APR::Base64 ();
use APR::Request ();
use APR::UUID ();
use Exporter ();
use JSON ();
use Scalar::Util ();
our @EXPORT = qw( apr1_md5 );
$DEBUG = 0;
$VERSION = 'v0.5.4';
};
use strict;
use warnings;
sub import
{
my( $this, @arguments ) = @_ ;
my $class = CORE::caller();
# my $code = qq{package ${class}; use Apache2::Const -compile => qw( @arguments );};
# print( "Evaluating -> $code\n" );
# eval( $code );
# print( "\$@ -> $@\n" );
# local $Exporter::ExportLevel = 1;
# Apache2::Const->import( '-compile' => @arguments );
# my @argv = grep( !/^\:http/, @arguments );
# Apache2::Const->compile( '-compile' => @argv );
# Apache2::Const->compile( $class => qw( AUTH_REQUIRED ) );
Apache2::Const->compile( $class => @arguments );
Exporter::export_to_level( $this, 1, @EXPORT );
}
sub init
{
my $self = shift( @_ );
my $r;
$r = shift( @_ ) if( @_ % 2 );
# my $r = shift( @_ ) || Apache2::RequestUtil->request;
$self->{request} = undef unless( $self->{request} );
$self->{response} = undef unless( $self->{response} );
$self->{apache_request} = $r unless( $self->{apache_request} );
# 200Kb
$self->{compression_threshold} = 204800 unless( length( $self->{compression_threshold} ) );
$self->{use_rfc_error} = $USE_RFC_ERROR unless( length( $self->{use_rfc_error} ) );
$self->SUPER::init( @_ ) || return( $self->pass_error );
unless( $r = $self->apache_request )
{
$r ||= Apache2::RequestUtil->request;
return( $self->error( "No Apache2::RequestRec object was provided." ) ) if( !$r );
lib/Apache2/API.pm view on Meta::CPAN
=item C<-user>
User to run test server as (default is C<$USER>)
=back
See also L<Apache::TestMM> for available parameters or you can type on the command line:
perl -MApache::TestConfig -le 'Apache::TestConfig::usage()'
=head2 Tesging options
For example, specifying a port to use:
t/TEST -start-httpd -port=34343
t/TEST -run-tests
t/TEST -stop-httpd
You can run C<< t/TEST -help >> to get the list of options. See below as well:
=over 4
=item C<-breakpoint=bp>
set breakpoints (multiply bp can be set)
=item C<-bugreport>
print the hint how to report problems
=item C<-clean>
remove all generated test files
=item C<-configure>
force regeneration of httpd.conf (tests will not be run)
=item C<-debug[=name]>
start server under debugger name (gdb, ddd, etc.)
=item C<-get>
GET url
=item C<-head>
HEAD url
=item C<-header>
add headers to (get|post|head) request
=item C<-help>
display this message
=item C<-http11>
run all tests with C<HTTP/1.1> (keep alive) requests
=item C<-no-httpd>
run the tests without configuring or starting httpd
=item C<-one-process>
run the server in single process mode
=item C<-order=mode>
run the tests in one of the modes: (repeat|random|SEED)
=item C<-ping[=block]>
test if server is running or port in use
=item C<-post>
POST url
=item C<-postamble>
config to add at the end of C<httpd.conf>
=item C<-preamble>
config to add at the beginning of C<httpd.conf>
=item C<-proxy>
proxy requests (default proxy is localhost)
=item C<-run-tests>
run the tests
=item C<-ssl>
run tests through ssl
=item C<-start-httpd>
start the test server
=item C<-stop-httpd>
stop the test server
=item C<-trace=T>
change tracing default to: warning, notice, info, debug, ...
=item C<-verbose[=1]>
verbose output
=back
See for more information L<https://perl.apache.org/docs/general/testing/testing.html>
( run in 0.510 second using v1.01-cache-2.11-cpan-df04353d9ac )