gecko-dev/ef/Quality/TestScript/executeJCKWrapper.java

133 lines
2.7 KiB
Java

/* -*- Mode: C; tab-width: 4, indent-tabs-mode: nil; -*- */
/*
* @(#)executeJCKWrapper
*
* Copyright Notice
* This file contains proprietary information of Netscape Communications.
* Copying or reproduction without prior written approval is prohibited.
*
* Copyright (c) 1997
*
*/
/* Package Name */
/* Imports */
import java.io.PrintStream;
import java.lang.reflect.Method;
/**
* executeJCKWrapper runs a given simple JCK test.
*
* @param args Command line arguements.
*
* @author Patrick Dionisio <11-04-97 1:00pm>
*/
public class executeJCKWrapper {
/**
* The method that runs the test.
*
* @param args The command line arguments.
* log Stream to report messages to.
*
* @author Patrick Dionisio <11-04-97 1:00pm>
*/
public void test(String[] args, PrintStream log) {
String className = null;
String[] executeArgs = { };
int i = 0;
/* Get the executeClass. */
if (i < args.length) {
className = args[i];
i++;
}
/* Get any optional args. */
if (i < args.length) {
executeArgs = new String[args.length - i];
System.arraycopy(args, i, executeArgs, 0, executeArgs.length);
}
System.out.println(className);
try {
Class c;
c = Class.forName(className);
Class[] runParamTypes = {executeArgs.getClass(), log.getClass()};
Method runMethod = c.getMethod("run", runParamTypes);
/* Invoke the test class. */
Object[] runArgs = {executeArgs,log};
Object result = runMethod.invoke(null, runArgs);
/* Print the result. */
switch (((Integer)result).intValue()) {
case 0:
System.out.println("STATUS:Passed.");
break;
case 1:
System.out.println("STATUS:Check me.");
break;
case 2:
System.out.println("STATUS:Failed.");
break;
default:
System.out.println("STATUS:Check me");
}
}
catch(VerifyError error) {
/* Assume that the verifier is enabled, catch any verify errors. */
System.out.println("STATUS:Passed.");
}
catch(Exception e) {
/* Print out any exceptions. */
System.out.println("STATUS:Failed.");
System.out.println("Exception caught.");
e.printStackTrace();
}
}
/**
* Main method. Checks is args is valid before running the test.
*
* @param args The command line arguments.
*
* @author Patrick Dionisio <11-04-97 1:00pm>
*/
public static void main(String[] args) {
/* Check if the number of args is valid. */
if (args.length >= 1) {
executeJCKWrapper run = new executeJCKWrapper();
run.test(args, System.out);
} else {
System.out.println("usage: java executeJCKWrapper classname arguments");
}
}
}