From b09024d75b8734889da4fc14d86eeebe835ae383 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Sun, 20 Mar 2005 00:32:41 +0000 Subject: [PATCH] Se agrega el diff a las observaciones. --- src/sc_test | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/sc_test b/src/sc_test index a8ea278..1e3010a 100755 --- a/src/sc_test +++ b/src/sc_test @@ -104,13 +104,13 @@ def limpiar(intento): def probar(intento, caso_de_prueba, mail): def diff(prueba, mail, orig, new, name, origname='alumno', newname='catedra', longname=None): from difflib import unified_diff, HtmlDiff - #TODO diferenciar pruebas públicas de privadas if longname is None: longname = name diff = ''.join(list(unified_diff(orig, new, fromfile=name+'.'+origname, tofile=name+'.'+newname))) nota = '' if diff: prueba.pasada = False - nota = "- %s no coincide con lo esperado (archivo '%s.diff').\n" % (longname, name) + nota += "* %s no coincide con lo esperado (archivo '%s.diff').\n" % (longname, name) + nota += ('-' * 72) + '\n' + diff + ('-' * 72) + '\n' if not prueba.casoDePrueba.privado: mail.attachText(diff, name + '.diff') diff = HtmlDiff().make_file(orig, new, fromdesc=name+'.'+origname, todesc=name+'.'+newname, context=True, numlines=3) @@ -187,6 +187,7 @@ def probar(intento, caso_de_prueba, mail): # Salió con una señal? if proc.returncode < 0: sig = -proc.returncode + # Conversor de nro de señal a string sigs = {} for s in [s for s in dir(signal) if s.startswith('SIG') and s.isalpha()]: sigs[getattr(signal, s)] = s @@ -229,20 +230,18 @@ def probar(intento, caso_de_prueba, mail): caso_de_prueba.nombre + '.stderr', longname='La salida de error') for f in caso_de_prueba.archivosSalida: if f not in prueba.archivosSalida: - #TODO agregar error FALTA ARCHIVO log.debug('Falta el archivo %s y no lo hizo.', f) prueba.pasada = False - obs += "- Falta el archivo de salida '%s'.\n" % f + obs += "* Falta el archivo de salida '%s'.\n" % f continue obs += diff(prueba, mail, file(os.path.join(intento.chrootPath, f)).readlines(), file(os.path.join(caso_de_prueba.pathSalidas, f)).readlines(), caso_de_prueba.nombre + '.' + f) for f in prueba.archivosSalida - (caso_de_prueba.archivosSalida | caso_de_prueba.archivosEntrada): - #TODO agregar error SOBRA ARCHIVO log.debug('El programa debía generar el archivo %s y no lo hizo.', f) prueba.pasada = False - obs += "- Se generó un archivo ('%s') que no se esperaba.\n" % f + obs += "* Se generó un archivo ('%s') que no se esperaba.\n" % f log.debug('Fin de ejecución de caso de prueba (hijo: %d, ret: %d)', proc.pid, proc.returncode) if obs: -- 2.43.0