Mercurial > hg > release > icedtea6-1.2
view test/jtreg/com/sun/javatest/lib/APIScript.java @ 866:f42fc832db86
Add missing (ignored) lib/ files. Add test report and classes dirs to ignore.
2008-05-19 Mark Wielaard <mark@klomp.org>
* test/jtreg/com/sun/javatest/lib/*.java: Added.
* .hgignore: Add test/hotspot, test/jdk, test/langtools and
test/jtreg/classes
author | Mark Wielaard <mark@klomp.org> |
---|---|
date | Mon, 19 May 2008 10:33:03 +0200 |
parents | |
children |
line wrap: on
line source
/* * $Id$ * * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package com.sun.javatest.lib; import java.io.File; import java.io.PrintWriter; import com.sun.javatest.Script; import com.sun.javatest.Status; import com.sun.javatest.TestEnvironment; import com.sun.javatest.TestDescription; /** * A Script designed to compile/execute a test. */ public class APIScript extends Script { /// XXX this code really needs to be re-visited! /** * The method that interprets the tags provided in the test description and * performs actions accordingly. * * @param args Any arguments that the APIScript may use. Currently * there are none (value ignored). * @param td The current TestDescription. * @param env The test environment giving the details of how to run the * test. * @return The result of running the script on the given test * description. */ public Status run(String [] args, TestDescription td, TestEnvironment env) { PrintWriter trOut = getTestResult().getTestCommentWriter(); Status status = decodeArgs(args); if (status != null) return status; // XXX This isn't everything. We need to make sure that this is a // XXX reasonable subset of JCKScript. Do we want to handle all options // XXX available there? How about the keywords? // compile File [] srcs = td.getSourceFiles(); Status compileStatus; if (precompileClassDir == null) { trOut.println("Unconditionally compiling all sources"); compileStatus = compileTogether(TEST_COMPILE, srcs); } else { trOut.println("Compiling sources only if necessary"); compileStatus = compileIfNecessary(TEST_COMPILE, srcs, precompileClassDir); } if (!compileStatus.isPassed()) return compileStatus; // execute String executeClass = td.getParameter("executeClass"); String executeArgs = td.getParameter("executeArgs"); Status executeStatus = execute(TEST_EXECUTE, executeClass, executeArgs); return executeStatus; } // run() //----------private methods------------------------------------------------- private Status decodeArgs(String [] args) { // decode args for (int i = 0; i < args.length; i++) { if (args[i].equals("-precompileClassDir") && (i+1 < args.length)) precompileClassDir = args[++i]; else return Status.failed(UNRECOGNIZED_ARG + args[i]); } return null; } // init() //----------member variables------------------------------------------------ private static final String TEST_COMPILE = "testCompile"; private static final String TEST_EXECUTE = "testExecute"; // special option to use compileIfNecessary private String precompileClassDir; private static final String UNRECOGNIZED_ARG = "Unrecognized argument for script: "; }