- stdin = file(os.path.join(ejercicio_dir, 'casos_de_prueba', caso_de_prueba.nombre, 'stdin'), 'r')
- stdout = file(os.path.join(intento_dir, 'stdout'), 'w')
- stderr = file(os.path.join(intento_dir, 'stderr'), 'w')
+ options = {
+ 'cwd': chroot_dir(intento),
+ 'close_fds': True,
+ 'preexec_fn': secure_process(chroot_dir(intento), uid, gid, tiempo_cpu),
+ }
+ if os.path.exists(os.path.join(caso_de_prueba.path, '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')):
+ options['stdout'] = subprocess.PIPE
+ if os.path.exists(os.path.join(caso_de_prueba.path, 'stderr')):
+ options['stderr'] = subprocess.PIPE