public static void runAndReportTest(int testNum, final PrintWriter out) throws IOException, InterruptedException{
		commands[4] = "PippinTests/"+testNum+".pip";
		System.out.println(commands[4]+"\n==============");
		out.println(commands[4]+"\n==============");
		out.println("SYNOPSIS: "+SYNOPSIS[testNum-1]);
		out.println("EXPECTED: "+ (goodTests.contains(testNum)?"NO ERROR":"ERROR"));
		
		out.println("CONTENTS:");
		Scanner file = new Scanner(new FileReader(commands[4]));
		while(file.hasNextLine())
			out.println(file.nextLine());
		file.close();
		
		out.println("BEGIN PROGRAM OUTPUT:");
		
		ProcessBuilder builder = new ProcessBuilder();
		builder.redirectErrorStream(true);
		builder.command(commands);
		final Process proc = builder.start();
		//I have a timer so I can prevent infinite loops from
		//killing this program.
		Timer deadMan = new Timer(5000, new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
				out.println("TERMINATING, POSSIBLE INFINITE LOOP");
				if(proc != null)
					proc.destroy();				
			}
		});
		deadMan.start();
		
		Scanner messages = new Scanner(proc.getInputStream());
		
		while(messages.hasNextLine()){
			String line = messages.nextLine();
			System.out.println(line);
			out.println(line);
		}
		
		proc.waitFor();
		deadMan.stop();
		out.println();
	}