From a9346f4c61af6b7724bd0b0003c18395f7424de8 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 16 Aug 2024 17:57:02 +0200 Subject: [PATCH] gnulib-tool.py: Don't treat 'valgrind-tests' as a tests module. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reported by Marc Nieper-Wißkirchen in . * pygnulib/GLModuleSystem.py (_isTestsModuleName): New function. (GLModuleSystem.list, GLModule.isNonTests, GLModule.getApplicability, GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional, GLModule.getLicense): Use it. --- ChangeLog | 10 ++++++++++ pygnulib/GLModuleSystem.py | 16 ++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6e70abecd5..a460d38e40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2024-08-16 Bruno Haible + + gnulib-tool.py: Don't treat 'valgrind-tests' as a tests module. + Reported by Marc Nieper-Wißkirchen in + . + * pygnulib/GLModuleSystem.py (_isTestsModuleName): New function. + (GLModuleSystem.list, GLModule.isNonTests, GLModule.getApplicability, + GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional, + GLModule.getLicense): Use it. + 2024-08-14 Bruno Haible tests: Fix link errors (regression 2024-08-12). diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py index 0eb875a499..bdaf7ff664 100644 --- a/pygnulib/GLModuleSystem.py +++ b/pygnulib/GLModuleSystem.py @@ -54,6 +54,10 @@ def _extract_lib_SOURCES(snippet: str) -> list[str]: for line in lines for file_name in line.split() ] +def _isTestsModuleName(name: str) -> bool: + '''Determine whether a module is a tests module, given its name.''' + return name.endswith('-tests') and name != 'valgrind-tests' + #=============================================================================== # Define GLModuleSystem class @@ -161,7 +165,7 @@ class GLModuleSystem: # Filter out undesired file names. listing = [ line for line in listing - if self.file_is_module(line) and not line.endswith('-tests') ] + if self.file_is_module(line) and not _isTestsModuleName(line) ] modules = sorted(set(listing)) return modules @@ -306,7 +310,7 @@ class GLModule: def isNonTests(self) -> bool: '''Check whether module is not a *-tests module.''' - result = not self.name.endswith('-tests') + result = not _isTestsModuleName(self.name) return result def getTestsName(self) -> str: @@ -452,7 +456,7 @@ class GLModule: result = result.strip() if not result: # The default is 'main' or 'tests', depending on the module's name. - if self.name.endswith('-tests'): + if _isTestsModuleName(self.name): result = 'tests' else: result = 'main' @@ -482,7 +486,7 @@ class GLModule: if 'dependencies' not in self.cache: result = '' # ${module}-tests implicitly depends on ${module}, if that module exists. - if self.name.endswith('-tests'): + if _isTestsModuleName(self.name): main_module = subend('-tests', '', self.name) if self.modulesystem.exists(main_module): result += '%s\n' % main_module @@ -573,7 +577,7 @@ class GLModule: auxdir = self.config['auxdir'] result = '' if 'makefile-unconditional' not in self.cache: - if self.name.endswith('-tests'): + if _isTestsModuleName(self.name): # *-tests module live in tests/, not lib/. # Synthesize an EXTRA_DIST augmentation. files = self.getFiles() @@ -650,7 +654,7 @@ class GLModule: if 'license' not in self.cache: license = self.getLicense_Raw().strip() # Warn if the License field is missing. - if not self.name.endswith('-tests'): + if not _isTestsModuleName(self.name): if not license: if self.config['errors']: raise GLError(18, self.name) -- 2.39.5