I have attached the patch for the packaging system.
The documentation is available at : http://test.kernel.org/autotest/PackagingSystem

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1953 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/client/tests/aio_dio_bugs/aio_dio_bugs.py b/client/tests/aio_dio_bugs/aio_dio_bugs.py
index 5cd4c2f..9db1ffd 100644
--- a/client/tests/aio_dio_bugs/aio_dio_bugs.py
+++ b/client/tests/aio_dio_bugs/aio_dio_bugs.py
@@ -18,11 +18,13 @@
     preserve_srcdir = True
 
     def initialize(self):
+        self.job.require_gcc()
         self.job.setup_dep(['libaio'])
         ldflags = '-L ' + self.autodir + '/deps/libaio/lib'
         cflags = '-I ' + self.autodir + '/deps/libaio/include'
         self.gcc_flags = ldflags + ' ' + cflags
 
+
     def setup(self):
         os.chdir(self.srcdir)
         utils.system('make ' + '"CFLAGS=' + self.gcc_flags + '"')
diff --git a/client/tests/aiostress/aiostress.py b/client/tests/aiostress/aiostress.py
index 5adb9fb..85985ef 100755
--- a/client/tests/aiostress/aiostress.py
+++ b/client/tests/aiostress/aiostress.py
@@ -12,6 +12,7 @@
     version = 2
 
     def initialize(self):
+        self.job.require_gcc()
         self.job.setup_dep(['libaio'])
         ldflags = '-L ' + self.autodir + '/deps/libaio/lib'
         cflags = '-I ' + self.autodir + '/deps/libaio/include'
diff --git a/client/tests/bonnie/bonnie.py b/client/tests/bonnie/bonnie.py
index f9bac64..6ca12d7 100755
--- a/client/tests/bonnie/bonnie.py
+++ b/client/tests/bonnie/bonnie.py
@@ -29,6 +29,7 @@
 
     def initialize(self):
         self.results = []
+        self.job.require_gcc()
 
     # http://www.coker.com.au/bonnie++/bonnie++-1.03a.tgz
     def setup(self, tarball = 'bonnie++-1.03a.tgz'):
diff --git a/client/tests/btreplay/btreplay.py b/client/tests/btreplay/btreplay.py
index 91b7092..6e807a7 100644
--- a/client/tests/btreplay/btreplay.py
+++ b/client/tests/btreplay/btreplay.py
@@ -25,6 +25,7 @@
 
 
     def initialize(self):
+        self.job.require_gcc()
         self.ldlib = 'LD_LIBRARY_PATH=%s/deps/libaio/lib'%(self.autodir)
         self.results = []
 
diff --git a/client/tests/cyclictest/cyclictest.py b/client/tests/cyclictest/cyclictest.py
index 5c9189d..a4399d5 100755
--- a/client/tests/cyclictest/cyclictest.py
+++ b/client/tests/cyclictest/cyclictest.py
@@ -8,10 +8,14 @@
     preserve_srcdir = True
 
     # git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git
+    def initialize(self):
+        self.job.require_gcc()
+
 
     def setup(self):
         os.chdir(self.srcdir)
         utils.system('make')
 
+
     def execute(self, args = '-t 10 -l 100000'):
         utils.system(self.srcdir + '/cyclictest ' + args)
