Esempio n. 1
1
  @Parameters(name = "js={0}, opt={3}, strict={4}")
  public static Collection<Object[]> test262SuiteValues() throws IOException {
    List<Object[]> result = new ArrayList<Object[]>();
    List<File> tests = getTestFiles();
    for (File jsTest : tests) {
      String jsFileStr = (String) SourceReader.readFileOrUrl(jsTest.getPath(), true, "UTF-8");
      List<String> harnessFiles = new ArrayList<String>();
      harnessFiles.add("sta.js");
      harnessFiles.add("assert.js");

      Map header =
          (Map)
              YAML.load(
                  jsFileStr.substring(
                      jsFileStr.indexOf("/*---") + 5, jsFileStr.lastIndexOf("---*/")));
      if (header.containsKey("includes")) {
        harnessFiles.addAll((Collection) header.get("includes"));
      }

      EcmaErrorType errorType = EcmaErrorType._valueOf((String) header.get("negative"));
      List<String> flags =
          header.containsKey("flags") ? (List<String>) header.get("flags") : Collections.EMPTY_LIST;
      for (int optLevel : OPT_LEVELS) {
        if (!flags.contains("onlyStrict")) {
          result.add(
              new Object[] {jsTest.getPath(), jsFileStr, harnessFiles, optLevel, false, errorType});
        }
        if (!flags.contains("noStrict")) {
          result.add(
              new Object[] {jsTest.getPath(), jsFileStr, harnessFiles, optLevel, true, errorType});
        }
      }
    }
    return result;
  }