]> git.llucax.com Git - software/sercom-old.git/blobdiff - src/sc_test
- Nuevas constantes de logging compatibles con las de python (CRITICAL, ERROR,
[software/sercom-old.git] / src / sc_test
index 26074edb699db6d0206c1840fc00b6f8ab1aec61..24d23698e7b75aac0318c8c2e880c5404bc697ba 100755 (executable)
@@ -6,7 +6,7 @@ require_once 'T/general.php';
 define('R_ERR', 0);
 define('R_OK',  1);
 
 define('R_ERR', 0);
 define('R_OK',  1);
 
-$LOGLEVEL = L_ALL;
+$LOGLEVEL = DEBUG;
 
 $gconf = $CONF['general'];
 
 
 $gconf = $CONF['general'];
 
@@ -27,7 +27,7 @@ $intento = new T_Intento;
 // Sin cesar.
 while (1) {
     if (!($mail = $intento->proximo_a_probar())) {
 // 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;
     }
         sleep($gconf['intervalo']);
         continue;
     }
@@ -54,12 +54,12 @@ while (1) {
         enviar_respuesta_error_log($mail, 'Error al cambiar al directorio del tp', $intento);
         continue;
     }
         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');
     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;
             //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()) {
 
     // 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) {
         // 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.
             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);
             // 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) {
             $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;
                 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;
                 }
                 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.
                 }
                 $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) {
                 // TODO
                 $salidas = array();
                 foreach ($prueba->salidas as $salida) {
@@ -144,21 +144,21 @@ while (1) {
                         $salidas[$salida] = file_get_contents($salida);
                     }
                 }
                         $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.
                 $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
             }
             // 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);
             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 = '';
             // 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');
             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'];
 
 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";
     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 = <<<EOT
 From: {$mconf['from']}
     $headers = <<<EOT
 From: {$mconf['from']}
-Reply-To: {$mconf['mail_admin']}
-X-Mailer: {$mconf['mailer']}
+Reply-To: {$mconf['admin']}
+X-Mailer: $NAME $VERSION
 X-Priority: 5
 EOT;
     mail($to, $subject, $body, $headers);
 X-Priority: 5
 EOT;
     mail($to, $subject, $body, $headers);
-    mail($GLOBALS['CONF']['mail_admin'], $subject, $body, $headers);
+    //mail($mconf['admin'], $subject, $body, $headers);
     return true;
 }
 
     return true;
 }
 
@@ -292,7 +292,7 @@ function chmod_own_grp($file, $mod, $own, $grp) {
 function enviar_respuesta_error_log($to, $msg = '', $intento = null) {
     logserr($msg);
     enviar_respuesta(R_ERR, $to, "ERROR: $msg\n\nSe envió un mail al administrador para revisar el problema.\n", $intento);
 function enviar_respuesta_error_log($to, $msg = '', $intento = null) {
     logserr($msg);
     enviar_respuesta(R_ERR, $to, "ERROR: $msg\n\nSe envió un mail al administrador para revisar el problema.\n", $intento);
-    enviar_respuesta(R_ERR, $GLOBALS['CONF']['mail']['mail_admin'], $msg, $intento);
+    enviar_respuesta(R_ERR, $GLOBALS['CONF']['mail']['admin'], $msg, $intento);
 }
 
 ?>
\ No newline at end of file
 }
 
 ?>
\ No newline at end of file