[Python-checkins] r79346 - python/trunk/Lib/test/test_subprocess.py

florent.xicluna python-checkins at python.org
Tue Mar 23 16:05:30 CET 2010


Author: florent.xicluna
Date: Tue Mar 23 16:05:30 2010
New Revision: 79346

Log:
The standard error should be empty when the signal is killed, except on SIGINT.


Modified:
   python/trunk/Lib/test/test_subprocess.py

Modified: python/trunk/Lib/test/test_subprocess.py
==============================================================================
--- python/trunk/Lib/test/test_subprocess.py	(original)
+++ python/trunk/Lib/test/test_subprocess.py	Tue Mar 23 16:05:30 2010
@@ -669,18 +669,22 @@
     def test_send_signal(self):
         p = self._kill_process('send_signal', signal.SIGINT)
         _, stderr = p.communicate()
-        self.assertNotEqual(p.wait(), 0)
         self.assertStderrEqual(stderr,
             "Traceback (most recent call last):\n"
             "  File \"<string>\", line 1, in <module>\n"
             "KeyboardInterrupt\n")
+        self.assertNotEqual(p.wait(), 0)
 
     def test_kill(self):
         p = self._kill_process('kill')
+        _, stderr = p.communicate()
+        self.assertStderrEqual(stderr, '')
         self.assertEqual(p.wait(), -signal.SIGKILL)
 
     def test_terminate(self):
         p = self._kill_process('terminate')
+        _, stderr = p.communicate()
+        self.assertStderrEqual(stderr, '')
         self.assertEqual(p.wait(), -signal.SIGTERM)
 
 
@@ -756,7 +760,7 @@
     def _kill_process(self, method, *args):
         # Some win32 buildbot raises EOFError if stdin is inherited
         p = subprocess.Popen([sys.executable, "-c", "input()"],
-                             stdin=subprocess.PIPE)
+                             stdin=subprocess.PIPE, stderr=subprocess.PIPE)
 
         # Let the process initialize (Issue #3137)
         time.sleep(0.1)
@@ -774,6 +778,8 @@
         if count > 1:
             print >>sys.stderr, ("p.{}{} succeeded after "
                                  "{} attempts".format(method, args, count))
+        _, stderr = p.communicate()
+        self.assertStderrEqual(stderr, '')
         self.assertEqual(p.wait(), returncode)
         self.assertNotEqual(returncode, 0)
 


More information about the Python-checkins mailing list