--- loncom/interface/lontest.pm 2001/12/19 17:17:46 1.3 +++ loncom/interface/lontest.pm 2002/08/12 18:21:42 1.6 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # A debugging harness. # -# $Id: lontest.pm,v 1.3 2001/12/19 17:17:46 albertel Exp $ +# $Id: lontest.pm,v 1.6 2002/08/12 18:21:42 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -31,32 +31,95 @@ package Apache::lontest; use strict; use Apache::Constants qw(:common :http); +use GDBM_File; + +# section takes one env var name as input, and returns +# what section the given env var is in, which is the part +# of the env var before the first period. +# Returns the section, or blank string for 'no section', +# which is normal for the standard ENV vars like REQUEST_URI. +sub section +{ + my ($name) = @_; + return $1 if $name =~ m/\A([^.]*)\./; + return ''; +} sub handler { my $r = shift; $r->content_type('text/html'); $r->send_http_header; return OK if $r->header_only; - $r->print(''); my $envkey; $->print("

Debugging


\n"); + $->print(""); my $i=0; + my $interval = 20; # change this to change how many keys/table + my $prevSection = ''; # keeps track of the section we're in. foreach $envkey (sort keys %ENV) { - $r->print("$envkey ---- $ENV{$envkey}
"); - $i++; + if (not ($i % $interval)) + { + $r->print('') unless $i eq 0; + $r->print('') + } + my $sec = section($envkey); + + if ($prevSection ne $sec) # new section, print header + { + $r->print(''); + $prevSection = $sec; + } + + my $envVal = $ENV{$envkey}; + $envVal =~ s/(.{50})/\1\/g; + $envkey =~ s/(.{30})/\1\/g; + + $r->print(""); + $r->print("\n"); + $i++; } - $r->print('

Total Number of Elements: '.$i.'

'); + $r->print('
'); + $r->print("

$sec

"); + $r->print('
$envkey$envVal

Total Number of Elements: '.$i.'

'); + +# ------------------------------------------------ If in a course, print hashes + if ($ENV{'request.course.id'}) { + + my %parmhash; + my %hash; + + my $fn=$ENV{'request.course.fn'}; + + if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) && + (tie(%parmhash,'GDBM_File', + $ENV{'request.course.fn'}.'_parms.db', + &GDBM_READER(),0640))) { + $r->print('

Big Hash

'); + foreach (sort keys %hash) { + $r->print("\n
".$_.': '.$hash{$_}); + } + $r->print('

Parm Hash

'); + foreach (sort keys %parmhash) { + $r->print("\n
".$_.': '.$parmhash{$_}); + } + untie %hash; + untie %parmhash; + } + + + } # ------------------------------------------------------------------- End Debug $r->print(''); } + 1; __END__