Commit fd48d843171d212cbc7fb3c9fdd54b1356593108

Vicent Martí 2013-02-20T10:07:14

Merge pull request #1349 from libgit2/clar-no-cache Disable caching in Clar

diff --git a/tests-clar/generate.py b/tests-clar/generate.py
index 1c96f9b..c273922 100644
--- a/tests-clar/generate.py
+++ b/tests-clar/generate.py
@@ -60,10 +60,7 @@ class Module(object):
 
     def __init__(self, name):
         self.name = name
-
-        self.mtime = 0
         self.enabled = True
-        self.modified = False
 
     def clean_name(self):
         return self.name.replace("_", "::")
@@ -105,41 +102,17 @@ class Module(object):
 
         return self.callbacks != []
 
-    def refresh(self, path):
-        self.modified = False
-
+    def load(self, path):
         try:
-            st = os.stat(path)
-
-            # Not modified
-            if st.st_mtime == self.mtime:
-                return True
-
-            self.modified = True
-            self.mtime = st.st_mtime
-
             with open(path) as fp:
-                raw_content = fp.read()
-
+                return self.parse(fp.read())
         except IOError:
             return False
 
-        return self.parse(raw_content)
-
 class TestSuite(object):
-
     def __init__(self, path):
         self.path = path
 
-    def should_generate(self, path):
-        if not os.path.isfile(path):
-            return True
-
-        if any(module.modified for module in self.modules.values()):
-            return True
-
-        return False
-
     def find_modules(self):
         modules = []
         for root, _, files in os.walk(self.path):
@@ -156,33 +129,15 @@ class TestSuite(object):
 
         return modules
 
-    def load_cache(self):
-        path = os.path.join(self.path, '.clarcache')
-        cache = {}
-
-        try:
-            fp = open(path, 'rb')
-            cache = pickle.load(fp)
-            fp.close()
-        except (IOError, ValueError):
-            pass
-
-        return cache
-
-    def save_cache(self):
-        path = os.path.join(self.path, '.clarcache')
-        with open(path, 'wb') as cache:
-            pickle.dump(self.modules, cache)
-
     def load(self, force = False):
         module_data = self.find_modules()
-        self.modules = {} if force else self.load_cache()
+        self.modules = {}
 
         for path, name in module_data:
             if name not in self.modules:
                 self.modules[name] = Module(name)
 
-            if not self.modules[name].refresh(path):
+            if not self.modules[name].load(path):
                 del self.modules[name]
 
     def disable(self, excluded):
@@ -202,9 +157,6 @@ class TestSuite(object):
     def write(self):
         output = os.path.join(self.path, 'clar.suite')
 
-        if not self.should_generate(output):
-            return False
-
         with open(output, 'w') as data:
             for module in self.modules.values():
                 t = Module.DeclarationTemplate(module)
@@ -223,22 +175,19 @@ class TestSuite(object):
             data.write("static const size_t _clar_suite_count = %d;\n" % self.suite_count())
             data.write("static const size_t _clar_callback_count = %d;\n" % self.callback_count())
 
-        suite.save_cache()
-        return True
-
 if __name__ == '__main__':
     from optparse import OptionParser
 
     parser = OptionParser()
-    parser.add_option('-f', '--force', dest='force', default=False)
     parser.add_option('-x', '--exclude', dest='excluded', action='append', default=[])
 
     options, args = parser.parse_args()
 
     for path in args or ['.']:
         suite = TestSuite(path)
-        suite.load(options.force)
+        suite.load()
         suite.disable(options.excluded)
-        if suite.write():
-            print("Written `clar.suite` (%d suites)" % len(suite.modules))
+        suite.write()
+
+        print("Written `clar.suite` (%d suites)" % len(suite.modules))