diff --git a/client/tests/dbench/dbench.py b/client/tests/dbench/dbench.py
index 83829d7..d49d2c4 100755
--- a/client/tests/dbench/dbench.py
+++ b/client/tests/dbench/dbench.py
@@ -5,6 +5,10 @@
 class dbench(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://samba.org/ftp/tridge/dbench/dbench-3.04.tar.gz
     def setup(self, tarball = 'dbench-3.04.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/dbt2/dbt2.py b/client/tests/dbt2/dbt2.py
index fef19c1..d0fd92b 100644
--- a/client/tests/dbt2/dbt2.py
+++ b/client/tests/dbt2/dbt2.py
@@ -9,6 +9,10 @@
 class dbt2(test.test):
     version = 2
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://osdn.dl.sourceforge.net/sourceforge/osdldbt/dbt2-0.39.tar.gz
     def setup(self, tarball = 'dbt2-0.39.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -40,6 +44,7 @@
         utils.system('ln -s %s %s' %
                      (self.resultsdir, self.srcdir + '.pgsql/scripts/output'))
 
+
     def execute(self, db_type, args = ''):
         logfile = self.resultsdir + '/dbt2.log'
 
@@ -50,11 +55,13 @@
         elif (db_type == "pgsql"):
             self.execute_pgsql(args)
 
+
     def execute_mysql(self, args = ''):
         args = args
         utils.system(self.srcdir + '.mysql/scripts/mysql/build_db.sh -g -w 1')
         utils.system(self.srcdir + '.mysql/scripts/run_workload.sh ' + args)
 
+
     def execute_pgpool(self, args = ''):
         utils.system('%s/deps/pgpool/pgpool/bin/pgpool -f %s/../pgpool.conf' \
                         % (self.autodir, self.srcdir))
diff --git a/client/tests/fio/fio.py b/client/tests/fio/fio.py
index 29a2d3c..ca580b4 100644
--- a/client/tests/fio/fio.py
+++ b/client/tests/fio/fio.py
@@ -6,6 +6,10 @@
 class fio(test.test):
     version = 2
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://brick.kernel.dk/snaps/fio-1.16.5.tar.bz2
     def setup(self, tarball = 'fio-1.16.5.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -21,6 +25,7 @@
         utils.system('patch -p1 < ../Makefile.patch')
         utils.system('%s %s make' % (var_ldflags, var_cflags))
 
+
     def execute(self, args = '', user = 'root'):
         os.chdir(self.srcdir)
         ##vars = 'TMPDIR=\"%s\" RESULTDIR=\"%s\"' % (self.tmpdir, self.resultsdir)
diff --git a/client/tests/fs_mark/fs_mark.py b/client/tests/fs_mark/fs_mark.py
index dfde3cf..e08ce9b 100644
--- a/client/tests/fs_mark/fs_mark.py
+++ b/client/tests/fs_mark/fs_mark.py
@@ -6,6 +6,10 @@
 class fs_mark(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://developer.osdl.org/dev/doubt/fs_mark/archive/fs_mark-3.2.tgz
     def setup(self, tarball = 'fs_mark-3.2.tgz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -14,6 +18,7 @@
 
         utils.system('make')
 
+
     def execute(self, dir, iterations = 2, args = None):
         os.chdir(self.srcdir)
         if not args:
diff --git a/client/tests/fsfuzzer/fsfuzzer.py b/client/tests/fsfuzzer/fsfuzzer.py
index 050f4fc..d58e514 100755
--- a/client/tests/fsfuzzer/fsfuzzer.py
+++ b/client/tests/fsfuzzer/fsfuzzer.py
@@ -6,6 +6,10 @@
 class fsfuzzer(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://people.redhat.com/sgrubb/files/fsfuzzer-0.6.tar.gz
     def setup(self, tarball = 'fsfuzzer-0.6.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -14,6 +18,7 @@
 
         utils.system('make')
 
+
     def execute(self, iterations = 1, fstype = 'iso9660'):
         profilers = self.job.profilers
         args = fstype + ' 1'
diff --git a/client/tests/fsstress/fsstress.py b/client/tests/fsstress/fsstress.py
index 6521842..eb92570 100644
--- a/client/tests/fsstress/fsstress.py
+++ b/client/tests/fsstress/fsstress.py
@@ -7,6 +7,10 @@
 class fsstress(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz
     def setup(self, tarball = 'ext3-tools.tar.gz'):
         self.tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/fsx/fsx.py b/client/tests/fsx/fsx.py
index 8ed98d2..307448c 100755
--- a/client/tests/fsx/fsx.py
+++ b/client/tests/fsx/fsx.py
@@ -11,6 +11,10 @@
 class fsx(test.test):
     version = 3
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz
     def setup(self, tarball = 'ext3-tools.tar.gz'):
         self.tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/interbench/interbench.py b/client/tests/interbench/interbench.py
index fa8411e..900819d 100644
--- a/client/tests/interbench/interbench.py
+++ b/client/tests/interbench/interbench.py
@@ -6,6 +6,10 @@
 class interbench(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.kernel.org/pub/linux/kernel/people/ck/apps/interbench/interbench-0.30.tar.bz2
     def setup(self, tarball = 'interbench-0.30.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -14,6 +18,7 @@
 
         utils.system('make')
 
+
     def execute(self, iterations = 1, args = ''):
         os.chdir(self.tmpdir)
         args += " -c"
diff --git a/client/tests/iosched_bugs/iosched_bugs.py b/client/tests/iosched_bugs/iosched_bugs.py
index 1fe1928..2b2b304 100755
--- a/client/tests/iosched_bugs/iosched_bugs.py
+++ b/client/tests/iosched_bugs/iosched_bugs.py
@@ -8,6 +8,9 @@
     version = 1
     preserve_srcdir = True
 
+    def initialize(self):
+        self.job.require_gcc()
+
 
     def setup(self):
         os.chdir(self.srcdir)
diff --git a/client/tests/iozone/iozone.py b/client/tests/iozone/iozone.py
index f1e7e6d..ee656e6 100644
--- a/client/tests/iozone/iozone.py
+++ b/client/tests/iozone/iozone.py
@@ -7,6 +7,10 @@
 class iozone(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.iozone.org/src/current/iozone3_283.tar
     def setup(self, tarball = 'iozone3_283.tar'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/isic/isic.py b/client/tests/isic/isic.py
index b7f6c7b..af59af7 100644
--- a/client/tests/isic/isic.py
+++ b/client/tests/isic/isic.py
@@ -10,8 +10,10 @@
     # + http://www.stardust.webpages.pl/files/crap/isic-gcc41-fix.patch
 
     def initialize(self):
+        self.job.require_gcc()
         self.job.setup_dep(['libnet'])
 
+
     def setup(self, tarball = 'isic-0.06.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
         autotest_utils.extract_tarball_to_dir(tarball, self.srcdir)
diff --git a/client/tests/kernbench/kernbench.py b/client/tests/kernbench/kernbench.py
index 490ab3b..974245c 100755
--- a/client/tests/kernbench/kernbench.py
+++ b/client/tests/kernbench/kernbench.py
@@ -6,6 +6,10 @@
 class kernbench(test.test):
     version = 2
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     def setup(self, build_dir = None):
         if not build_dir:
             build_dir = self.srcdir
diff --git a/client/tests/kvmtest/kvmtest.py b/client/tests/kvmtest/kvmtest.py
index b738e3a..666f23b 100644
--- a/client/tests/kvmtest/kvmtest.py
+++ b/client/tests/kvmtest/kvmtest.py
@@ -6,6 +6,10 @@
 class kvmtest(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     def setup(self, tarball = 'kvm-test.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
         autotest_utils.extract_tarball_to_dir(tarball, self.srcdir)
diff --git a/client/tests/libhugetlbfs/libhugetlbfs.py b/client/tests/libhugetlbfs/libhugetlbfs.py
index 2306ce2..80520e5 100644
--- a/client/tests/libhugetlbfs/libhugetlbfs.py
+++ b/client/tests/libhugetlbfs/libhugetlbfs.py
@@ -5,6 +5,9 @@
 class libhugetlbfs(test.test):
     version = 4
 
+    def initialize(self):
+        self.job.require_gcc()
+
     # http://libhugetlbfs.ozlabs.org/releases/libhugetlbfs-1.3-pre1.tar.gz
     def setup(self, tarball = 'libhugetlbfs-1.3-pre1.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -18,6 +21,7 @@
         except:
             utils.system('make OBJDIRS=obj64')
 
+
     def execute(self, dir = None, pages_requested = 20):
         autotest_utils.check_kernel_ver("2.6.16")
 
diff --git a/client/tests/lmbench/lmbench.py b/client/tests/lmbench/lmbench.py
index e31734b..72cab69 100755
--- a/client/tests/lmbench/lmbench.py
+++ b/client/tests/lmbench/lmbench.py
@@ -7,6 +7,10 @@
 class lmbench(test.test):
     version = 2
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     def setup(self, tarball = 'lmbench3.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
         # http://www.bitmover.com/lm/lmbench/lmbench3.tar.gz
diff --git a/client/tests/ltp/ltp.py b/client/tests/ltp/ltp.py
index 434c18e..28bc684 100755
--- a/client/tests/ltp/ltp.py
+++ b/client/tests/ltp/ltp.py
@@ -5,6 +5,10 @@
 class ltp(test.test):
     version = 4
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://prdownloads.sourceforge.net/ltp/ltp-full-20080229.tgz
     def setup(self, tarball = 'ltp-full-20080229.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/netperf2/netperf2.py b/client/tests/netperf2/netperf2.py
index e10cfa2..4b2d93a 100755
--- a/client/tests/netperf2/netperf2.py
+++ b/client/tests/netperf2/netperf2.py
@@ -6,6 +6,10 @@
 class netperf2(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # ftp://ftp.netperf.org/netperf/netperf-2.4.1.tar.gz
     def setup(self, tarball = 'netperf-2.4.1.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/pi_tests/pi_tests.py b/client/tests/pi_tests/pi_tests.py
index c3c79de..fef4dc8 100644
--- a/client/tests/pi_tests/pi_tests.py
+++ b/client/tests/pi_tests/pi_tests.py
@@ -6,16 +6,19 @@
 class pi_tests(test.test):
     version = 1
 
-    # http://www.stardust.webpages.pl/files/patches/autotest/pi_tests.tar.bz2
+    def initialize(self):
+        self.job.require_gcc()
 
+
+    # http://www.stardust.webpages.pl/files/patches/autotest/pi_tests.tar.bz2
     def setup(self, tarball = 'pi_tests.tar.bz2'):
         autotest_utils.check_glibc_ver('2.5')
         tarball = autotest_utils.unmap_url(self.bindir, tarball, self.tmpdir)
         autotest_utils.extract_tarball_to_dir(tarball, self.srcdir)
         os.chdir(self.srcdir)
-
         utils.system('make')
 
+
     def execute(self, args = '1 300'):
         os.chdir(self.srcdir)
         utils.system('./start.sh ' + args)
diff --git a/client/tests/posixtest/posixtest.py b/client/tests/posixtest/posixtest.py
index d26ce0a..469cf49 100755
--- a/client/tests/posixtest/posixtest.py
+++ b/client/tests/posixtest/posixtest.py
@@ -9,6 +9,11 @@
 
 class posixtest(test.test):
     version = 1
+
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://ufpr.dl.sourceforge.net/sourceforge/posixtest/posixtestsuite-1.5.2.tar.gz
     def setup(self, tarball = 'posixtestsuite-1.5.2.tar.gz'):
         self.posix_tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/reaim/reaim.py b/client/tests/reaim/reaim.py
index 72e668f..a456a4e 100755
--- a/client/tests/reaim/reaim.py
+++ b/client/tests/reaim/reaim.py
@@ -34,6 +34,7 @@
 
 
     def initialize(self):
+        self.job.require_gcc()
         self.ldlib = 'LD_LIBRARY_PATH=%s/deps/libaio/lib'%(self.autodir)
 
 
diff --git a/client/tests/rmaptest/rmaptest.py b/client/tests/rmaptest/rmaptest.py
index e6afdef..ee4befb 100644
--- a/client/tests/rmaptest/rmaptest.py
+++ b/client/tests/rmaptest/rmaptest.py
@@ -15,6 +15,10 @@
     version = 1
     preserve_srcdir = True
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     def setup(self):
         os.chdir(self.srcdir)
         utils.system('gcc -Wall -o rmaptest rmap-test.c')
diff --git a/client/tests/scrashme/scrashme.py b/client/tests/scrashme/scrashme.py
index 77f8a1b..e0a8f24 100644
--- a/client/tests/scrashme/scrashme.py
+++ b/client/tests/scrashme/scrashme.py
@@ -6,14 +6,18 @@
 class scrashme(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.codemonkey.org.uk/projects/git-snapshots/scrashme/scrashme-2007-07-08.tar.gz
     def setup(self, tarball = 'scrashme-2007-07-08.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
         autotest_utils.extract_tarball_to_dir(tarball, self.srcdir)
         os.chdir(self.srcdir)
-
         utils.system('make')
 
+
     def execute(self, iterations = 1, args_list = ''):
         if len(args_list) != 0:
             args = '' + args_list
diff --git a/client/tests/signaltest/signaltest.py b/client/tests/signaltest/signaltest.py
index be4e095..39303a1 100644
--- a/client/tests/signaltest/signaltest.py
+++ b/client/tests/signaltest/signaltest.py
@@ -7,11 +7,15 @@
     version = 1
     preserve_srcdir = True
 
-    # git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git
+    def initialize(self):
+        self.job.require_gcc()
 
+
+    # git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git
     def setup(self):
         os.chdir(self.srcdir)
         utils.system('make')
 
+
     def execute(self, args = '-t 10 -l 100000'):
         utils.system(self.srcdir + '/signaltest ' + args)
diff --git a/client/tests/sparse/sparse.py b/client/tests/sparse/sparse.py
index 253675c..1cf427b 100755
--- a/client/tests/sparse/sparse.py
+++ b/client/tests/sparse/sparse.py
@@ -6,6 +6,10 @@
 class sparse(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.codemonkey.org.uk/projects/git-snapshots/sparse/sparse-2006-04-28.tar.gz
     def setup(self, tarball = 'sparse-2006-04-28.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -17,6 +21,7 @@
 
         self.top_dir = self.job.tmpdir+'/sparse'
 
+
     def execute(self, base_tree, patches, config, config_list = None):
         kernel = self.job.kernel(base_tree, self.resultsdir)
         kernel.patch(patches)
diff --git a/client/tests/spew/spew.py b/client/tests/spew/spew.py
index 77a657e..1fcb502 100755
--- a/client/tests/spew/spew.py
+++ b/client/tests/spew/spew.py
@@ -6,6 +6,10 @@
 class spew(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # ftp://ftp.berlios.de/pub/spew/1.0.5/spew-1.0.5.tgz
     def setup(self, tarball = 'spew-1.0.5.tgz'):
         self.tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/stress/stress.py b/client/tests/stress/stress.py
index c7f3341..cb21392 100644
--- a/client/tests/stress/stress.py
+++ b/client/tests/stress/stress.py
@@ -6,6 +6,10 @@
 class stress(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://weather.ou.edu/~apw/projects/stress/stress-0.18.8.tar.gz
     def setup(self, tarball = 'stress-0.18.8.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/sysbench/sysbench.py b/client/tests/sysbench/sysbench.py
index 3845b38..f17f8cf 100644
--- a/client/tests/sysbench/sysbench.py
+++ b/client/tests/sysbench/sysbench.py
@@ -6,6 +6,10 @@
 class sysbench(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://osdn.dl.sourceforge.net/sourceforge/sysbench/sysbench-0.4.8.tar.gz
     def setup(self, tarball = 'sysbench-0.4.8.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/tbench/tbench.py b/client/tests/tbench/tbench.py
index 32cc3f0..7fb8f24 100755
--- a/client/tests/tbench/tbench.py
+++ b/client/tests/tbench/tbench.py
@@ -6,6 +6,10 @@
 class tbench(test.test):
     version = 2
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://samba.org/ftp/tridge/dbench/dbench-3.04.tar.gz
     def setup(self, tarball = 'dbench-3.04.tar.gz'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
@@ -15,6 +19,7 @@
         utils.system('./configure')
         utils.system('make')
 
+
     def execute(self, iterations = 1, nprocs = None, args = ''):
         # only supports combined server+client model at the moment
         # should support separate I suppose, but nobody uses it
diff --git a/client/tests/tsc/tsc.py b/client/tests/tsc/tsc.py
index 2dbdcf5..3130603 100755
--- a/client/tests/tsc/tsc.py
+++ b/client/tests/tsc/tsc.py
@@ -12,5 +12,9 @@
         utils.system('make')
 
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     def run_once(self, args = ''):
         utils.system(self.srcdir + '/checktsc ' + args)
diff --git a/client/tests/unixbench/unixbench.py b/client/tests/unixbench/unixbench.py
index abdfc4f..86fe6bb 100755
--- a/client/tests/unixbench/unixbench.py
+++ b/client/tests/unixbench/unixbench.py
@@ -6,6 +6,10 @@
 class unixbench(test.test):
     version = 2
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # http://www.tux.org/pub/tux/niemi/unixbench/unixbench-4.1.0.tgz
     def setup(self, tarball = 'unixbench-4.1.0.tar.bz2'):
         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
diff --git a/client/tests/xmtest/xmtest.py b/client/tests/xmtest/xmtest.py
index 1f1c08d..787b85e 100644
--- a/client/tests/xmtest/xmtest.py
+++ b/client/tests/xmtest/xmtest.py
@@ -11,6 +11,10 @@
 class xmtest(test.test):
     version = 1
 
+    def initialize(self):
+        self.job.require_gcc()
+
+
     # This test expects just the xm-test directory, as a tarball
     # from the Xen source tree
     # hg clone http://xenbits.xensource.com/xen-unstable.hg
@@ -26,6 +30,7 @@
         utils.system('./configure')
         utils.system('make existing')
 
+
     def execute(self, args = ''):
         os.chdir(self.srcdir)
         utils.system('./runtest.sh ' + args)