geoff 2003/11/25 10:56:34
Modified: xs/maps apache_functions.map modperl_functions.map
xs/tables/current/ModPerl FunctionTable.pm
Added: t/response/TestAPI mpm_query.pm show_mpm.pm
xs/Apache/MPM Apache__MPM.h
Log:
add Apache::MPM class, along with show_mpm() and mpm_query() functions
Revision Changes Path
1.1 modperl-2.0/t/response/TestAPI/mpm_query.pm
Index: mpm_query.pm
===================================================================
package TestAPI::mpm_query;
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestTrace;
use Apache::MPM ();
use Apache::Const -compile => qw(OK :mpmq);
sub handler {
my $r = shift;
plan $r, tests => 3;
# ok, this isn't particularly pretty, but I can't think
# of a better way to do it
# all of these attributes I pulled right from the C sources
my $mpm = lc Apache::MPM::show_mpm;
if ($mpm eq 'prefork') {
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_NOT_SUPPORTED,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_DYNAMIC,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
# the underlying call for Apache::MPM_IS_THREADED is ap_mpm_query
# so might as well test is here...
t_debug('Apache::MPM_IS_THREADED returned ' . Apache::MPM_IS_THREADED);
ok (! Apache::MPM_IS_THREADED);
}
elsif ($mpm eq 'worker') {
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_DYNAMIC,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
t_debug('Apache::MPM_IS_THREADED returned ' . Apache::MPM_IS_THREADED);
ok (Apache::MPM_IS_THREADED);
}
elsif ($mpm eq 'leader') {
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_DYNAMIC,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
t_debug('Apache::MPM_IS_THREADED returned ' . Apache::MPM_IS_THREADED);
ok (Apache::MPM_IS_THREADED);
}
elsif ($mpm eq 'winnt') {
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM::mpm_query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_NOT_SUPPORTED,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
t_debug('Apache::MPM_IS_THREADED returned ' . Apache::MPM_IS_THREADED);
ok (Apache::MPM_IS_THREADED);
}
else {
skip "skipping MPMQ_IS_THREADED test for $mpm MPM", 0;
skip "skipping MPMQ_IS_FORKED test for $mpm MPM", 0;
skip "skipping Apache::MPM_IS_THREADED test for $mpm MPM", 0;
}
Apache::OK;
}
1;
1.1 modperl-2.0/t/response/TestAPI/show_mpm.pm
Index: show_mpm.pm
===================================================================
package TestAPI::show_mpm;
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::MPM ();
use Apache::Const -compile => 'OK';
sub handler {
my $r = shift;
plan $r, tests => 1;
my $mpm = Apache::Test::config->{server}->{mpm};
ok t_cmp(qr!$mpm!i,
Apache::MPM::show_mpm,
'Apache::MPM::show_mpm()');
Apache::OK;
}
1;
1.1 modperl-2.0/xs/Apache/MPM/Apache__MPM.h
Index: Apache__MPM.h
===================================================================
static MP_INLINE
int mpxs_Apache__MPM_mpm_query(int query)
{
int mpm_query_info;
apr_status_t retval = ap_mpm_query(query, &mpm_query_info);
if (retval == APR_SUCCESS) {
return mpm_query_info;
}
/* XXX hmm... what to do here. die?
* APR_ENOTIMPL should be sufficiently large
* that comparison tests fail... I think...
*/
return (int) retval;
}
1.65 +23 -23 modperl-2.0/xs/maps/apache_functions.map
Index: apache_functions.map
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- apache_functions.map 12 Jun 2003 23:27:03 -0000 1.64
+++ apache_functions.map 25 Nov 2003 18:56:34 -0000 1.65
@@ -488,28 +488,28 @@
!MODULE=Apache::XML
ap_xml_parse_input
-!MODULE=Apache::MPM
+MODULE=Apache::MPM
ap_mpm_query
>ap_mpm_run
- ap_os_create_privileged_process
- ap_wait_or_timeout
- ap_graceful_stop_signalled
- ap_process_child_status
- ap_reclaim_child_processes
- ap_sock_disable_nagle
- ap_gname2id
- ap_uname2id
- ap_lingering_close
- ap_mpm_pod_check
- ap_mpm_pod_close
- ap_mpm_pod_killpg
- ap_mpm_pod_open
- ap_mpm_pod_signal
- ap_mpm_set_accept_lock_mech
- ap_mpm_set_coredumpdir
- ap_mpm_set_lockfile
- ap_mpm_set_max_requests
- ap_mpm_set_pidfile
- ap_mpm_set_scoreboard
-?ap_show_mpm
- ap_listen_pre_config
+?ap_os_create_privileged_process
+?ap_wait_or_timeout
+?ap_graceful_stop_signalled
+?ap_process_child_status
+?ap_reclaim_child_processes
+?ap_sock_disable_nagle
+?ap_gname2id
+?ap_uname2id
+?ap_lingering_close
+?ap_mpm_pod_check
+?ap_mpm_pod_close
+?ap_mpm_pod_killpg
+?ap_mpm_pod_open
+?ap_mpm_pod_signal
+?ap_mpm_set_accept_lock_mech
+?ap_mpm_set_coredumpdir
+?ap_mpm_set_lockfile
+?ap_mpm_set_max_requests
+?ap_mpm_set_pidfile
+?ap_mpm_set_scoreboard
+ ap_show_mpm
+?ap_listen_pre_config
1.60 +3 -0 modperl-2.0/xs/maps/modperl_functions.map
Index: modperl_functions.map
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_functions.map,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- modperl_functions.map 6 Nov 2003 11:22:02 -0000 1.59
+++ modperl_functions.map 25 Nov 2003 18:56:34 -0000 1.60
@@ -134,3 +134,6 @@
MODULE=Apache::CmdParms
mpxs_Apache__CmdParms_info
+
+MODULE=Apache::MPM
+ mpxs_Apache__MPM_mpm_query
1.131 +10 -0 modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm
Index: FunctionTable.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm,v
retrieving revision 1.130
retrieving revision 1.131
diff -u -r1.130 -r1.131
--- FunctionTable.pm 17 Nov 2003 23:27:11 -0000 1.130
+++ FunctionTable.pm 25 Nov 2003 18:56:34 -0000 1.131
@@ -6898,6 +6898,16 @@
}
]
},
+ {
+ 'return_type' => 'int',
+ 'name' => 'mpxs_Apache__MPM_mpm_query',
+ 'args' => [
+ {
+ 'type' => 'int',
+ 'name' => 'query'
+ }
+ ]
+ },
];