function run_tests($filename, $test_cases) { $code2test = read_src_file($filename . '_4test.pas'); $count_pass = 0; $result = array(count($test_cases)); foreach ($test_cases as $key => $value) { $result[$key] = test_result($key, $filename, $code2test); if ($result[$key] == $value) { $count_pass++; } } remove($filename); //Xoa tep chuong trinh remove($filename . '.o'); //Xoa tep lien ket bien dich echo show_testing_result($test_cases, $result); if ($count_pass == count($test_cases)) { return true; } return false; }
<?php include 'libs/filelib.php'; include 'libs/functions.php'; include 'libs/marksutil.php'; $filename = $_GET['filename']; $exerid = $_GET['exerid']; $code = read_src_file($filename . '.pas'); session_start(); $username = $_SESSION["username"]; if (strlen($filename) > 0 && strlen($code) > 0 && strlen($code) < 1000) { $output = ''; if ($exerid < 3) { $output = shell_exec('temp/' . $filename); echo $output; echo '<br />----------<br />'; $output = trim($output); } if ($exerid != 0) { if (result($exerid, $filename, $code, $output)) { set_marks($username, $exerid); echo '<p class="success"> Chính xác, chúc mừng bạn !!!</p>'; if (check_valid_exercise($exerid + 1)) { echo '<input type="button" id="next" class="btn btn3" value="Bài tiếp theo" onclick="nextExercise(' . ($exerid + 1) . ')"/>'; } } else { echo '<p class="error"> Bạn hãy kiểm tra lại chương trình!!!</p>'; } } } else { echo 'ERROR!!!';
function get_passed_code($exerid, $username) { $file_name = $username . '_exer_' . $exerid . '.pas'; if (exist($file_name) === FALSE) { return ''; } $code = read_src_file($file_name); $passcode = ''; if ($exerid > 2) { $pos1 = stripos($code, '(*---*)'); $pos2 = strrpos($code, '(*---*)'); $passcode = substr($code, 0, $pos2); $passcode = substr($passcode, $pos1 + 8); } else { $passcode = $code; } return $passcode; }