On 02/08/2013 05:20 PM, Dev Priya wrote:
Hi,
I have been using Autotest for about a month. Yesterday I had a need to
make some changes to the FFSB test where I added the code that accepts
the cfg file as an argument in the setup step. After doing that change I
noticed that it wasn't taking any effect! Reading a bit into the docs
and looking at the files in autotest directory on the client I figured
out that the cfg file as per the argument will be copied only once per
test version number. Every time I increment the version number, the
first test after that copies the correct file and there on that file
remains there for the subsequent runs and setup is not run anymore.
I got it that this is the intended behavior of setup but then how do I
handle this particular case where I want to switch cfg files on per run
basis but only one of them is getting copied over to the client? Can you
guys please give me some advice on this or point me to an example that
does something similar?
By default autotest would remove and recreate the source code dir and
compile the test suite again (param preserve_srcdir = False by default).
ffsb does not set preserve_srcdir = True, so I'm baffled as of why this
happens.
You could easily override this by passing the cfg param to run_once
(which is anyway the place you should modify if you need things on a per
test run basis), and calling a function to update the cfg file.
I haven't test this, I'll leave it as an exercise for you to test it,
and if you think it resolves your problem, let me know and send us a patch.
Thanks,
Lucas
diff --git a/ffsb/ffsb.py b/ffsb/ffsb.py
index 5ded102..0713153 100644
--- a/ffsb/ffsb.py
+++ b/ffsb/ffsb.py
@@ -157,9 +157,7 @@ class ffsb(test.test):
@param tarball: FFSB tarball. Could be either a path relative to
self.srcdir or a URL.
"""
- profile_src = os.path.join(self.bindir, 'profile.cfg.sample')
- profile_dst = os.path.join(os.path.dirname(self.srcdir),
'profile.cfg')
- shutil.copyfile(profile_src, profile_dst)
+ self.update_config('profile.cfg.sample')
tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
utils.extract_tarball_to_dir(tarball, self.srcdir)
os.chdir(self.srcdir)
@@ -168,10 +166,25 @@ class ffsb(test.test):
utils.make()
- def run_once(self):
+ def update_config(self, cfg):
+ """
+ Update the profile.cfg file.
+
+ @param cfg: Basename of the cfg file, that should be on the
+ test module folder (client/tests/ffsb).
+ """
+ profile_src = os.path.join(self.bindir, cfg)
+ profile_dst = os.path.join(os.path.dirname(self.srcdir),
'profile.cfg')
+ shutil.copyfile(profile_src, profile_dst)
+
+
+ def run_once(self, cfg=None):
"""
Runs a single iteration of the FFSB.
"""
+ if cfg is not None:
+ self.update_config(cfg)
+
self.dup_ffsb_profilefl()
# Run FFSB using abspath
cmd = '%s/ffsb %s/profile.cfg' % (self.srcdir, self.srcdir)
_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel