X-Git-Url: https://git.llucax.com/software/sercom-old.git/blobdiff_plain/2629d689134a52c5d3210e371758931b99692a84..5174fa9bd71e4f671d9788707e106296638a3c63:/src/sc_test?ds=sidebyside diff --git a/src/sc_test b/src/sc_test index 26074ed..24d2369 100755 --- a/src/sc_test +++ b/src/sc_test @@ -6,7 +6,7 @@ require_once 'T/general.php'; define('R_ERR', 0); define('R_OK', 1); -$LOGLEVEL = L_ALL; +$LOGLEVEL = DEBUG; $gconf = $CONF['general']; @@ -27,7 +27,7 @@ $intento = new T_Intento; // Sin cesar. while (1) { if (!($mail = $intento->proximo_a_probar())) { - logs('No hay intento para probar', L_DBG); + logs('No hay intento para probar', DEBUG); sleep($gconf['intervalo']); continue; } @@ -54,12 +54,12 @@ while (1) { enviar_respuesta_error_log($mail, 'Error al cambiar al directorio del tp', $intento); continue; } - logs("Cambio de directorio '$currdir' -> '$intento_dir'", L_DBG); - logs('Ejecutando el comando: make -f '.escapeshellarg($makefile), L_DBG); + logs("Cambio de directorio '$currdir' -> '$intento_dir'", DEBUG); + logs('Ejecutando el comando: make -f '.escapeshellarg($makefile), DEBUG); if (exec_get_info('make -f '.escapeshellarg($makefile), $ret, $err, $out)) { if ($ret) { logs('Error al compilar'); - logs("Código de retorno: $ret, mensaje: $err)", L_DBG); + logs("Código de retorno: $ret, mensaje: $err)", DEBUG); //XXX $intento->informar_compilacion(false); enviar_respuesta(R_ERR, $mail, "ERROR AL COMPILAR!\n\n$err\n\nCódigo de retorno: $ret\n", $intento); continue; @@ -101,7 +101,7 @@ while (1) { // comienza la ejecución de casos de prueba while ($prueba = $intento->pedir_caso_de_prueba()) { - logs('Prueba: ' . $prueba->to_line(), L_DBG); + logs('Prueba: ' . $prueba->to_line(), DEBUG); // ejecuta con fork $pid = pcntl_fork(); if ($pid == -1) { @@ -111,29 +111,29 @@ while (1) { continue 2; } elseif ($pid) { // Estamos en el padre, controlamos el tiempo. - logs("En el padre (hijo: $pid)", L_DBG); + logs("En el padre (hijo: $pid)", DEBUG); // TODO controlar tiempo. pcntl_waitpid($pid, $exitcode); - logs("Fin de ejecución de caso de prueba (hijo: $pid, ret: $exitcode)", L_DBG); + logs("Fin de ejecución de caso de prueba (hijo: $pid, ret: $exitcode)", DEBUG); $stderr = false; // FIXME ver si salida de error es vacia. if ($exitcode or $stderr) { - logs('Comando ejecutado ERROR', L_DBG); + logs('Comando ejecutado ERROR', DEBUG); if ($ret) { $msg = "El programa salió con código de error $ret"; $msgs[] = $msg; - logs($msg, L_DBG); + logs($msg, DEBUG); } if ($stderr) { $msg = "El programa imprimió mensajes en la salida de error: '$stderr'"; $msgs[] = $msg; - logs($msg, L_DBG); + logs($msg, DEBUG); } $msg = join("\n", $msgs); $intento->resultado_de_prueba($prueba, false, $msg); enviar_respuesta(R_ERR, $mail, $msg, $intento); exit(0); // salgo ok del hijo } else { // Sin errores en la ejecución. - logs('Comando ejecutado OK', L_DBG); + logs('Comando ejecutado OK', DEBUG); // TODO $salidas = array(); foreach ($prueba->salidas as $salida) { @@ -144,21 +144,21 @@ while (1) { $salidas[$salida] = file_get_contents($salida); } } - logs('Salidas: ' . var_export($salidas, true), L_DBG); + logs('Salidas: ' . var_export($salidas, true), DEBUG); $intento->resultado_de_prueba($prueba, true, 'Salidas: ' . var_export($salidas, true)); enviar_respuesta(R_ERR, $mail, 'Salidas: ' . var_export($salidas, true), $intento); exit(0); // salgo ok del hijo } } else { // Estamos en el hijo, corremos en chroot. - logs('En el hijo', L_DBG); + logs('En el hijo', DEBUG); // Hago chroot. if (!@chroot('chroot')) { $intento->resultado_de_prueba($prueba, false, 'Error al hacer chroot'); enviar_respuesta_error_log($mail, 'Error al hacer chroot', $intento); exit(1); // salgo del hijo } - logs('Chrooteado, cwd = '.getcwd(), L_DBG); + logs('Chrooteado, cwd = '.getcwd(), DEBUG); if (!@posix_setuid($usrinfo['uid'])) { $intento->resultado_de_prueba($prueba, false, "Error al cambiar al uid '{$usrinfo['uid']}'"); enviar_respuesta_error_log($mail, "Error al cambiar al uid '{$usrinfo['uid']}'", $intento); @@ -167,7 +167,7 @@ while (1) { // TODO poner stdout y stderr en archivos para hacer diff o hacer diffs en memoria $stdout = null; if (in_array('stdout', $prueba->salidas)) $stdout = ''; - logs('Se ejecutará: chroot chroot /tp ' . escapeshellarg($prueba->params), L_DBG); + logs('Se ejecutará: chroot chroot /tp ' . escapeshellarg($prueba->params), DEBUG); if (!pcntl_exec('/redir', array('tp', 'stdin', 'stdout', 'stderr', '/tp', '0', $prueba->params))) { logserr('No se pudo ejecutar el comando'); $intento->resultado_de_prueba($prueba, false, 'No se pudo ejecutar el tp'); @@ -259,22 +259,22 @@ function exec_get_info($cmd, &$ret, &$err, &$out, $in = null) { function enviar_respuesta($tipo, $to, $mensaje = '', $intento = null) { $mconf = $GLOBALS['CONF']['mail']; - $subject = $mconf['prefijo'] . ' Prueba '; + $subject = '[' . $NAME . '] Prueba '; if ($tipo == R_OK) $estado = 'OK'; else $estado = 'ERROR'; $subject .= $estado; $body .= "Estado: $estado\n"; if ($mensaje) $body .= "\n$mensaje\n"; if ($intento) $body .= "\n" . $intento->__toString() . "\n"; - logs("Envío de mail '$subject' a '$to'\n$body\n", L_DBG); + logs("Envío de mail '$subject' a '$to'\n$body\n", DEBUG); $headers = << \ No newline at end of file