metacity r3721 - branches/test-system/test



Author: tthurman
Date: Thu May 22 04:57:08 2008
New Revision: 3721
URL: http://svn.gnome.org/viewvc/metacity?rev=3721&view=rev

Log:
Basic version (in flux)

Added:
   branches/test-system/test/metacity-test

Added: branches/test-system/test/metacity-test
==============================================================================
--- (empty file)
+++ branches/test-system/test/metacity-test	Thu May 22 04:57:08 2008
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+#
+# metacity-test.py -- testing for Metacity
+# 
+# Copyright (C) 2008 Thomas Thurman
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+
+import sys
+import getopt
+
+#################
+#
+#  These belong in a file, one of several in a subdirectory
+#  which gets scanned, so we can easily do plugins, and so
+#  we get precompilation.
+
+build_tests = {
+    'ansi':          {'c':         ['-ansi']},
+    'gconfoff':      {'configure': ['--disable-gconf']},
+    'compositoroff': {'configure': ['--disable-compositor']},
+    'teston':        {'configure': ['--enable-testing']},
+}
+
+# XXX Fixme, but we'll check this in first:
+# We need to make all these subclasses of a build test subclass of
+# a test class.
+
+#################
+#
+#  And back in the ordinary world...
+
+def run_test(testname):
+    print 'Running test ',testname
+
+def show_help():
+    print '  --- metacity-test ---  a test system for metacity.'
+    print 'There are three kinds of test: unit, regression, or build.'
+    print 'Only build tests are currently implemented.'
+    print
+    print 'Syntax:'
+    print '  metacity-test <switches> <test names>'
+    print 'where <switches> can be:'
+    print '  -h    Show this help and exit'
+    print '  -l    List all known tests and exit'
+    print '  -r=n  Use revision n, or directory n as pristine'
+    print
+
+def show_tests():
+    print 'Build tests:'
+    for test in build_tests:
+        print '     %s' % (test)
+
+    print
+    print 'Unit tests:'
+    print '  -- Not yet implemented.'
+    print
+    print 'Regression tests:'
+    print '  -- Not yet implemented.'
+
+def main():
+    try:
+        (opts, testlist) = getopt.gnu_getopt(
+            sys.argv[1:],
+            'lhr=',
+            )
+    except getopt.GetoptError, e:
+        print 'Error:', e
+        print 'Use -h for help, or -l to list all tests.'
+        sys.exit(1)
+
+    if (len(opts)==0 and len(testlist)==0) or (('-h', '') in opts):
+        show_help()
+    elif ('-l', '') in opts:
+        show_tests()
+    elif not testlist:
+        print "Warning: You didn't specify any tests to run."
+    else:
+        # Later we need to add
+        #  - all, allbut
+        #  - .foo = all with the tag "foo"
+        #  - .build, etc., which are implicit tags
+        #  - for regression tests, selection by bug number
+        #  - very simple dependencies (you need the output of a particular build
+        #    test before you can run a given unit test on it!)
+
+        for test in testlist:
+            run_test(test)
+
+if __name__=='__main__':
+    main()



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