From 890ef1b035457fe5d0b0faf27a703c74c33e0141 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sat, 4 Nov 2023 12:57:53 +0300 Subject: gh-108303: Move `zip` and `tar` archives to `Lib/test/archivetestdata` (#111549) --- Lib/test/archivetestdata/README.md | 36 +++++++++++++++++++++ Lib/test/archivetestdata/exe_with_z64 | Bin 0 -> 978 bytes Lib/test/archivetestdata/exe_with_zip | Bin 0 -> 990 bytes Lib/test/archivetestdata/header.sh | 24 ++++++++++++++ Lib/test/archivetestdata/recursion.tar | Bin 0 -> 516 bytes .../archivetestdata/testdata_module_inside_zip.py | 2 ++ Lib/test/archivetestdata/testtar.tar | Bin 0 -> 435200 bytes Lib/test/archivetestdata/testtar.tar.xz | Bin 0 -> 172 bytes Lib/test/archivetestdata/zip_cp437_header.zip | Bin 0 -> 270 bytes Lib/test/archivetestdata/zipdir.zip | Bin 0 -> 374 bytes Lib/test/recursion.tar | Bin 516 -> 0 bytes Lib/test/test_contextlib.py | 2 +- Lib/test/test_tarfile.py | 12 +++---- Lib/test/test_zipfile/test_core.py | 14 ++++---- Lib/test/testtar.tar | Bin 435200 -> 0 bytes Lib/test/testtar.tar.xz | Bin 172 -> 0 bytes Lib/test/zip_cp437_header.zip | Bin 270 -> 0 bytes Lib/test/zipdir.zip | Bin 374 -> 0 bytes Lib/test/ziptestdata/README.md | 35 -------------------- Lib/test/ziptestdata/exe_with_z64 | Bin 978 -> 0 bytes Lib/test/ziptestdata/exe_with_zip | Bin 990 -> 0 bytes Lib/test/ziptestdata/header.sh | 24 -------------- Lib/test/ziptestdata/testdata_module_inside_zip.py | 2 -- Makefile.pre.in | 4 +-- 24 files changed, 78 insertions(+), 77 deletions(-) create mode 100644 Lib/test/archivetestdata/README.md create mode 100755 Lib/test/archivetestdata/exe_with_z64 create mode 100755 Lib/test/archivetestdata/exe_with_zip create mode 100755 Lib/test/archivetestdata/header.sh create mode 100644 Lib/test/archivetestdata/recursion.tar create mode 100644 Lib/test/archivetestdata/testdata_module_inside_zip.py create mode 100644 Lib/test/archivetestdata/testtar.tar create mode 100644 Lib/test/archivetestdata/testtar.tar.xz create mode 100644 Lib/test/archivetestdata/zip_cp437_header.zip create mode 100644 Lib/test/archivetestdata/zipdir.zip delete mode 100644 Lib/test/recursion.tar delete mode 100644 Lib/test/testtar.tar delete mode 100644 Lib/test/testtar.tar.xz delete mode 100644 Lib/test/zip_cp437_header.zip delete mode 100644 Lib/test/zipdir.zip delete mode 100644 Lib/test/ziptestdata/README.md delete mode 100755 Lib/test/ziptestdata/exe_with_z64 delete mode 100755 Lib/test/ziptestdata/exe_with_zip delete mode 100755 Lib/test/ziptestdata/header.sh delete mode 100644 Lib/test/ziptestdata/testdata_module_inside_zip.py diff --git a/Lib/test/archivetestdata/README.md b/Lib/test/archivetestdata/README.md new file mode 100644 index 0000000..7b555fa --- /dev/null +++ b/Lib/test/archivetestdata/README.md @@ -0,0 +1,36 @@ +# 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 zip64.zip +cat header.sh zip64.zip >exe_with_z64 +rm zip64.zip +``` diff --git a/Lib/test/archivetestdata/exe_with_z64 b/Lib/test/archivetestdata/exe_with_z64 new file mode 100755 index 0000000..82b03cf Binary files /dev/null and b/Lib/test/archivetestdata/exe_with_z64 differ diff --git a/Lib/test/archivetestdata/exe_with_zip b/Lib/test/archivetestdata/exe_with_zip new file mode 100755 index 0000000..c833cdf Binary files /dev/null and b/Lib/test/archivetestdata/exe_with_zip differ diff --git a/Lib/test/archivetestdata/header.sh b/Lib/test/archivetestdata/header.sh new file mode 100755 index 0000000..52dc91a --- /dev/null +++ b/Lib/test/archivetestdata/header.sh @@ -0,0 +1,24 @@ +#!/bin/bash +INTERPRETER_UNDER_TEST="$1" +if [[ ! -x "${INTERPRETER_UNDER_TEST}" ]]; then + echo "Interpreter must be the command line argument." + exit 4 +fi +EXECUTABLE="$0" exec "${INTERPRETER_UNDER_TEST}" -E - <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 zip64.zip -cat header.sh zip64.zip >exe_with_z64 -rm zip64.zip -``` - diff --git a/Lib/test/ziptestdata/exe_with_z64 b/Lib/test/ziptestdata/exe_with_z64 deleted file mode 100755 index 82b03cf..0000000 Binary files a/Lib/test/ziptestdata/exe_with_z64 and /dev/null differ diff --git a/Lib/test/ziptestdata/exe_with_zip b/Lib/test/ziptestdata/exe_with_zip deleted file mode 100755 index c833cdf..0000000 Binary files a/Lib/test/ziptestdata/exe_with_zip and /dev/null differ diff --git a/Lib/test/ziptestdata/header.sh b/Lib/test/ziptestdata/header.sh deleted file mode 100755 index 52dc91a..0000000 --- a/Lib/test/ziptestdata/header.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -INTERPRETER_UNDER_TEST="$1" -if [[ ! -x "${INTERPRETER_UNDER_TEST}" ]]; then - echo "Interpreter must be the command line argument." - exit 4 -fi -EXECUTABLE="$0" exec "${INTERPRETER_UNDER_TEST}" -E - <