From 57079738c716605a68b78529a5edd02bdf01a0e1 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Sun, 13 Mar 2005 02:29:06 +0000 Subject: [PATCH] =?utf8?q?Bugfix.=20Hac=C3=ADa=20diff=20de=20stdout=20y=20?= =?utf8?q?stderr=20aunque=20no=20se=20usen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/sc_test | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/sc_test b/src/sc_test index 30f8cc2..ac63104 100755 --- a/src/sc_test +++ b/src/sc_test @@ -116,6 +116,13 @@ def probar(intento, caso_de_prueba, mail): diff = HtmlDiff().make_file(orig, new, fromdesc=name+'.'+origname, todesc=name+'.'+newname, context=True, numlines=3) mail.attachText(diff, name + '.diff.html', 'html') return nota + def usa_stdin(): + return os.path.exists(os.path.join(caso_de_prueba.path, 'stdin')) + def usa_stdout(): + return os.path.exists(os.path.join(caso_de_prueba.path, 'stdout')) + def usa_stderr(): + return os.path.exists(os.path.join(caso_de_prueba.path, 'stderr')) + # Cosas útiles global log, conn, conf, uid, gid # Para manejo de SIGCHLD @@ -137,11 +144,11 @@ def probar(intento, caso_de_prueba, mail): 'close_fds': True, 'preexec_fn': secure_process(intento.chrootPath, uid, gid, tiempo_cpu), } - if os.path.exists(os.path.join(caso_de_prueba.path, 'stdin')): + if usa_stdin(): options['stdin'] = file(os.path.join(caso_de_prueba.path, 'stdin'), 'r') - if os.path.exists(os.path.join(caso_de_prueba.path, 'stdout')): + if usa_stdout(): options['stdout'] = subprocess.PIPE - if os.path.exists(os.path.join(caso_de_prueba.path, 'stderr')): + if usa_stderr(): options['stderr'] = subprocess.PIPE # Ejecuto programa params = ['/tp'] @@ -211,11 +218,13 @@ def probar(intento, caso_de_prueba, mail): return prueba # Verifico salidas estándar/de error prueba.pasada = True # Asumo que está bien, ya habrá tiempo para cambiarlo - obs = diff(prueba, mail, proc.stdout.readlines(), - file(os.path.join(caso_de_prueba.path, 'stdout')).readlines(), - caso_de_prueba.nombre + '.stdout', longname='La salida estándar') - obs += diff(prueba, mail, proc.stderr.readlines(), - file(os.path.join(caso_de_prueba.path, 'stderr')).readlines(), + if usa_stdout(): + obs = diff(prueba, mail, proc.stdout.readlines(), + file(os.path.join(caso_de_prueba.path, 'stdout')).readlines(), + caso_de_prueba.nombre + '.stdout', longname='La salida estándar') + if usa_stderr(): + obs += diff(prueba, mail, proc.stderr.readlines(), + file(os.path.join(caso_de_prueba.path, 'stderr')).readlines(), caso_de_prueba.nombre + '.stderr', longname='La salida de error') for f in caso_de_prueba.archivosSalida: if f not in prueba.archivosSalida: -- 2.43.0