From cc5428488542429f0ffb6e4698bed2c02a4b1ea8 Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Mon, 26 Apr 2021 11:13:13 -0500 Subject: Fix issue where multiple dist files were not being produced for comma separated formats value --- mesonbuild/mdist.py | 5 +++-- run_unittests.py | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/mesonbuild/mdist.py b/mesonbuild/mdist.py index 36bad71..22c5b44 100644 --- a/mesonbuild/mdist.py +++ b/mesonbuild/mdist.py @@ -29,6 +29,7 @@ from mesonbuild import mlog, build from .scripts.meson_exe import run_exe archive_choices = ['gztar', 'xztar', 'zip'] + archive_extension = {'gztar': '.tar.gz', 'xztar': '.tar.xz', 'zip': '.zip'} @@ -36,8 +37,8 @@ archive_extension = {'gztar': '.tar.gz', def add_arguments(parser): parser.add_argument('-C', default='.', dest='wd', help='directory to cd into before running') - parser.add_argument('--formats', default='xztar', choices=archive_choices, - help='Comma separated list of archive types to create.') + parser.add_argument('--formats', default='xztar', + help='Comma separated list of archive types to create. Supports xztar (default), gztar, and zip.') parser.add_argument('--include-subprojects', action='store_true', help='Include source code of subprojects that have been used for the build.') parser.add_argument('--no-tests', action='store_true', diff --git a/run_unittests.py b/run_unittests.py index a0eb670..3faa20c 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -3230,6 +3230,8 @@ class AllPlatformTests(BasePlatformTests): ''')) xz_distfile = os.path.join(self.distdir, 'disttest-1.4.3.tar.xz') xz_checksumfile = xz_distfile + '.sha256sum' + gz_distfile = os.path.join(self.distdir, 'disttest-1.4.3.tar.gz') + gz_checksumfile = gz_distfile + '.sha256sum' zip_distfile = os.path.join(self.distdir, 'disttest-1.4.3.zip') zip_checksumfile = zip_distfile + '.sha256sum' vcs_init(project_dir) @@ -3243,12 +3245,32 @@ class AllPlatformTests(BasePlatformTests): self.build('dist') self.assertPathExists(xz_distfile) self.assertPathExists(xz_checksumfile) + self.assertPathDoesNotExist(gz_distfile) + self.assertPathDoesNotExist(gz_checksumfile) self.assertPathDoesNotExist(zip_distfile) self.assertPathDoesNotExist(zip_checksumfile) + self._run(self.meson_command + ['dist', '--formats', 'gztar'], + workdir=self.builddir) + self.assertPathExists(gz_distfile) + self.assertPathExists(gz_checksumfile) self._run(self.meson_command + ['dist', '--formats', 'zip'], workdir=self.builddir) self.assertPathExists(zip_distfile) self.assertPathExists(zip_checksumfile) + os.remove(xz_distfile) + os.remove(xz_checksumfile) + os.remove(gz_distfile) + os.remove(gz_checksumfile) + os.remove(zip_distfile) + os.remove(zip_checksumfile) + self._run(self.meson_command + ['dist', '--formats', 'xztar,gztar,zip'], + workdir=self.builddir) + self.assertPathExists(xz_distfile) + self.assertPathExists(xz_checksumfile) + self.assertPathExists(gz_distfile) + self.assertPathExists(gz_checksumfile) + self.assertPathExists(zip_distfile) + self.assertPathExists(zip_checksumfile) if include_subprojects: # Verify that without --include-subprojects we have files from -- cgit v1.1