mirror of https://github.com/python/cpython
Merge.
This commit is contained in:
commit
e68a3ce01c
|
@ -228,7 +228,8 @@ def main():
|
|||
success = False
|
||||
return success
|
||||
else:
|
||||
return compile_path(legacy=args.legacy)
|
||||
return compile_path(legacy=args.legacy, force=args.force,
|
||||
quiet=args.quiet)
|
||||
except KeyboardInterrupt:
|
||||
print("\n[interrupted]")
|
||||
return False
|
||||
|
|
|
@ -177,6 +177,29 @@ class CommandLineTests(unittest.TestCase):
|
|||
self.assertNotCompiled(self.initfn)
|
||||
self.assertNotCompiled(self.barfn)
|
||||
|
||||
def test_no_args_respects_force_flag(self):
|
||||
bazfn = script_helper.make_script(self.directory, 'baz', '')
|
||||
self.assertRunOK(PYTHONPATH=self.directory)
|
||||
pycpath = imp.cache_from_source(bazfn)
|
||||
# Set atime/mtime backward to avoid file timestamp resolution issues
|
||||
os.utime(pycpath, (time.time()-60,)*2)
|
||||
mtime = os.stat(pycpath).st_mtime
|
||||
# Without force, no recompilation
|
||||
self.assertRunOK(PYTHONPATH=self.directory)
|
||||
mtime2 = os.stat(pycpath).st_mtime
|
||||
self.assertEqual(mtime, mtime2)
|
||||
# Now force it.
|
||||
self.assertRunOK('-f', PYTHONPATH=self.directory)
|
||||
mtime2 = os.stat(pycpath).st_mtime
|
||||
self.assertNotEqual(mtime, mtime2)
|
||||
|
||||
def test_no_args_respects_quiet_flag(self):
|
||||
script_helper.make_script(self.directory, 'baz', '')
|
||||
noisy = self.assertRunOK(PYTHONPATH=self.directory)
|
||||
self.assertIn(b'Listing ', noisy)
|
||||
quiet = self.assertRunOK('-q', PYTHONPATH=self.directory)
|
||||
self.assertNotIn(b'Listing ', quiet)
|
||||
|
||||
# Ensure that the default behavior of compileall's CLI is to create
|
||||
# PEP 3147 pyc/pyo files.
|
||||
for name, ext, switch in [
|
||||
|
|
|
@ -29,6 +29,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #19532: python -m compileall with no filename/directory arguments now
|
||||
respects the -f and -q flags instead of ignoring them.
|
||||
|
||||
- Issue #19623: Fixed writing to unseekable files in the aifc module.
|
||||
|
||||
- Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.
|
||||
|
|
|
@ -4421,21 +4421,22 @@ mpd_qfma(mpd_t *result, const mpd_t *a, const mpd_t *b, const mpd_t *c,
|
|||
const mpd_context_t *ctx, uint32_t *status)
|
||||
{
|
||||
uint32_t workstatus = 0;
|
||||
const mpd_t *cc = c;
|
||||
mpd_t *cc = NULL;
|
||||
|
||||
if (result == c) {
|
||||
if ((cc = mpd_qncopy(c)) == NULL) {
|
||||
mpd_seterror(result, MPD_Malloc_error, status);
|
||||
return;
|
||||
}
|
||||
c = cc;
|
||||
}
|
||||
|
||||
_mpd_qmul(result, a, b, ctx, &workstatus);
|
||||
if (!(workstatus&MPD_Invalid_operation)) {
|
||||
mpd_qadd(result, result, cc, ctx, &workstatus);
|
||||
mpd_qadd(result, result, c, ctx, &workstatus);
|
||||
}
|
||||
|
||||
if (cc != c) mpd_del((mpd_t *)cc);
|
||||
if (cc) mpd_del(cc);
|
||||
*status |= workstatus;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue