01: /*
02:
03: Derby - Class org.apache.derbyTesting.functionTests.harness.RunClass
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to You under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derbyTesting.functionTests.harness;
23:
24: import java.lang.reflect.Method;
25:
26: // the purpose of this class is to run Java-based test cases in a separate thread
27: public class RunClass implements Runnable {
28:
29: /**
30: param args the arguments to pass into ij
31: */
32: public RunClass(Method methodToCall, Object args[]) {
33: mainMethod = methodToCall;
34: arguments = args;
35: }
36:
37: Object arguments[];
38: Method mainMethod;
39:
40: public void run() {
41: synchronized (this ) {
42: try {
43: // we're invoking the test class's main method - which is always static
44: // thus we can pass null, an underlying object argument would be
45: // ignored anyway.
46: mainMethod.invoke(null, arguments);
47: } catch (IllegalAccessException iae) {
48: iae.printStackTrace();
49: System.out.println("RunClass: " + iae
50: + " make sure the test class is public.");
51: System.exit(1);
52: } catch (Exception e) {
53: System.out.println("RunClass --> " + e);
54: e.printStackTrace();
55: }
56: }
57: }
58: }
|