Пример #1
0
  public synchronized void runSuite() {
    SikuliIDE ide = SikuliIDE.getInstance();
    if (fRunner != null) {
      fTestResult.stop();
      showIDE(true);
    } else {
      try {
        showIDE(false);
        reset();

        // get the current file's python code, write it to a temp file, and run it
        File tmpFile = null;
        String className = null;
        SikuliCodePane codePane = ide.getCurrentCodePane();
        try {
          className = new File(ide.getCurrentFilename()).getName();
          className = className.substring(0, className.lastIndexOf('.')); // remove extension
          tmpFile = File.createTempFile(className, ".py");
          tmpFile.deleteOnExit();
          BufferedWriter bw =
              new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tmpFile), "UTF8"));
          codePane.writePython(bw);
          bw.close();
        } catch (IOException e) {
          e.printStackTrace();
          showIDE(true);
        }
        String filename = tmpFile.getAbsolutePath();

        String path = ide.getCurrentBundlePath();
        Test suite = genTestSuite(className, filename, path);
        doRun(suite);
      } catch (IOException e) {
        e.printStackTrace();
        showIDE(true);
      }
    }
  }
Пример #2
0
 /** Create a new temporary file in _tempDir. */
 protected File tempFile(String fileName) throws IOException {
   File f = File.createTempFile(fileName, ".java", _tempDir).getCanonicalFile();
   f.deleteOnExit();
   return f;
 }
Пример #3
0
  /** Unpacks a resource to a temp. file */
  public static File unpackInstaller(String resourceName) {
    // Array to hold all results (this code is slightly more
    // generally that it needs to be)
    File[] results = new File[1];
    URL[] urls = new URL[1];

    // Determine size of download
    ClassLoader cl = Main.class.getClassLoader();
    urls[0] = cl.getResource(Config.getInstallerResource());
    if (urls[0] == null) {
      Config.trace("Could not find resource: " + Config.getInstallerResource());
      return null;
    }

    int totalSize = 0;
    int totalRead = 0;
    for (int i = 0; i < urls.length; i++) {
      if (urls[i] != null) {
        try {
          URLConnection connection = urls[i].openConnection();
          totalSize += connection.getContentLength();
        } catch (IOException ioe) {
          Config.trace("Got exception: " + ioe);
          return null;
        }
      }
    }

    // Unpack each file
    for (int i = 0; i < urls.length; i++) {
      if (urls[i] != null) {
        // Create temp. file to store unpacked file in
        InputStream in = null;
        OutputStream out = null;
        try {
          // Use extension from URL (important for dll files)
          String extension = new File(urls[i].getFile()).getName();
          int lastdotidx = (extension != null) ? extension.lastIndexOf('.') : -1;
          if (lastdotidx == -1) {
            extension = ".dat";
          } else {
            extension = extension.substring(lastdotidx);
          }

          // Create output stream
          results[i] = File.createTempFile("jre", extension);
          results[i].deleteOnExit();
          out = new FileOutputStream(results[i]);

          // Create inputstream
          URLConnection connection = urls[i].openConnection();
          in = connection.getInputStream();

          int read = 0;
          byte[] buf = new byte[BUFFER_SIZE];
          while ((read = in.read(buf)) != -1) {
            out.write(buf, 0, read);
            // Notify delegate
            totalRead += read;
            if (totalRead > totalSize && totalSize != 0) totalSize = totalRead;

            // Update UI
            if (totalSize != 0) {
              int percent = (100 * totalRead) / totalSize;
              setStepText(STEP_UNPACK, Config.getWindowStepProgress(STEP_UNPACK, percent));
            }
          }
        } catch (IOException ie) {
          Config.trace("Got exception while downloading resource: " + ie);
          for (int j = 0; j < results.length; j++) {
            if (results[j] != null) results[j].delete();
          }
          return null;
        } finally {
          try {
            if (in != null) in.close();
            if (out != null) out.close();
          } catch (IOException io) {
            /* ignore */
          }
        }
      }
    }

    setStepText(STEP_UNPACK, Config.getWindowStep(STEP_UNPACK));
    return results[0];
  }