This is an automated email from the git hooks/post-receive script. guillem pushed a commit to branch main in repository dpkg.
View the commit online: https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=9b2f0100fe89477bbbda060e324d0bdc83532633 commit 9b2f0100fe89477bbbda060e324d0bdc83532633 (HEAD -> main) Author: Guillem Jover <[email protected]> AuthorDate: Sun Jul 7 01:45:24 2024 +0200 test: Refactor ar handling into m4 macros We abstract the create, list and extract operations into m4 macros, so that we can easily change the underlying implementation in a single place. --- src/at/deb-format.at | 98 ++++++++++++++++++++++++++-------------------------- src/at/deb-split.at | 36 +++++++++---------- src/at/local.at | 15 ++++++++ 3 files changed, 82 insertions(+), 67 deletions(-) diff --git a/src/at/deb-format.at b/src/at/deb-format.at index c3ccca2f9..8c1ec2781 100644 --- a/src/at/deb-format.at +++ b/src/at/deb-format.at @@ -198,7 +198,7 @@ m4_define([DPKG_GEN_PKG_DEB_FORMAT_TEMPL], [ dpkg-deb --uniform-compression --root-owner-group -Znone -b pkg-templ >/dev/null # Extract the base members - ar x pkg-templ.deb + DPKG_AR_EXTRACT([pkg-templ.deb]) gzip -cn control.tar >control.tar.gz gzip -cn data.tar >data.tar.gz ]) @@ -224,9 +224,9 @@ DPKG_GEN_PKG_DEB_FORMAT_TEMPL() AT_CHECK([ # Test debian-binary with 2.x versions echo 2.999 >debian-binary -ar qSc pkg-version-2x.deb debian-binary control.tar data.tar -ar t pkg-version-2x.deb -ar x pkg-templ.deb debian-binary +DPKG_AR_GEN([pkg-version-2x.deb], [debian-binary control.tar data.tar]) +DPKG_AR_LIST([pkg-version-2x.deb]) +DPKG_AR_EXTRACT([pkg-templ.deb], [debian-binary]) dpkg-deb -I pkg-version-2x.deb ], [], [debian-binary control.tar @@ -246,9 +246,9 @@ data.tar AT_CHECK([ # Test debian-binary with extra lines echo "extra line" >>debian-binary -ar qSc pkg-magic-extra.deb debian-binary control.tar data.tar -ar t pkg-magic-extra.deb -ar x pkg-templ.deb debian-binary +DPKG_AR_GEN([pkg-magic-extra.deb], [debian-binary control.tar data.tar]) +DPKG_AR_LIST([pkg-magic-extra.deb]) +DPKG_AR_EXTRACT([pkg-templ.deb], [debian-binary]) dpkg-deb -I pkg-magic-extra.deb ], [], [debian-binary control.tar @@ -267,8 +267,8 @@ data.tar AT_CHECK([ # Test missing debian-binary member -ar qSc pkg-missing-magic.deb control.tar data.tar -ar t pkg-missing-magic.deb +DPKG_AR_GEN([pkg-missing-magic.deb], [control.tar data.tar]) +DPKG_AR_LIST([pkg-missing-magic.deb]) dpkg-deb -I pkg-missing-magic.deb ], [2], [control.tar data.tar @@ -277,8 +277,8 @@ data.tar AT_CHECK([ # Test missing control member -ar qSc pkg-missing-control.deb debian-binary data.tar -ar t pkg-missing-control.deb +DPKG_AR_GEN([pkg-missing-control.deb], [debian-binary data.tar]) +DPKG_AR_LIST([pkg-missing-control.deb]) dpkg-deb -I pkg-missing-control.deb ], [2], [debian-binary data.tar @@ -287,8 +287,8 @@ data.tar AT_CHECK([ # Test missing data member -ar qSc pkg-missing-data.deb debian-binary control.tar -ar t pkg-missing-data.deb +DPKG_AR_GEN([pkg-missing-data.deb], [debian-binary control.tar]) +DPKG_AR_LIST([pkg-missing-data.deb]) dpkg-deb -c pkg-missing-data.deb ], [2], [debian-binary control.tar @@ -297,8 +297,8 @@ control.tar AT_CHECK([ # Test duplicate debian-binary member -ar qSc pkg-duplicate-magic.deb debian-binary debian-binary control.tar data.tar -ar t pkg-duplicate-magic.deb +DPKG_AR_GEN([pkg-duplicate-magic.deb], [debian-binary debian-binary control.tar data.tar]) +DPKG_AR_LIST([pkg-duplicate-magic.deb]) dpkg-deb -I pkg-duplicate-magic.deb ], [2], [debian-binary debian-binary @@ -309,8 +309,8 @@ data.tar AT_CHECK([ # Test duplicate control member -ar qSc pkg-duplicate-control.deb debian-binary control.tar control.tar data.tar -ar t pkg-duplicate-control.deb +DPKG_AR_GEN([pkg-duplicate-control.deb], [debian-binary control.tar control.tar data.tar]) +DPKG_AR_LIST([pkg-duplicate-control.deb]) dpkg-deb -c pkg-duplicate-control.deb ], [2], [debian-binary control.tar @@ -321,8 +321,8 @@ data.tar AT_CHECK([ # Test mixed member (index 1) -ar qSc pkg-mixed-1-member.deb debian-binary unknown control.tar data.tar -ar t pkg-mixed-1-member.deb +DPKG_AR_GEN([pkg-mixed-1-member.deb], [debian-binary unknown control.tar data.tar]) +DPKG_AR_LIST([pkg-mixed-1-member.deb]) dpkg-deb -I pkg-mixed-1-member.deb ], [2], [debian-binary unknown @@ -333,8 +333,8 @@ data.tar AT_CHECK([ # Test mixed member (index 2) -ar qSc pkg-mixed-2-member.deb debian-binary control.tar unknown data.tar -ar t pkg-mixed-2-member.deb +DPKG_AR_GEN([pkg-mixed-2-member.deb], [debian-binary control.tar unknown data.tar]) +DPKG_AR_LIST([pkg-mixed-2-member.deb]) dpkg-deb -c pkg-mixed-2-member.deb ], [2], [debian-binary control.tar @@ -345,8 +345,8 @@ data.tar AT_CHECK([ # Test swapped control and data members -ar qSc pkg-swap-members.deb debian-binary data.tar control.tar -ar t pkg-swap-members.deb +DPKG_AR_GEN([pkg-swap-members.deb], [debian-binary data.tar control.tar]) +DPKG_AR_LIST([pkg-swap-members.deb]) dpkg-deb -I pkg-swap-members.deb ], [2], [debian-binary data.tar @@ -356,8 +356,8 @@ control.tar AT_CHECK([ # Test extra member -ar qSc pkg-extra-member.deb debian-binary control.tar data.tar unknown -ar t pkg-extra-member.deb +DPKG_AR_GEN([pkg-extra-member.deb], [debian-binary control.tar data.tar unknown]) +DPKG_AR_LIST([pkg-extra-member.deb]) dpkg-deb -I pkg-extra-member.deb ], [], [debian-binary control.tar @@ -378,8 +378,8 @@ unknown AT_DATA([_ignore], []) AT_CHECK([ # Test _ member -ar qSc pkg-under-member.deb debian-binary _ignore control.tar data.tar -ar t pkg-under-member.deb +DPKG_AR_GEN([pkg-under-member.deb], [debian-binary _ignore control.tar data.tar]) +DPKG_AR_LIST([pkg-under-member.deb]) dpkg-deb -I pkg-under-member.deb ], [], [debian-binary _ignore @@ -400,8 +400,8 @@ data.tar AT_CHECK([ # Test data.tar.bad member $PERL -E 'print "\0" x 4096' >data.tar.bad -ar qSc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad -ar t pkg-data-bad.deb +DPKG_AR_GEN([pkg-data-bad.deb], [debian-binary control.tar.gz data.tar.bad]) +DPKG_AR_LIST([pkg-data-bad.deb]) dpkg-deb -c pkg-data-bad.deb ], [2], [debian-binary control.tar.gz @@ -411,8 +411,8 @@ data.tar.bad AT_CHECK([ # Test control.tar member -ar qSc pkg-control-none.deb debian-binary control.tar data.tar -ar t pkg-control-none.deb +DPKG_AR_GEN([pkg-control-none.deb], [debian-binary control.tar data.tar]) +DPKG_AR_LIST([pkg-control-none.deb]) dpkg-deb -I pkg-control-none.deb ], [], [debian-binary control.tar @@ -431,8 +431,8 @@ data.tar AT_CHECK([ # Test data.tar member -ar qSc pkg-data-none.deb debian-binary control.tar.gz data.tar -ar t pkg-data-none.deb +DPKG_AR_GEN([pkg-data-none.deb], [debian-binary control.tar.gz data.tar]) +DPKG_AR_LIST([pkg-data-none.deb]) dpkg-deb -c pkg-data-none.deb ], [], [debian-binary control.tar.gz @@ -444,8 +444,8 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ AT_CHECK([ # Test data.tar.gz member -ar qSc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz -ar t pkg-data-gz.deb +DPKG_AR_GEN([pkg-data-gz.deb], [debian-binary control.tar.gz data.tar.gz]) +DPKG_AR_LIST([pkg-data-gz.deb]) dpkg-deb -c pkg-data-gz.deb ], [], [debian-binary control.tar.gz @@ -456,12 +456,12 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ ]) # Create .deb with non-uniform data.tar/control.tar member compression -ar qSc pkg-mixed-comp.deb debian-binary control.tar data.tar.gz +DPKG_AR_GEN([pkg-mixed-comp.deb], [debian-binary control.tar data.tar.gz]) DEB_MIXED_COMP_SIZE=$(DPKG_FILE_SIZE([pkg-mixed-comp.deb])) AT_CHECK_UNQUOTED([ # Test non-uniform data.tar/control.tar member compression -ar t pkg-mixed-comp.deb +DPKG_AR_LIST([pkg-mixed-comp.deb]) dpkg-deb -I pkg-mixed-comp.deb dpkg-deb -c pkg-mixed-comp.deb ], [], [debian-binary @@ -518,8 +518,8 @@ xz -c data.tar >data.tar.xz AT_CHECK([ # Test control.tar.xz member -ar qSc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz -ar t pkg-control-xz.deb +DPKG_AR_GEN([pkg-control-xz.deb], [debian-binary control.tar.xz data.tar.xz]) +DPKG_AR_LIST([pkg-control-xz.deb]) dpkg-deb -c pkg-control-xz.deb ], [], [debian-binary control.tar.xz @@ -531,8 +531,8 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ AT_CHECK([ # Test data.tar.xz member -ar qSc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz -ar t pkg-data-xz.deb +DPKG_AR_GEN([pkg-data-xz.deb], [debian-binary control.tar.gz data.tar.xz]) +DPKG_AR_LIST([pkg-data-xz.deb]) dpkg-deb -c pkg-data-xz.deb ], [], [debian-binary control.tar.gz @@ -569,8 +569,8 @@ zstd -c data.tar >data.tar.zst AT_CHECK([ # Test control.tar.zst member -ar qSc pkg-control-zst.deb debian-binary control.tar.zst data.tar.zst -ar t pkg-control-zst.deb +DPKG_AR_GEN([pkg-control-zst.deb], [debian-binary control.tar.zst data.tar.zst]) +DPKG_AR_LIST([pkg-control-zst.deb]) dpkg-deb -c pkg-control-zst.deb ], [], [debian-binary control.tar.zst @@ -582,8 +582,8 @@ drwxr-xr-x root/root 0 1970-01-01 00:00 ./ AT_CHECK([ # Test data.tar.zst member -ar qSc pkg-data-zst.deb debian-binary control.tar.gz data.tar.zst -ar t pkg-data-zst.deb +DPKG_AR_GEN([pkg-data-zst.deb], [debian-binary control.tar.gz data.tar.zst]) +DPKG_AR_LIST([pkg-data-zst.deb]) dpkg-deb -c pkg-data-zst.deb ], [], [debian-binary control.tar.gz @@ -619,8 +619,8 @@ bzip2 -c data.tar >data.tar.bz2 AT_CHECK([ # Test data.tar.bz2 member -ar qSc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2 -ar t pkg-data-bz2.deb +DPKG_AR_GEN([pkg-data-bz2.deb], [debian-binary control.tar.gz data.tar.bz2]) +DPKG_AR_LIST([pkg-data-bz2.deb]) dpkg-deb -c pkg-data-bz2.deb ], [], [debian-binary control.tar.gz @@ -647,8 +647,8 @@ lzma -c data.tar >data.tar.lzma AT_CHECK([ # Test data.tar.lzma member -ar qSc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma -ar t pkg-data-lzma.deb +DPKG_AR_GEN([pkg-data-lzma.deb], [debian-binary control.tar.gz data.tar.lzma]) +DPKG_AR_LIST([pkg-data-lzma.deb]) dpkg-deb -c pkg-data-lzma.deb ], [], [debian-binary control.tar.gz diff --git a/src/at/deb-split.at b/src/at/deb-split.at index d12a6081d..5165bff10 100644 --- a/src/at/deb-split.at +++ b/src/at/deb-split.at @@ -26,7 +26,7 @@ dpkg-split -S 210 -s pkg-split.deb pkg-split-part for p in DPKG_SEQ([10]); do test -f pkg-split-part.${p}of10.deb done -ar x pkg-split-part.1of10.deb data.1 +DPKG_AR_EXTRACT([pkg-split-part.1of10.deb], [data.1]) ], [], [Splitting package pkg-split into 10 parts: 1 2 3 4 5 6 7 8 9 10 done ]) @@ -41,10 +41,10 @@ DEB_SPLIT_PART_SIZE_VERSION=$((DEB_SPLIT_PART_SIZE + 2)) AT_CHECK_UNQUOTED([ # Test debian-split with 2.x version -ar x pkg-split-part.1of10.deb debian-split +DPKG_AR_EXTRACT([pkg-split-part.1of10.deb], [debian-split]) $PERL -p -i -E 's/.*/2.999/ if $. == 1' debian-split -ar qSc pkg-split-part-version-2x.deb debian-split data.1 -ar t pkg-split-part-version-2x.deb +DPKG_AR_GEN([pkg-split-part-version-2x.deb], [debian-split data.1]) +DPKG_AR_LIST([pkg-split-part-version-2x.deb]) dpkg-split -I pkg-split-part-version-2x.deb ], [], [debian-split data.1 @@ -67,10 +67,10 @@ DEB_SPLIT_PART_SIZE_MAGIC_EXTRA=$((DEB_SPLIT_PART_SIZE + 10)) AT_CHECK_UNQUOTED([ # Test debian-split with extra lines -ar x pkg-split-part.1of10.deb debian-split +DPKG_AR_EXTRACT([pkg-split-part.1of10.deb], [debian-split]) echo "extra line" >>debian-split -ar qSc pkg-split-part-magic-extra.deb debian-split data.1 -ar t pkg-split-part-magic-extra.deb +DPKG_AR_GEN([pkg-split-part-magic-extra.deb], [debian-split data.1]) +DPKG_AR_LIST([pkg-split-part-magic-extra.deb]) dpkg-split -I pkg-split-part-magic-extra.deb ], [], [debian-split data.1 @@ -91,9 +91,9 @@ pkg-split-part-magic-extra.deb: AT_CHECK([ # Test missing debian-split -ar x pkg-split-part.1of10.deb -ar qSc pkg-split-part-missing-magic.deb data.1 -ar t pkg-split-part-missing-magic.deb +DPKG_AR_EXTRACT([pkg-split-part.1of10.deb]) +DPKG_AR_GEN([pkg-split-part-missing-magic.deb], [data.1]) +DPKG_AR_LIST([pkg-split-part-missing-magic.deb]) dpkg-split -I pkg-split-part-missing-magic.deb ], [], [data.1 file 'pkg-split-part-missing-magic.deb' is not an archive part @@ -101,9 +101,9 @@ file 'pkg-split-part-missing-magic.deb' is not an archive part AT_CHECK([ # Test missing data part member -ar x pkg-split-part.1of10.deb -ar qSc pkg-split-part-missing-data.deb debian-split -ar t pkg-split-part-missing-data.deb +DPKG_AR_EXTRACT([pkg-split-part.1of10.deb]) +DPKG_AR_GEN([pkg-split-part-missing-data.deb], [debian-split]) +DPKG_AR_LIST([pkg-split-part-missing-data.deb]) dpkg-split -I pkg-split-part-missing-data.deb ], [2], [debian-split ], [dpkg-split: error: unexpected end of file in reading data part member ar header in pkg-split-part-missing-data.deb @@ -111,9 +111,9 @@ dpkg-split -I pkg-split-part-missing-data.deb AT_CHECK([ # Test duplicate debian-split member -ar x pkg-split-part.1of10.deb debian-split data.1 -ar qSc pkg-split-part-duplicate-magic.deb debian-split debian-split data.1 -ar t pkg-split-part-duplicate-magic.deb +DPKG_AR_EXTRACT([pkg-split-part.1of10.deb], [debian-split data.1]) +DPKG_AR_GEN([pkg-split-part-duplicate-magic.deb], [debian-split debian-split data.1]) +DPKG_AR_LIST([pkg-split-part-duplicate-magic.deb]) dpkg-split -I pkg-split-part-duplicate-magic.deb ], [2], [debian-split debian-split @@ -124,8 +124,8 @@ data.1 AT_CHECK_UNQUOTED([ # Test unknown extra member echo "some content" >unknown -ar qSc pkg-split-part-extra-member.deb debian-split data.1 unknown -ar t pkg-split-part-extra-member.deb +DPKG_AR_GEN([pkg-split-part-extra-member.deb], [debian-split data.1 unknown]) +DPKG_AR_LIST([pkg-split-part-extra-member.deb]) dpkg-split -I pkg-split-part-extra-member.deb ], [], [debian-split data.1 diff --git a/src/at/local.at b/src/at/local.at index 26ba70c5b..78e5bc9ca 100644 --- a/src/at/local.at +++ b/src/at/local.at @@ -52,6 +52,21 @@ m4_define([DPKG_FILE_SIZE], [ $PERL -E 'say -s shift' "$1" dnl ]) +# DPKG_AR_GEN() +m4_define([DPKG_AR_GEN], [ + ar qSc $1 $2 +]) + +# DPKG_AR_LIST() +m4_define([DPKG_AR_LIST], [ + ar t $1 +]) + +# DPKG_AR_EXTRACT() +m4_define([DPKG_AR_EXTRACT], [ + ar x $1 $2 +]) + # DPKG_CHECK_DIFF($file_out, $file_exp) m4_define([DPKG_CHECK_DIFF], [ cp "$2" expout -- Dpkg.Org's dpkg

