Changeset 2881


Ignore:
Timestamp:
Feb 1, 2013, 8:12:34 PM (6 years ago)
Author:
ksherdy
Message:

Created explicit command objects.

Location:
proto/juncoTestHarness/src/command
Files:
1 added
2 moved

Legend:

Unmodified
Added
Removed
  • proto/juncoTestHarness/src/command/Command.java

    r2877 r2881  
    66import java.util.concurrent.TimeoutException;
    77
    8 public class CommandRunner {
     8public class Command {
     9
     10        private StringBuffer stdout;
     11        private StringBuffer stderr;
    912       
    10         public static int command(final String commandLine,
    11                                                                 final boolean printOutput,
    12                                                                 final boolean printError,
    13                                                                 final long timeout) throws IOException, InterruptedException, TimeoutException {
     13        public Command() {
     14                stdout = new StringBuffer();
     15                stderr = new StringBuffer();
     16        }
    1417       
     18        public int execute(final String commandLine, final long timeout) throws IOException, InterruptedException, TimeoutException {
     19
     20                stdout.delete(0, getStdout().length());
     21                stderr.delete(0, getStderr().length());
     22               
    1523                Runtime runtime = Runtime.getRuntime();
    1624                Process process = runtime.exec(commandLine);
    1725               
    1826                /* Set up process I/O. */
    19                 if (printOutput) {
    20                         BufferedReader outputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    21                         System.out.println("Output:  " + outputReader.readLine());
    22                 }
    23 
    24                 if (printError) {
    25                         BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    26                         System.out.println("Error:  " + errorReader.readLine());
    27                 }               
     27                BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
     28                String stdoutLine;
     29        while ((stdoutLine = stdoutReader.readLine()) != null) {
     30            stdout.append(stdoutLine);
     31        }
     32               
     33                /* Set up process I/O. */
     34                BufferedReader stderrReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
     35                String stderrLine;
     36                while ((stderrLine = stderrReader.readLine()) != null) {
     37            stderr.append(stderrLine);
     38        }
    2839               
    2940                Worker worker = new Worker(process);
     
    6273                } 
    6374        }
     75       
     76        public String getStdout() {
     77                return stdout.toString();
     78        }
     79
     80    public String getStderr() {
     81                return stderr.toString();
     82        }
    6483}
  • proto/juncoTestHarness/src/command/JuncoCompilerCommand.java

    r2877 r2881  
    55
    66
    7 public class JuncoCompilerCommandRunner {
     7public class JuncoCompilerCommand extends Command {
    88       
    9         public static final int execute(String classPath,
     9        public int execute(String classPath,
    1010                        String fQName,
    1111                        String testFilePath,
    1212                        String targetDirPath,
    13                         long timeout
    14                         ) throws IOException, InterruptedException, TimeoutException {
     13                        long timeout) throws IOException, InterruptedException, TimeoutException {
    1514
    1615                String command = String.format("java -ea -cp %s %s %s %s",
     
    2221                System.out.println(command);
    2322                                               
    24                 return CommandRunner.command(command, true, true, timeout);                     
     23                return super.execute(command, timeout);                 
    2524        }
    2625}
Note: See TracChangeset for help on using the changeset viewer.