bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnulib creates tests/ directory


From: Bruno Haible
Subject: Re: gnulib creates tests/ directory
Date: Fri, 16 Aug 2024 18:03:11 +0200

Hi Marc,

Please keep the mailing list in CC.

> > Does it still do so if you remove the 'valgrind-tests' modules from the
> > list?
> >
> 
> It does not.

OK, then the problem is that gnulib-tool does not know that 'valgrind-tests'
is special. Fixed like this.

We could have noticed the problem before, by looking at the gnulib-tool
results in liboath/ and libpskc/ of oath-toolkit.


2024-08-16  Bruno Haible  <bruno@clisp.org>

        gnulib-tool.py: Don't treat 'valgrind-tests' as a tests module.
        Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> in
        <https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00093.html>.
        * pygnulib/GLModuleSystem.py (_isTestsModuleName): New function.
        (GLModuleSystem.list, GLModule.isNonTests, GLModule.getApplicability,
        GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional,
        GLModule.getLicense): Use it.

diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py
index 09afcf6883..1f758fb0e5 100644
--- a/pygnulib/GLModuleSystem.py
+++ b/pygnulib/GLModuleSystem.py
@@ -55,6 +55,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
@@ -162,7 +166,7 @@ def list(self) -> list[str]:
         # 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
 
@@ -307,7 +311,7 @@ def isTests(self) -> bool:
 
     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:
@@ -426,7 +430,7 @@ def getApplicability(self) -> str:
             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'
@@ -467,7 +471,7 @@ def getDependencies(self) -> str:
         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
@@ -657,7 +661,7 @@ def getAutomakeSnippet_Unconditional(self) -> str:
         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()
@@ -734,7 +738,7 @@ def getLicense(self) -> str:
         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)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]