コード例 #1
0
ファイル: LLVMTestSuite.java プロジェクト: eregon/sulong
  @Parameterized.Parameters
  public static List<TestCaseFiles[]> getTestFiles() throws IOException {
    File configFile = LLVMPaths.LLVM_TEST_SUITE_CONFIG;
    File testSuite = LLVMPaths.LLVM_TEST_SUITE;
    String discoveryPath = LLVMOptions.getLLVMTestDiscoveryPath();
    return getTestCasesFromConfigFile(
        configFile,
        testSuite,
        discoveryPath,
        new TestCaseGenerator() {

          public List<TestCaseFiles> getCompiledTestCaseFiles(File toBeCompiled) {
            String expectedOutputName =
                PathUtil.replaceExtension(
                    toBeCompiled.getAbsolutePath(), LLVM_REFERENCE_OUTPUT_EXTENSION);
            File expectedOutputFile = new File(expectedOutputName);
            File dest = TestHelper.getTempLLFile(toBeCompiled, "_main");
            try {
              TestCaseFiles result =
                  TestHelper.compileToLLVMIRWithClang(toBeCompiled, dest, expectedOutputFile);
              return Arrays.asList(result);
            } catch (Exception e) {
              return Collections.emptyList();
            }
          }

          public TestCaseFiles getBitCodeTestCaseFiles(File bitCodeFile) {
            String expectedOutputName =
                PathUtil.replaceExtension(
                    bitCodeFile.getAbsolutePath(), LLVM_REFERENCE_OUTPUT_EXTENSION);
            File expectedOutputFile = new File(expectedOutputName);
            TestCaseFiles testCaseFiles;
            if (expectedOutputFile.exists()) {
              testCaseFiles = TestCaseFiles.createFromBitCodeFile(bitCodeFile, expectedOutputFile);
            } else {
              testCaseFiles = TestCaseFiles.createFromBitCodeFile(bitCodeFile);
            }
            return testCaseFiles;
          }

          public ProgrammingLanguage[] getSupportedLanguages() {
            return Clang.getSupportedLanguages();
          }
        });
  }