Index: Lib/test/test_signal.py =================================================================== --- Lib/test/test_signal.py (révision 79909) +++ Lib/test/test_signal.py (copie de travail) @@ -255,29 +255,33 @@ r, w = os.pipe() ppid = os.getpid() pid = os.fork() + interrupted = False oldhandler = signal.signal(self.signum, lambda x,y: None) cb() if pid==0: - # child code: sleep, kill, sleep. and then exit, + # child code: sleep, kill, sleep, kill, sleep. and then exit, # which closes the pipe from which the parent process reads try: time.sleep(0.2) os.kill(ppid, self.signum) time.sleep(0.2) + os.kill(ppid, self.signum) + time.sleep(0.2) finally: exit_subprocess() try: os.close(w) - try: - d=os.read(r, 1) - return False - except OSError, err: - if err.errno != errno.EINTR: - raise - return True + for i in range(2): + try: + d=os.read(r, 1) + except OSError, err: + if err.errno != errno.EINTR: + raise + interrupted = True + return interrupted finally: signal.signal(self.signum, oldhandler) os.waitpid(pid, 0)