2013-10-30 09:50:01 +00:00
|
|
|
"""Checks if all *.pyc and *.pyo files have later mtime than their *.py files."""
|
|
|
|
|
|
|
|
import imp
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
|
|
|
|
# list of test and other files that we expect not to have bytecode
|
|
|
|
not_compiled = [
|
|
|
|
'test/bad_coding.py',
|
|
|
|
'test/bad_coding2.py',
|
|
|
|
'test/badsyntax_3131.py',
|
|
|
|
'test/badsyntax_future3.py',
|
|
|
|
'test/badsyntax_future4.py',
|
|
|
|
'test/badsyntax_future5.py',
|
|
|
|
'test/badsyntax_future6.py',
|
|
|
|
'test/badsyntax_future7.py',
|
|
|
|
'test/badsyntax_future8.py',
|
|
|
|
'test/badsyntax_future9.py',
|
Update to Python 3.4 alpha 4.
- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
from py_compile)
- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
Koji), 142 (the mock issue that caused this is fixed)
- Added patch 187 (remove thread atfork) - will be in next version
- Refreshed script for checking pyc and pyo timestamps with new ignored files.
- The fips patch is disabled for now until upstream makes a final decision
what to do with sha3 implementation for 3.4.0.
2013-11-05 11:39:14 +00:00
|
|
|
'test/badsyntax_future10.py',
|
2015-09-16 06:36:17 +00:00
|
|
|
'test/badsyntax_async1.py',
|
|
|
|
'test/badsyntax_async2.py',
|
|
|
|
'test/badsyntax_async3.py',
|
|
|
|
'test/badsyntax_async4.py',
|
|
|
|
'test/badsyntax_async5.py',
|
|
|
|
'test/badsyntax_async6.py',
|
|
|
|
'test/badsyntax_async7.py',
|
|
|
|
'test/badsyntax_async8.py',
|
|
|
|
'test/badsyntax_async9.py',
|
2013-10-30 09:50:01 +00:00
|
|
|
'test/badsyntax_pep3120.py',
|
|
|
|
'lib2to3/tests/data/bom.py',
|
|
|
|
'lib2to3/tests/data/crlf.py',
|
|
|
|
'lib2to3/tests/data/different_encoding.py',
|
Update to Python 3.4 alpha 4.
- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
from py_compile)
- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
Koji), 142 (the mock issue that caused this is fixed)
- Added patch 187 (remove thread atfork) - will be in next version
- Refreshed script for checking pyc and pyo timestamps with new ignored files.
- The fips patch is disabled for now until upstream makes a final decision
what to do with sha3 implementation for 3.4.0.
2013-11-05 11:39:14 +00:00
|
|
|
'lib2to3/tests/data/false_encoding.py',
|
2013-10-30 09:50:01 +00:00
|
|
|
'lib2to3/tests/data/py2_test_grammar.py',
|
|
|
|
'.debug-gdb.py',
|
|
|
|
]
|
|
|
|
failed = 0
|
|
|
|
|
|
|
|
def bytecode_expected(source):
|
|
|
|
for f in not_compiled:
|
|
|
|
if source.endswith(f):
|
|
|
|
return False
|
|
|
|
return True
|
|
|
|
|
|
|
|
compiled = filter(lambda f: bytecode_expected(f), sys.argv[1:])
|
|
|
|
for f in compiled:
|
|
|
|
# check both pyo and pyc
|
|
|
|
to_check = map(lambda b: imp.cache_from_source(f, b), (True, False))
|
|
|
|
f_mtime = os.path.getmtime(f)
|
|
|
|
for c in to_check:
|
|
|
|
c_mtime = os.path.getmtime(c)
|
|
|
|
if c_mtime < f_mtime:
|
|
|
|
sys.stderr.write('Failed bytecompilation timestamps check: ')
|
|
|
|
sys.stderr.write('Bytecode file {} is older than source file {}.\n'.format(c, f))
|
|
|
|
failed += 1
|
|
|
|
|
|
|
|
if failed:
|
|
|
|
sys.stderr.write('\n{} files failed bytecompilation timestamps check.\n'.format(failed))
|
|
|
|
sys.exit(1)
|