| # Test data for `test_zipfile`, `test_tarfile` (and even some others) |
| |
| ## `test_zipfile` |
| |
| The test executables in this directory are created manually from `header.sh` and |
| the `testdata_module_inside_zip.py` file. You must have Info-ZIP's zip utility |
| installed (`apt install zip` on Debian). |
| |
| ### Purpose of `exe_with_zip` and `exe_with_z64` |
| |
| These are used to test executable files with an appended zipfile, in a scenario |
| where the executable is _not_ a Python interpreter itself so our automatic |
| zipimport machinery (that'd look for `__main__.py`) is not being used. |
| |
| ### Updating the test executables |
| |
| If you update header.sh or the testdata_module_inside_zip.py file, rerun the |
| commands below. These are expected to be rarely changed, if ever. |
| |
| #### Standard old format (2.0) zip file |
| |
| ``` |
| zip -0 zip2.zip testdata_module_inside_zip.py |
| cat header.sh zip2.zip >exe_with_zip |
| rm zip2.zip |
| ``` |
| |
| #### Modern format (4.5) zip64 file |
| |
| Redirecting from stdin forces Info-ZIP's zip tool to create a zip64. |
| |
| ``` |
| zip -0 <testdata_module_inside_zip.py >zip64.zip |
| cat header.sh zip64.zip >exe_with_z64 |
| rm zip64.zip |
| ``` |