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);
}
TestCGen.java 文件源码
java
阅读 16
收藏 0
点赞 0
评论 0
项目:vtable-aabajaj2
作者:
评论列表
文章目录