ENH: handle MSVS_VERSION additionally to MSVC_VERSION, but raise deprecation warnings...
[scons.git] / src / test_strings.py
index 92202315ea2f3e2f75dcfee9e603d66ce2af4abf..59d7bca1a3196876381f6b37b759bcb1832f6e8c 100644 (file)
@@ -54,18 +54,28 @@ build_local     = build_path('scons-local', 'scons-local-'+scons_version)
 build_src       = build_path('scons-src')
 
 class Checker:
-    def __init__(self, directory, search_list = [], remove_list=[]):
+    def __init__(self, directory,
+                 search_list = [],
+                 remove_list = [],
+                 remove_patterns = []):
         self.directory = directory
         self.search_list = search_list
         self.remove_dict = {}
         for r in remove_list:
             self.remove_dict[os.path.join(directory, r)] = 1
+        self.remove_patterns = remove_patterns
 
     def directory_exists(self):
         return os.path.exists(self.directory)
 
-    def remove_path(self, path):
-        return self.remove_dict.get(path)
+    def remove_this(self, name, path):
+        if self.remove_dict.get(path):
+            return 1
+        else:
+            for pattern in self.remove_patterns:
+                if fnmatch.fnmatch(name, pattern):
+                    return 1
+        return 0
 
     def search_this(self, path):
         if self.search_list:
@@ -79,7 +89,7 @@ class Checker:
     def visit(self, result, dirname, names):
         make_path_tuple = lambda n, d=dirname: (n, os.path.join(d, n))
         for name, path in map(make_path_tuple, names):
-            if self.remove_path(path):
+            if self.remove_this(name, path):
                 names.remove(name)
             elif self.search_this(path):
                 body = open(path, 'r').read()
@@ -101,6 +111,13 @@ class CheckUnexpandedStrings(Checker):
     def must_be_built(self):
         return None
 
+class CheckPassTest(Checker):
+    expressions = [
+        re.compile(r'\.pass_test()'),
+    ]
+    def must_be_built(self):
+        return None
+
 class CheckExpandedCopyright(Checker):
     expressions = [
         re.compile('Copyright.*The SCons Foundation'),
@@ -114,10 +131,14 @@ check_list = [
         'src',
         search_list = [ '*.py' ],
         remove_list = [
-            'engine/SCons/compat/_subprocess.py',
+            'engine/SCons/compat/_scons_optparse.py',
+            'engine/SCons/compat/_scons_sets.py',
+            'engine/SCons/compat/_scons_sets15.py',
+            'engine/SCons/compat/_scons_shlex.py',
+            'engine/SCons/compat/_scons_subprocess.py',
+            'engine/SCons/compat/_scons_textwrap.py',
             'engine/SCons/Conftest.py',
             'engine/SCons/dblite.py',
-            'engine/SCons/Optik',
         ],
     ),
 
@@ -126,6 +147,14 @@ check_list = [
         search_list = [ '*.py' ],
     ),
 
+    CheckPassTest(
+        'test',
+        search_list = [ '*.py' ],
+        remove_list = [
+            'Fortran/common.py',
+        ],
+    ),
+
     CheckExpandedCopyright(
         build_scons,
         remove_list = [
@@ -134,36 +163,53 @@ check_list = [
             'configure-stamp',
             'debian',
             'dist',
-            'engine/SCons/compat/_subprocess.py',
+            'gentoo',
+            'engine/SCons/compat/_scons_optparse.py',
+            'engine/SCons/compat/_scons_sets.py',
+            'engine/SCons/compat/_scons_sets15.py',
+            'engine/SCons/compat/_scons_shlex.py',
+            'engine/SCons/compat/_scons_subprocess.py',
+            'engine/SCons/compat/_scons_textwrap.py',
             'engine/SCons/Conftest.py',
             'engine/SCons/dblite.py',
-            'engine/SCons/Optik',
             'MANIFEST',
             'os_spawnv_fix.diff',
             'setup.cfg',
         ],
+        # We run epydoc on the *.py files, which generates *.pyc files.
+        remove_patterns = [
+            '*.pyc',
+        ]
     ),
 
     CheckExpandedCopyright(
         build_local,
         remove_list = [
-            'SCons/compat/_subprocess.py',
+            'SCons/compat/_scons_optparse.py',
+            'SCons/compat/_scons_sets.py',
+            'SCons/compat/_scons_sets15.py',
+            'SCons/compat/_scons_shlex.py',
+            'SCons/compat/_scons_subprocess.py',
+            'SCons/compat/_scons_textwrap.py',
             'SCons/Conftest.py',
             'SCons/dblite.py',
-            'SCons/Optik',
+            'scons-%s.egg-info' % scons_version,
         ],
     ),
 
     CheckExpandedCopyright(
         build_src,
         remove_list = [
+            'bench/timeit.py',
             'bin',
             'config',
             'debian',
+            'gentoo',
             'doc/design',
             'doc/MANIFEST',
             'doc/python10',
             'doc/reference',
+            'doc/developer/MANIFEST',
             'doc/man/MANIFEST',
             'doc/user/cons.pl',
             'doc/user/MANIFEST',
@@ -171,6 +217,7 @@ check_list = [
             'doc/user/SCons-win32-install-2.jpg',
             'doc/user/SCons-win32-install-3.jpg',
             'doc/user/SCons-win32-install-4.jpg',
+            'examples',
             'gentoo',
             'QMTest/classes.qmc',
             'QMTest/configuration',
@@ -183,12 +230,17 @@ check_list = [
             'src/engine/MANIFEST.in',
             'src/engine/MANIFEST-xml.in',
             'src/engine/setup.cfg',
-            'src/engine/SCons/compat/_subprocess.py',
+            'src/engine/SCons/compat/_scons_optparse.py',
+            'src/engine/SCons/compat/_scons_sets.py',
+            'src/engine/SCons/compat/_scons_sets15.py',
+            'src/engine/SCons/compat/_scons_shlex.py',
+            'src/engine/SCons/compat/_scons_subprocess.py',
+            'src/engine/SCons/compat/_scons_textwrap.py',
             'src/engine/SCons/Conftest.py',
             'src/engine/SCons/dblite.py',
-            'src/engine/SCons/Optik',
             'src/script/MANIFEST.in',
             'src/script/setup.cfg',
+            'test/Fortran/.exclude_tests',
         ],
     ),
 
@@ -214,3 +266,9 @@ if not_built:
     test.no_result(1)
 
 test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4: