Commit Graph

267 Commits

Author SHA1 Message Date
Michael Hansen
0dc49b5872 Add support for expected test failures 2019-10-07 11:36:09 -07:00
Michael Hansen
8014ac2b14 Print unicode as default in Python 2.x when CO_FUTURE_UNICODE_LITERALS
is set.

Fixes #141.
2019-10-06 14:34:24 -07:00
Michael Hansen
892616b560 Add tests for unicode/bytes string literals 2019-10-06 13:50:53 -07:00
Michael Hansen
b5696c8398 Port Python 2.7 list comprehension fixes by @ReDucTor from #78 2019-10-04 16:35:58 -07:00
Michael Hansen
314f4a1a0d Fix several cases of name shadowing, and greatly simplify some
unnecessary stack operations with tuple appending.
2019-10-04 16:16:10 -07:00
Michael Hansen
5c896fa743 Clean up some loops with range-based for. 2019-10-04 15:56:24 -07:00
Michael Hansen
727da48ba5 Display the diff when a test doesn't match the expected output. 2019-10-04 14:57:59 -07:00
Michael Hansen
646213ef4f Add a test for unpack assignment 2019-10-04 14:33:38 -07:00
Michael Hansen
2e93d29233 Don't write parens around for loop value tuples 2019-10-04 14:08:47 -07:00
Michael Hansen
fc1cb06926 Add Github Actions CI build 2019-10-04 11:32:27 -07:00
Michael Hansen
154b80b2fe Migrate several more passing tests to new test framework 2019-10-04 11:05:52 -07:00
Michael Hansen
7cd576280e Move equivalent reference sources to the input directory 2019-10-03 22:08:44 -07:00
Michael Hansen
7a7b4623b6 Migrate a couple more passing tests, and handle end-of-line comments
in token_dump.
2019-10-03 20:56:52 -07:00
Michael Hansen
1cf1977a40 Move test_class.pyc to the new test framwork, and fix tokenization
of multi-line strings.
2019-10-03 17:12:52 -07:00
Michael Hansen
697aa5d2c3 Simplify the output of decompyle_test.sh, and actually fail the
check target when a test fails.
2019-10-03 16:05:30 -07:00
Michael Hansen
0c0a0231a9 Fix dict literals in Python 3.5+ to make the new test case pass. 2019-10-03 15:48:44 -07:00
Michael Hansen
31d907118a Add a new unit test framework that actually checks the output of
decompiled sources against an expected result.
2019-10-03 15:33:52 -07:00
Michael Hansen
18f94c4094 Use pymultic for executing the rt_test 2019-10-02 21:18:35 -07:00
Michael Hansen
619f584bd2 Simplify CMakeLists slightly, and correctly handle AppleClang 2019-10-02 16:27:27 -07:00
Michael Hansen
f88869fb17 Use std::string instead of manual character buffers where applicable. 2019-10-02 16:01:54 -07:00
Michael Hansen
8d3752b4f0 Start requring C++11 with explicit virtual overrides. 2019-10-02 14:41:49 -07:00
Michael Hansen
f02a339072 Move fetch and build of Python versions into pymultic, and remove
acquire_pythons script.

pymultic now accepts an arbitrary list of python versions, instead
of requiring all of a specific class to be included.
2019-10-02 14:41:49 -07:00
Michael Hansen
f77f287b1d Backport Python 2.7.15 fix for GCC 8 optimizations to other Pythons
it applies to.
2019-09-30 16:29:04 -07:00
Michael Hansen
104c3c0b42 Update magic for 3.7.0 release 2018-07-02 13:13:58 -07:00
Michael Hansen
1c01ca7ee6 Better name for this script, since it doesn't do anything in parallel. 2018-04-28 12:22:14 -07:00
Michael Hansen
56e442605a Remove unnecessary complexity and just use the base sequence type common
to both 1.0 and later versions in PyCodeObject.
2018-04-28 11:37:13 -07:00
Michael Hansen
1b01af45fd Add some scripts for fetching/building many Python versions and compiling
python sources to bytecode in each of them.
2018-04-27 16:28:23 -07:00
Michael Hansen
7f63529d49 Fix PycCode incompatibility with Python 1.0 2018-04-26 15:13:52 -07:00
Michael Hansen
0c3955883f Fix bytecode compatibility with Python 3.7 beta3 2018-04-26 14:38:02 -07:00
Michael Hansen
bf60a5831b Fix several undefined behavior issues identified by @nrathaus.
Fixes #147.
2018-01-28 15:37:44 -08:00
Michael Hansen
a9a362254e Use fputs instead of fprintf when no formatting is required 2018-01-28 15:37:44 -08:00
Michael Hansen
98ad031109 Add initial 3.7 alpha support, and fix 3.6 opcode map 2017-12-20 13:49:28 -08:00
Michael Hansen
b9dd99d518 Don't create special objects for NULL, just use NULL directly.
Also move null check into PycRef for nullable references.
2017-07-05 16:36:04 -07:00
Michael Hansen
1329626215 Add missing break 2017-07-05 16:10:59 -07:00
Michael Hansen
96122d23b8 Minor typing/aliasing cleanup 2017-07-05 16:10:09 -07:00
Michael Hansen
7c328f0ee8 Merge pull request #113 from kholia/add-3.5.2-magic
Add MAGIC_NUMBER for Python 3.5.2
2017-04-11 08:42:31 -07:00
Dhiru Kholia
da6571587b Add MAGIC_NUMBER for Python 3.5.3
See https://bugs.python.org/issue27286 for details.
2017-04-11 09:55:40 +05:30
Michael Hansen
a690d22822 Update Python 3.6 magic from RC build 2016-12-14 14:39:22 -08:00
Michael Hansen
6a9d6a6132 Update bytecode for Python 3.6 beta3, and use a common file for opcode names 2016-11-08 16:00:56 -08:00
Michael Hansen
ed2c21cd66 Handle NOP instruction in decompyle (fixes #96) 2016-10-24 09:44:06 -07:00
Michael Hansen
dfdb00d2dc Add python 2.5 reference sources 2016-09-08 09:59:10 -07:00
Michael Hansen
5ee15c890c Fix display of cell vars 2016-09-07 18:22:49 -07:00
Michael Hansen
35e74d0e6e Show jump target on FOR_ITER instructions 2016-09-07 18:22:22 -07:00
Michael Hansen
05a32e7bf5 Add more reference source for Python 2.2 tests, and fix some inconsistent names 2016-09-07 18:21:51 -07:00
Michael Hansen
7efcf04bcd Display KW only arg count in pycdas output 2016-09-03 11:05:03 -07:00
Michael Hansen
5a4c332a0e Add some reference hand-decompyled source for better examining pycdc output 2016-09-02 21:19:15 -07:00
Michael Hansen
5c60db15f2 Use .src.py extension instead of .src for pycdc test output 2016-08-31 16:13:18 -07:00
Michael Hansen
a02478cc56 Fix formatting of char literals \x00-\x0F. 2016-08-31 08:28:46 -07:00
Michael Hansen
def5d90a9d Add more advanced round-trip test target that runs decompiled output back
through the originating Python compiler (Linux only for now)
2016-08-30 20:18:29 -07:00
Michael Hansen
4b55e0bcea Fix '...' missing in output 2016-08-30 13:32:53 -07:00