Add support for tests on the server side
Signed-off-by: Martin J. Bligh <mbligh@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@807 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/utils.py b/server/utils.py
index a307323..10c7985 100644
--- a/server/utils.py
+++ b/server/utils.py
@@ -320,3 +320,28 @@
keyval.write('%s=%s\n' % (key, str(value)))
keyval.close()
+
+def update_version(srcdir, preserve_srcdir, new_version, install, *args, **dargs):
+ """
+ Make sure srcdir is version new_version
+
+ If not, delete it and install() the new version.
+
+ In the preserve_srcdir case, we just check it's up to date,
+ and if not, we rerun install, without removing srcdir
+ """
+ versionfile = srcdir + '/.version'
+ install_needed = True
+
+ if os.path.exists(srcdir):
+ if os.path.exists(versionfile):
+ old_version = pickle.load(open(versionfile, 'r'))
+ if (old_version == new_version):
+ install_needed = False
+
+ if install_needed:
+ if not preserve_srcdir:
+ system('rm -rf ' + srcdir)
+ install(*args, **dargs)
+ if os.path.exists(srcdir):
+ pickle.dump(new_version, open(versionfile, 'w'))