Home | History | Annotate | Download | only in connectathon
      1 import os, shutil, glob, logging
      2 from autotest_lib.client.bin import test, utils
      3 from autotest_lib.client.common_lib import error
      4 
      5 
      6 class connectathon(test.test):
      7     """
      8     Connectathon test is an nfs testsuite which can run on
      9     both BSD and System V based systems. The tests.init file
     10     has to be modified based on the OS in which this test is run.
     11 
     12     The tar file in this dir has an init file which works for Linux
     13     platform.
     14 
     15     @see www.connectathon.org
     16     @author Poornima.Nayak (Poornima.Nayak (at] in.ibm.com)(original code)
     17     """
     18     version = 1
     19     def initialize(self):
     20         """
     21         Sets the overall failure counter for the test.
     22         """
     23         self.nfail = 0
     24 
     25 
     26     def setup(self, tarball='connectathon.tar.bz2'):
     27         connectathon_tarball = utils.unmap_url(self.bindir, tarball,
     28                                                self.tmpdir)
     29         utils.extract_tarball_to_dir(connectathon_tarball, self.srcdir)
     30 
     31         os.chdir(self.srcdir)
     32         utils.system('make clean')
     33         utils.system('make')
     34 
     35 
     36     def run_once(self, testdir=None, args='', cthon_iterations=1):
     37         """
     38         Runs the test, with the appropriate control file.
     39         """
     40         os.chdir(self.srcdir)
     41 
     42         if testdir is None:
     43             testdir = self.tmpdir
     44 
     45         self.results_path = os.path.join(self.resultsdir,
     46                                          'raw_output_%s' % self.iteration)
     47 
     48         try:
     49             if not args:
     50                 # run basic test
     51                 args = "-b -t"
     52 
     53             self.results = utils.system_output('./runtests -N %s %s %s' %
     54                                               (cthon_iterations, args, testdir))
     55             utils.open_write_close(self.results_path, self.results)
     56 
     57         except error.CmdError, e:
     58             self.nfail += 1
     59             logging.error("Test failed: %s", e)
     60 
     61 
     62     def postprocess(self):
     63         """
     64         Raises on failure.
     65         """
     66         if self.nfail != 0:
     67             raise error.TestFail('Connectathon test suite failed.')
     68