diff -r 7937aa6b7e92 Lib/test/test_cmd_line_script.py --- a/Lib/test/test_cmd_line_script.py Tue Jul 03 13:18:30 2012 +0200 +++ b/Lib/test/test_cmd_line_script.py Tue Jul 03 10:06:43 2012 -0400 @@ -287,6 +287,20 @@ self._check_output(script_name, rc, out, script_name, script_name, '', '') + def test_dash_m_error_code_is_one(self): + # If a module is invoked with the -m command line flag + # and results in an error that the return code to the + # shell is '1' + with temp_dir() as script_dir: + with support.temp_cwd(path=script_dir): + pkg_dir = os.path.join(script_dir, 'test_pkg') + make_pkg(pkg_dir) + script_name = _make_test_script(pkg_dir, 'other', "if __name__ == '__main__': raise ValueError") + rc, out, err = assert_python_failure('-m', 'test_pkg.other', *example_args) + if verbose > 1: + print(out) + self.assertEqual(rc, 1) + def test_pep_409_verbiage(self): # Make sure PEP 409 syntax properly suppresses # the context of an exception diff -r 7937aa6b7e92 Modules/main.c --- a/Modules/main.c Tue Jul 03 13:18:30 2012 +0200 +++ b/Modules/main.c Tue Jul 03 10:06:43 2012 -0400 @@ -660,7 +660,7 @@ sts = run_command(command, &cf); free(command); } else if (module) { - sts = RunModule(module, 1); + sts = (RunModule(module, 1) != 0); } else {