-%# $Id: check.mc,v 1.3 2006-09-20 16:36:07 mike Exp $
+<%args>
+@id
+$test => "Quick"
+$really => 0
+$YAZ_LOG => "irspy,irspy_test"
+</%args>
+<%perl>
+my @rulesFiles = ("dallas.rules");
+
+my $allTargets = (@id == 1 && $id[0] eq "");
+if ($allTargets && !$really) {
+</%perl>
+ <h2>Warning</h2>
+ <p class="error">
+ Testing all the targets is a very slow process.
+ Are you sure you want to do this?
+ </p>
+ <p>
+ <a href="?really=1&test=Quick">Yes: Quick Test</a><br/>
+ <a href="?really=1&test=Main">Yes: Full Test</a><br/>
+ <a href="/">No</a><br/>
+ </p>
<%perl>
-my $id = $r->param("id");
-if (!$id) {
- print "No 'id' specified!\n";
} else {
- print "<h2>$id</h2>\n";
- my $spy = new ZOOM::IRSpy("localhost:3313/IR-Explain---1", admin => "fruitbat");
- ZOOM::Log::mask_str("irspy,irspy_test"); # Do we need this?
- ZOOM::Log::init_level(ZOOM::Log::module_level("irspy,irspy_test"));
- ZOOM::Log::time_format("%F %T"); # ISO-8601 format
- ### capture logging output ... somehow.
- $spy->targets($id);
- $spy->initialise();
- my $res = $spy->check();
- if ($res == 0) {
- print "All tests were run\n";
- } else {
- print "Some tests were skipped\n";
- }
+
+print "<h2>Testing ...</h2>\n";
+print " <ul>\n", join("", map { " <li>$_</li>\n" } @id), "</ul>\n"
+ if !$allTargets;
+print "<p>Logging: <tt>", join("/", split /,/, $YAZ_LOG), "</tt></p>\n";
+$m->flush_buffer();
+
+# Turning on autoflush with $m->autoflush() doesn't seem to work if
+# even if the "MasonEnableAutoflush" configuration parameter is turned
+# on in the HTTP configuration, so we don't even try -- instead,
+# having ZOOM::IRSpy::Web::log() explicitly calling $m->flush_buffer()
+
+$ZOOM::IRSpy::xslt_max_depth = 3500; ### Hideous hack
+my $db = ZOOM::IRSpy::connect_to_registry();
+my $spy = new ZOOM::IRSpy::Web($db,
+ admin => "fruitbat");
+$spy->log_init_level($YAZ_LOG);
+$spy->targets(@id) if !$allTargets;
+foreach my $rulesFile (@rulesFiles) {
+ $spy->apply_rules($ENV{DOCUMENT_ROOT} . "/../../etc/" . $rulesFile);
+ print "applied rules '$rulesFile'\n";
+}
+$spy->initialise($test);
+my $res = $spy->check();
+print "<p>\n";
+if ($res == 0) {
+ print "<b>All tests were attempted</b>\n";
+} else {
+ print "<b>$res tests were skipped</b>\n";
+}
+print "</p>\n";
}
</%perl>