self.assertEqual(out, b'')
self.assertEqual(err, b'')
+ # test that the exit machinery handles long exit codes
+ rc, out, err = assert_python_failure('-c', 'raise SystemExit(47L)')
+ self.assertEqual(rc, 47)
+ self.assertEqual(out, b'')
+ self.assertEqual(err, b'')
+
+ rc, out, err = assert_python_ok('-c', 'raise SystemExit(0L)')
+ self.assertEqual(rc, 0)
+ self.assertEqual(out, b'')
+ self.assertEqual(err, b'')
+
def check_exit_message(code, expected, **env_vars):
rc, out, err = assert_python_failure('-c', code, **env_vars)
self.assertEqual(rc, 1)
Core and Builtins
-----------------
+- Issue #14376: Allow sys.exit to accept longs as well as ints. Patch
+ by Gareth Rees.
+
- Issue #29028: Fixed possible use-after-free bugs in the subscription of the
buffer object with custom index object.
/* If we failed to dig out the 'code' attribute,
just let the else clause below print the error. */
}
- if (PyInt_Check(value))
+ if (PyInt_Check(value) || PyLong_Check(value))
exitcode = (int)PyInt_AsLong(value);
else {
PyObject *sys_stderr = PySys_GetObject("stderr");