--- loncom/interface/lontest.pm 2005/02/17 08:50:20 1.14 +++ loncom/interface/lontest.pm 2005/04/05 20:43:27 1.15 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # A debugging harness. # -# $Id: lontest.pm,v 1.14 2005/02/17 08:50:20 albertel Exp $ +# $Id: lontest.pm,v 1.15 2005/04/05 20:43:27 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,6 +33,7 @@ use strict; use Apache::Constants qw(:common :http); use GDBM_File; use Apache::loncommon; +use Apache::lonnet; # section takes one env var name as input, and returns # what section the given env var is in, which is the part @@ -46,102 +47,109 @@ sub section return ''; } - sub handler { - my $r = shift; - &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - return OK if $r->header_only; - - my $html=&Apache::lonxml::xmlbegin(); - my $bodytag=&Apache::loncommon::bodytag("List Environment","admin"); - $r->print($html.''.$bodytag); - - my $envkey; - - $r->print("

Debugging


\n"); - $r->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) { - 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; +sub print_hash { + my ($r,$hash)=@_; + 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 my $envkey (sort(keys(%{$hash}))) { + if (not ($i % $interval)) { + $r->print('
'); - $r->print("

$sec

"); - $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 = $hash->{$envkey}; + $envVal =~ s/(.{50})/$1\/g; + $envkey =~ s/(.{30})/$1\/g; - $r->print(""); - $r->print("\n"); - $i++; - } - - $r->print('
'); + $r->print("

$sec

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

Total Number of Elements: '.$i.'

'); + $r->print("$envkey"); + $r->print("$envVal\n"); + $i++; + } + $r->print('

Total Number of Elements: '.$i.'

'); +} +sub handler { + my $r = shift; + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + return OK if $r->header_only; + + my $html=&Apache::lonxml::xmlbegin(); + my $bodytag=&Apache::loncommon::bodytag("List Environment","admin"); + $r->print($html.''.$bodytag); + + $r->print("

Debugging


\n"); + $r->print(""); + + my %differences=%ENV; + foreach my $key (sort(keys(%env))) { + if ($env{$key} eq $differences{$key}) { + delete($differences{$key}); + } + } + &print_hash($r,\%differences); + &print_hash($r,\%env); + &print_hash($r,\%ENV); # ------------------------------------------------ If in a course, print hashes - if ($ENV{'request.course.id'}) { + if ($ENV{'request.course.id'}) { - my %parmhash; - my %symbhash; - my %hash; - - my $fn=$ENV{'request.course.fn'}; - - if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) { - $r->print('

Big Hash

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

Count not tie big hash

'); - } - if (tie(%parmhash,'GDBM_File', - $ENV{'request.course.fn'}.'_parms.db', - &GDBM_READER(),0640)) { - $r->print('

Parm Hash

'); - foreach (sort keys %parmhash) { + my %parmhash; + my %symbhash; + my %hash; + + my $fn=$ENV{'request.course.fn'}; + + if (tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640)) { + $r->print('

Big Hash

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

Count not tie big hash

'); + } + if (tie(%parmhash,'GDBM_File', + $ENV{'request.course.fn'}.'_parms.db', + &GDBM_READER(),0640)) { + $r->print('

Parm Hash

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

Could not tie parmhash

'); - } - if (tie(%symbhash,'GDBM_File',"$fn\_symb.db",&GDBM_READER(),0640)) { + } + if (tie(%symbhash,'GDBM_File',"$fn\_symb.db",&GDBM_READER(),0640)) { $r->print('

Symb Hash

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

Could not tie symbhash

'); - } - if (-e $fn.'.state') { - $r->print('

State

'); - my @conditions=(); - { - my $fh=Apache::File->new($fn.'.state'); - @conditions=<$fh>; - } - foreach (@conditions) { - $r->print(''.$_.'
'); - } - } - } - + } + if (-e $fn.'.state') { + $r->print('

State

'); + my @conditions=(); + { + my $fh=Apache::File->new($fn.'.state'); + @conditions=<$fh>; + } + foreach (@conditions) { + $r->print(''.$_.'
'); + } + } + } # ------------------------------------------------------------------- End Debug $r->print('');