Hi Lucas, That is not a bug.New variables can be declared inside the if body.Just brought it to your notice :)
On Wed, Oct 30, 2013 at 11:40 PM, Lucas Meneghel Rodrigues <[email protected]>wrote: > On 10/29/2013 11:23 AM, Rajeev S 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 >> > > Lack of Signed-off-by: tag > Lack of identification (patch signature) > > This patch doesn't seem to be created using git send-email. > > I had to fix this all. Please try to be more attentive of these details. I > am fine with people sending some patches to the mailing list and bypassing > github from time to time, but *please* at least use standard procedure. > > I did look at the patch, found a bug, that was fixed, see comment below. > After fixing the problems the patch was pushed to next > > commit bec0b292180be277749321b56f38f3**0bbb280ce4 > Author: Rajeev S <[email protected]> > Date: Wed Oct 30 15:31:46 2013 -0200 > > autotest-local: Specify test directory as a command line option > > This patch allows to specify the location of the test > directory via an extra command line option, -d. > > > Usage:./autotest -d /path/to/dir path/to/control > > Signed-off-by: Rajeev S <[email protected]> > > Thanks, > > Lucas > > > >> --- >> 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'] >> > > ^ This is a bug. If there's no CUSTOM_DIR, then customtestdir below is not > defined and then an error will follow. I have fixed it. > > >> - 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<https://www.redhat.com/mailman/listinfo/autotest-kernel> >> >> > -- *Regards, Rajeev S* *B Tech CSE Student* *Government Engineering College,Thrissur* *http://rajeevs.tk* *http://careers.stackoverflow.com/rajeevs* *https://github.com/rajeevs1992*
_______________________________________________ Autotest-kernel mailing list [email protected] https://www.redhat.com/mailman/listinfo/autotest-kernel
