ASNMTAP

 view release on metacpan or  search on metacpan

plugins/jUnit/check_jUnit.pl  view on Meta::CPAN

              print "xml->{server}<->\n",                $xml->{server},                "\n";
              print "xml->{Test_success}<->\n",          $xml->{Test_success},          "\n";
              print "xml->{testClass}->{tests}<->\n",    $xml->{testClass}->{tests},    "\n";
              print "xml->{testClass}->{failures}<->\n", $xml->{testClass}->{failures}, "\n";
              print "xml->{testClass}->{errors}<->\n",   $xml->{testClass}->{errors},   "\n";
              print "xml->{testClass}->{name}<->\n",     $xml->{testClass}->{name},     "\n";
              print "xml->{testClass}->{package}<->\n",  $xml->{testClass}->{package},  "\n";

              if (defined $xml->{testClass}->{testcase}->{name}) {
                print "xml->{testClass}->{testcase}->{name}<->\n", $xml->{testClass}->{testcase}->{name}, "\n";
                print "xml->{testClass}->{testcase}->{time}<->\n", $xml->{testClass}->{testcase}->{time}, "\n";

                if ( defined $xml->{testClass}->{testcase}->{error} ) {
                  print "xml->{testClass}->{testcase}->{error}->{content}<->\n", $xml->{testClass}->{testcase}->{error}->{content}, "\n";
                  print "xml->{testClass}->{testcase}->{error}->{type}<->\n",    $xml->{testClass}->{testcase}->{error}->{type},    "\n";
                  print "xml->{testClass}->{testcase}->{error}->{message}<->\n", $xml->{testClass}->{testcase}->{error}->{message}, "\n";
                }

                if ( defined $xml->{testClass}->{testcase}->{failure} ) {
                  print "xml->{testClass}->{testcase}->{failure}->{content}<->\n", $xml->{testClass}->{testcase}->{failure}->{content}, "\n";
                  print "xml->{testClass}->{testcase}->{failure}->{type}<->\n",    $xml->{testClass}->{testcase}->{failure}->{type},    "\n";
                  print "xml->{testClass}->{testcase}->{failure}->{message}<->\n", $xml->{testClass}->{testcase}->{failure}->{message}, "\n";
                }
              } else {
                foreach my $testcase_name (keys %{$xml->{testClass}->{testcase}}) {
                  print "xml->{testClass}->{testcase}->{$testcase_name}->{time}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{time}, "\n";

                  if ( defined $xml->{testClass}->{testcase}->{$testcase_name}->{error} ) {
                    print "xml->{testClass}->{testcase}->{$testcase_name}->{error}->{content}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{content}, "\n";
                    print "xml->{testClass}->{testcase}->{$testcase_name}->{error}->{type}<->\n",    $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{type},    "\n";
                    print "xml->{testClass}->{testcase}->{$testcase_name}->{error}->{message}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{message}, "\n";
                  }

                  if ( defined $xml->{testClass}->{testcase}->{$testcase_name}->{failure} ) {
                    print "xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{content}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{content}, "\n";
                    print "xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{type}<->\n",    $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{type},    "\n";
                    print "xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{message}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{message}, "\n";
                  }
                }
              }
            }

            if ( defined $xml->{Test_success} and $xml->{Test_success} !~ /^True$/i ) {
              $performanceDataTests    += $xml->{testClass}->{tests};
              $performanceDataFailures += $xml->{testClass}->{failures};
              $performanceDataErrors   += $xml->{testClass}->{errors};
              $performanceDataTime     += $xml->{testClass}->{time};

              if (defined $xml->{testClass}->{testcase}->{name}) {
                $objectPlugins->appendPerformanceData ( "'" .$xml->{testClass}->{testcase}->{name}.$testresultName. "'=". $xml->{testClass}->{testcase}->{time} .'s;;;;' );
              } else {
                foreach my $testcase_name (keys %{$xml->{testClass}->{testcase}}) {
                  print "xml->{testClass}->{testcase}->{$testcase_name}->{time}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{time}, "\n" if ($debug == 2);
                  $objectPlugins->appendPerformanceData ( "'".$testcase_name.$testresultName."'=". $xml->{testClass}->{testcase}->{$testcase_name}->{time} .'s;;;;' );
                }
              }

              $objectPlugins->pluginValue ( stateValue => $ERRORS{CRITICAL} );

              unless (defined $httpdumpMessage) {
                $httpdumpMessage  = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<HTML><HEAD><TITLE>jUnit XML::Parser \@ $APPLICATION</TITLE></HEAD><BODY><HR><H1 style=\"margin: 0px 0px 5px; font: 125% verdana,arial,helvetica\"...
              } else {
                $httpdumpMessage .= "<BR>";
              }

              $httpdumpMessage .= "<H2 style=\"margin-top: 1em; margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica\">Server : $xml->{server}</H2>";
              $httpdumpMessage .= "<H2 style=\"margin-top: 1em; margin-bottom: 0.5em; font: bold 90% verdana,arial,helvetica\">Summary: $xml->{name} ($xml->{version}) - $xml->{Test_success}</H2>";

              $httpdumpMessage .= "<TABLE WIDTH=\"100%\"><TR style=\"font: normal 68% bold verdana,arial,helvetica; text-align:left; background:#a6caf0;\"><TH>Tests</TH><TH>Failures</TH><TH>Errors</TH><TH>Time</TH></TR>";
              $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:purple;\"><TD>$xml->{testClass}->{tests}</TD><TD>$xml->{testClass}->{failures}</TD><TD>$xml->{testClass}->{errors}</TD><TD>$xml->{...
              $httpdumpMessage .= "</TD></TR></TABLE>\n";
              $httpdumpMessage .= "<table width=\"100%\" border=\"0\"><tr><td style=\"font: verdana,arial,helvetica; text-align: justify;\">Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated.</...

              $httpdumpMessage .= "<H3 style=\"margin-bottom: 0.5em; font: bold 90% verdana,arial,helvetica\">Testcase: $xml->{testClass}->{name} ($xml->{testClass}->{package})</H3>\n";
              $httpdumpMessage .= "<TABLE WIDTH=\"100%\"><TR style=\"font: normal 68% bold verdana,arial,helvetica; text-align:left; background:#a6caf0;\"><TH>Name</TH><TH>Status</TH><TH>Type</TH><TH>Time</TH></TR>\n";

              if (defined $xml->{testClass}->{testcase}->{name}) {
                my ($status, $type, $message, $content);

                if (defined $xml->{testClass}->{testcase}->{error}) {
                  $status  = 'ERROR';
                  $type    = $xml->{testClass}->{testcase}->{error}->{type};
                  $message = $xml->{testClass}->{testcase}->{error}->{message};
                  $content = $xml->{testClass}->{testcase}->{error}->{content};
                } elsif (defined $xml->{testClass}->{testcase}->{failure}) {
                  $status  = 'FAILURE';
                  $type    = $xml->{testClass}->{testcase}->{failure}->{type};
                  $message = $xml->{testClass}->{testcase}->{failure}->{message};
                } else {
                  $status  = 'OK';
                  $type    = $message = '';
                }

                $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD>$xml->{testClass}->{testcase}->{name}</TD><TD>$status</TD><TD>$type</TD><TD>$xml->{testClass}->{testcase}->{time}</TD...

                if ($status ne 'OK') {
                  $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$message</PRE></TD></TR>\n";
                  $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$content</PRE></TD></TR>\n" if (defined $content);
                }
              } else {
                foreach my $testcase_name (keys %{$xml->{testClass}->{testcase}}) {
                  my ($status, $type, $message, $content);

                  if (defined $xml->{testClass}->{testcase}->{$testcase_name}->{error}) {
                    $status  = 'ERROR';
                    $type    = $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{type};
                    $message = $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{message};
                    $content = $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{content};
                  } elsif (defined $xml->{testClass}->{testcase}->{$testcase_name}->{failure}) {
                    $status  = 'FAILURE';
                    $type    = $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{type};
                    $message = $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{message};
                  } else {
                    $status  = 'OK';
                    $type    = $message = '';
                  }

                  $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD>$testcase_name</TD><TD>$status</TD><TD>$type</TD><TD>$xml->{testClass}->{testcase}->{$testcase_name}->{time}</TD></...

                  if ($status ne 'OK') {
                    $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$message</PRE></TD></TR>\n";
                    $httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$content</PRE></TD></TR>\n" if (defined $content);
                  }
                }
              }

              $httpdumpMessage .= "</TABLE>\n";
            }

            $alertError .= (defined $testresultSuffix) ? $testresultSuffix : $xml->{name};
            $alertError .= '+';
          }
        } else {
          print "$EXCEPTION\n" if ($debug == 2);
        }

        print "$INPUT_XML\n" if ($debug == 2);
      } elsif ($STATUS eq 'LAUNCH_FAILED') {
        $objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => $EXCEPTION }, $TYPE{APPEND} );
      } elsif ($STATUS eq 'XML_WRONG_FORMAT') {
        $objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => 'Under construction: '. $STATUS }, $TYPE{APPEND} );
      } else {
        $objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => "Undefined error: '$STATUS'" }, $TYPE{APPEND} );
      }

      my $sqlMOVE = 'REPLACE INTO `' .$jUnitServerTablDRA. '` SELECT * FROM `' .$jUnitServerTablDR. '` WHERE RESULT_ID = "' .$RESULT_ID. '"';
      $dbh->do( $sqlMOVE ) or $rv = errorTrapDBI (\$objectPlugins, "Cannot dbh->do: $sqlMOVE");

      if ( $rv ) {
        $sqlMOVE = 'DELETE FROM `' .$jUnitServerTablDR. '` WHERE RESULT_ID = "' .$RESULT_ID. '"';
        $dbh->do( $sqlMOVE ) or $rv = errorTrapDBI (\$objectPlugins, "Cannot dbh->do: $sqlMOVE");
      }
    }

    $httpdumpMessage .= "</BODY>\n</HTML>" if (defined $httpdumpMessage);

    $objectPlugins->appendPerformanceData ( 'tests='. $performanceDataTests .';;;;' );
    $objectPlugins->appendPerformanceData ( 'failures='. $performanceDataFailures .';1;;0;'. $performanceDataTests );
    $objectPlugins->appendPerformanceData ( 'errors='. $performanceDataErrors .';;1;0;'. $performanceDataTests );
    $objectPlugins->appendPerformanceData ( 'time='. $performanceDataTime .'s;;;;' );

    if ( $recordCount ) {
      if ( $numberRecordsSameUkey != $recordCount ) {
        $objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => "Only $recordCount from the wanted $numberRecordsSameUkey results into the table $jUnitServerTablDR from database $jUnitServerDbDR" }, $TYPE{APPEND} );
      }

      if ($alertError eq '+') {
        $objectPlugins->pluginValues ( { alert => 'All test succeed' }, $TYPE{APPEND} );
      } else {
        $objectPlugins->pluginValues ( { alert => $alertError }, $TYPE{APPEND} );
      }

      if (defined $httpdumpMessage) {
        print "$httpdumpMessage\n" if ($debug == 4);
        $objectPlugins->write_debugfile ( \$httpdumpMessage, 0 );
      }
    } else {
      $objectPlugins->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, alert => "No results into the table $jUnitServerTablDR from database $jUnitServerDbDR" }, $TYPE{APPEND} );
    }

    $sth->finish() or $rv = errorTrapDBI (\$objectPlugins, "sth->finish: $sql");
  }



( run in 1.590 second using v1.01-cache-2.11-cpan-d8267643d1d )