TestCGen.java 文件源码

java
阅读 16 收藏 0 点赞 0 评论 0

项目:vtable-aabajaj2 作者:
public void checkCExec(String filename) throws Exception {
    URL testFolderURL = TestCGen.class.getClassLoader().getResource(SAMPLES_DIR);
    String testFolder = testFolderURL.getPath();
    String workingDir = getWorkingDir();

    String J_pathToFile = testFolder+"/"+filename;
    String C_filename = basename(filename)+".c";

    JTran jTran = new JTran();
    String C_code = jTran.translate(J_pathToFile, C_filename, false, false);

    Utils.writeFile(workingDir+"/"+C_filename, C_code);

    // compile
    String[] cc = {"cc", "-o", basename(filename), C_filename};
    Triple<Integer, String, String> cc_result = exec(cc, getWorkingDir());
    int execCode = cc_result.a;
    String stdout = cc_result.b;
    String stderr = cc_result.c;

    assertEquals("", stdout);
    assertEquals("", stderr);
    assertEquals(0, execCode);

    // execute
    String[] exec_cmd = {"./"+basename(filename)};
    Triple<Integer, String, String> result = exec(exec_cmd, getWorkingDir());
    execCode = result.a;
    stdout = result.b;
    stderr = result.c;

    String expected_output_filename = basename(filename)+".txt";
    String expected_output = readFile(testFolder+"/"+expected_output_filename);

    assertEquals(expected_output, stdout);
    assertEquals("", stderr);
    assertEquals(0, execCode);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号