]> granicus.if.org Git - python/commitdiff
Merge 3.2.
authorStefan Krah <skrah@bytereef.org>
Mon, 20 Aug 2012 09:13:58 +0000 (11:13 +0200)
committerStefan Krah <skrah@bytereef.org>
Mon, 20 Aug 2012 09:13:58 +0000 (11:13 +0200)
1  2 
Lib/test/test_capi.py
Objects/abstract.c

index 2692b89d77712fb7001d724a8ed31f81d46aff58,0307394eb42f18d6709238bd2a2939701aaa096a..d7d1ce742c4aef303adbc8ba332b8e6c307afcf7
@@@ -55,29 -59,15 +59,38 @@@ class CAPITest(unittest.TestCase)
      def test_memoryview_from_NULL_pointer(self):
          self.assertRaises(ValueError, _testcapi.make_memoryview_from_NULL_pointer)
  
 +    def test_exc_info(self):
 +        raised_exception = ValueError("5")
 +        new_exc = TypeError("TEST")
 +        try:
 +            raise raised_exception
 +        except ValueError as e:
 +            tb = e.__traceback__
 +            orig_sys_exc_info = sys.exc_info()
 +            orig_exc_info = _testcapi.set_exc_info(new_exc.__class__, new_exc, None)
 +            new_sys_exc_info = sys.exc_info()
 +            new_exc_info = _testcapi.set_exc_info(*orig_exc_info)
 +            reset_sys_exc_info = sys.exc_info()
 +
 +            self.assertEqual(orig_exc_info[1], e)
 +
 +            self.assertSequenceEqual(orig_exc_info, (raised_exception.__class__, raised_exception, tb))
 +            self.assertSequenceEqual(orig_sys_exc_info, orig_exc_info)
 +            self.assertSequenceEqual(reset_sys_exc_info, orig_exc_info)
 +            self.assertSequenceEqual(new_exc_info, (new_exc.__class__, new_exc, None))
 +            self.assertSequenceEqual(new_sys_exc_info, new_exc_info)
 +        else:
 +            self.assertTrue(False)
 +
+     @unittest.skipUnless(_posixsubprocess, '_posixsubprocess required for this test.')
+     def test_seq_bytes_to_charp_array(self):
+         # Issue #15732: crash in _PySequence_BytesToCharpArray()
+         class Z(object):
+             def __len__(self):
+                 return 1
+         self.assertRaises(TypeError, _posixsubprocess.fork_exec,
+                           1,Z(),3,[1, 2],5,6,7,8,9,10,11,12,13,14,15,16,17)
  @unittest.skipUnless(threading, 'Threading required for this test.')
  class TestPendingCalls(unittest.TestCase):
  
Simple merge