protected Object createRootDescription(String[] args, String configName)
     throws InstantiationException, IllegalAccessException, ClassNotFoundException {
   myTestRunner =
       (IdeaTestRunner) JUnitStarter.getAgentClass((String) myNewArgs.get(0)).newInstance();
   myTestRunner.setStreams(myOut, myErr, 0);
   return myTestRunner.getTestToStart(args, configName);
 }
 protected List createChildArgs(Object child) {
   List newArgs = new ArrayList();
   final OutputObjectRegistry registry = myTestRunner.getRegistry();
   newArgs.add(String.valueOf(registry != null ? registry.getKnownObject(child) : -1));
   newArgs.add(myTestRunner.getStartDescription(child));
   newArgs.addAll(myNewArgs);
   return newArgs;
 }
 protected List createPerModuleArgs(
     String packageName, String workingDir, List classNames, Object rootDescription)
     throws IOException {
   File tempFile = File.createTempFile("idea_junit", ".tmp");
   tempFile.deleteOnExit();
   JUnitStarter.printClassesList(
       classNames, packageName + ", working directory: \'" + workingDir + "\'", "", tempFile);
   final OutputObjectRegistry registry = myTestRunner.getRegistry();
   final String startIndex;
   if (registry != null) {
     startIndex =
         String.valueOf(
             registry.getKnownObject(
                 findByClassName((String) classNames.get(0), rootDescription)));
   } else {
     startIndex = "-1";
   }
   final List childArgs = new ArrayList();
   childArgs.add(startIndex);
   childArgs.add("@" + tempFile.getAbsolutePath());
   childArgs.addAll(myNewArgs);
   return childArgs;
 }
 protected String getTestClassName(Object child) {
   return myTestRunner.getTestClassName(child);
 }
 protected void sendTime(long time) {
   if (!JUnitStarter.SM_RUNNER) {
     new TimeSender(myTestRunner.getRegistry()).printHeader(System.currentTimeMillis() - time);
   }
 }
 protected List getChildren(Object child) {
   return myTestRunner.getChildTests(child);
 }