See my reasoning on previous messages as to why I am NACKing this patch.
On Tue, Oct 29, 2013 at 11:23 AM, Rajeev S <[email protected]> wrote: > Patch to specify the location of the test directory via an > extra command line option. > > Usage:./autotest -d /path/to/dir path/to/control > > > --- > client/autotest_local.py | 6 ++++++ > client/cmdparser.py | 11 ++++++++++- > client/optparser.py | 3 +++ > client/setup_job.py | 8 ++++++++ > client/shared/base_job.py | 6 ++++++ > client/shared/base_job_unittest.py | 2 +- > client/shared/test.py | 2 +- > 7 files changed, 35 insertions(+), 3 deletions(-) > > diff --git a/client/autotest_local.py b/client/autotest_local.py > index ab5dbd6..276fe16 100644 > --- a/client/autotest_local.py > +++ b/client/autotest_local.py > @@ -46,6 +46,12 @@ class AutotestLocalApp: > self.options, args = self.opt_parser.parse_args() > self.args = self.cmd_parser.parse_args(args) > > + if self.options.test_directory is not None: > + if os.path.isdir(self.options.test_directory): > + os.environ['CUSTOM_DIR'] = self.options.test_directory > + else: > + print "The custom directory specifed does not exist,Hence > Ignoring." > + > # Check for a control file if not in prebuild mode. > if len(args) != 1 and self.options.client_test_setup is None: > print "Missing control file!" > diff --git a/client/cmdparser.py b/client/cmdparser.py > index 5683835..ccef3ed 100644 > --- a/client/cmdparser.py > +++ b/client/cmdparser.py > @@ -173,6 +173,13 @@ class CommandParser(object): > cls._print_control_list(pipe, dirtest) > pipe.write("\n") > > + # Walk customtest directory > + if 'CUSTOM_DIR' in os.environ: > + dirtest = os.environ['CUSTOM_DIR'] > + pipe.write("Custom Test Directory (%s)\n" % dirtest) > + cls._print_control_list(pipe, dirtest) > + pipe.write("\n") > + > # Walk autodirtest directory > dirtest = os.environ['AUTODIRTEST'] > pipe.write("Autotest prepackaged tests (%s)\n" % dirtest) > @@ -232,8 +239,10 @@ class CommandParser(object): > fetchdir = FETCHDIRTEST > globaldir = GLOBALDIRTEST > autodir = os.environ['AUTODIRTEST'] > + if 'CUSTOM_DIR' in os.environ: > + customtestdir = os.environ['CUSTOM_DIR'] > > - for dirtest in [localdir, fetchdir, globaldir, autodir]: > + for dirtest in [localdir, fetchdir, globaldir, autodir, > customtestdir]: > d = os.path.join(dirtest, test) > if os.path.isfile(d): > args.insert(0, d) > diff --git a/client/optparser.py b/client/optparser.py > index 717ba92..f5a5496 100644 > --- a/client/optparser.py > +++ b/client/optparser.py > @@ -53,6 +53,9 @@ class AutotestLocalOptionParser(optparse.OptionParser): > help=('a comma seperated list of client tests > to ' > 'prebuild on the server. Use all to > prebuild ' > 'all of them.')) > + general.add_option("-d",'--test_directory', dest='test_directory', > + type='string', default=None, action='store', > + help=('Specify a custom test directory ')) > self.add_option_group(general) > > job_id = optparse.OptionGroup(self, 'JOB IDENTIFICATION') > diff --git a/client/setup_job.py b/client/setup_job.py > index a6547f2..9465d46 100644 > --- a/client/setup_job.py > +++ b/client/setup_job.py > @@ -112,6 +112,14 @@ def load_all_client_tests(options): > all_tests.append(client_test) > else: > broken_tests.append(test_name) > + if 'CUSTOM_DIR' in os.environ: > + testdir = os.environ['CUSTOM_DIR'] > + for test_name in os.listdir(testdir): > + client_test = init_test(options, os.path.join(testdir, > test_name)) > + if client_test: > + all_tests.append(client_test) > + else: > + broken_tests.append(test_name) > return all_tests, broken_tests > > > diff --git a/client/shared/base_job.py b/client/shared/base_job.py > index aff1ca7..15932e4 100644 > --- a/client/shared/base_job.py > +++ b/client/shared/base_job.py > @@ -866,6 +866,7 @@ class base_job(object): > @property pkgdir: The job packages directory. [WRITABLE] > @property tmpdir: The job temporary directory. [WRITABLE] > @property testdir: The job test directory. [WRITABLE] > + @property customtestdir: The custom test directory. [WRITABLE] > @property site_testdir: The job site test directory. [WRITABLE] > > @property bindir: The client bin/ directory. > @@ -947,6 +948,7 @@ class base_job(object): > pkgdir = _job_directory.property_factory('pkgdir') > tmpdir = _job_directory.property_factory('tmpdir') > testdir = _job_directory.property_factory('testdir') > + customtestdir = _job_directory.property_factory('customtestdir') > site_testdir = _job_directory.property_factory('site_testdir') > bindir = _job_directory.property_factory('bindir') > configdir = _job_directory.property_factory('configdir') > @@ -1057,6 +1059,10 @@ class base_job(object): > > # Now tests are read-only modules > self._testdir = readonly_dir(test_dir) > + if 'CUSTOM_DIR' in os.environ: > + self._customtestdir = readonly_dir(os.environ['CUSTOM_DIR']) > + else: > + self._customtestdir = readonly_dir(test_dir) > self._site_testdir = readwrite_dir(test_out_dir, 'site_tests') > > # various server-specific directories > diff --git a/client/shared/base_job_unittest.py > b/client/shared/base_job_unittest.py > index 210c069..2678e37 100755 > --- a/client/shared/base_job_unittest.py > +++ b/client/shared/base_job_unittest.py > @@ -77,7 +77,7 @@ class test_init(unittest.TestCase): > # standard directories > 'autodir', 'clientdir', 'serverdir', 'resultdir', 'pkgdir', > 'tmpdir', 'testdir', 'site_testdir', 'bindir', > - 'configdir', 'profdir', 'toolsdir', 'conmuxdir', > + 'configdir', 'profdir', 'toolsdir', 'conmuxdir', > 'customtestdir', > > # other special attributes > 'args', 'automatic_test_tag', 'bootloader', 'control', > diff --git a/client/shared/test.py b/client/shared/test.py > index 9e0d6fe..0166e14 100644 > --- a/client/shared/test.py > +++ b/client/shared/test.py > @@ -885,7 +885,7 @@ def runtest(job, url, tag, args, dargs, > # already exists on the machine > pass > > - testdir_list = [job.testdir, getattr(job, 'site_testdir', None)] > + testdir_list = [job.testdir, getattr(job, 'site_testdir', None), > job.customtestdir] > bindir_config = settings.get_value('COMMON', 'test_dir', > default="") > if bindir_config: > testdir_list.extend(bindir_config.strip().split(',')) > > _______________________________________________ > Autotest-kernel mailing list > [email protected] > https://www.redhat.com/mailman/listinfo/autotest-kernel > -- Lucas
_______________________________________________ Autotest-kernel mailing list [email protected] https://www.redhat.com/mailman/listinfo/autotest-kernel
