[Buildroot] [PATCH v7 1/2] testing/infra: split runtime test into new class

Arnout Vandecappelle arnout at mind.be
Wed Feb 6 09:43:10 UTC 2019


 Applied both to master, thanks.

 I did rewrite the commit message completely :-)

 Regards,
 Arnout

On 06/02/2019 04:25, Matt Weber wrote:
> From: Ricardo Martincoski <ricardo.martincoski at datacom.ind.br>
> 
> Move the setup of emulator to a new class, which takes the BRTest name.
> The original BRTest is renamed to BRConfigTest and is used as a base
> class for test cases that don't require a run-time target test. It will
> avoid duplicating code / execution time when adding a common class to
> test items like the git download infra.
> 
> The existing test cases are not impacted as the base and emulator class
> are still contained in basetest.
> 
> Signed-off-by: Ricardo Martincoski <ricardo.martincoski at datacom.ind.br>
> Cc: Arnout Vandecappelle <arnout at mind.be>
> Signed-off-by: Matthew Weber <matthew.weber at rockwellcollins.com>
> ---
> Changes v6 -> v7:
> [Peter / Arnout
>   - Swapped the class structure to allow all the existing test cases to
>     not be impacted
> 
> Changes v5 -> v6:
>   - Fixed rebase which added extra args being passed to
>     self.b.configure() for br2-external support
>   - Added additional test cases with class updates committed since v5
> 
> Changes v4 -> v5:
>   - no changes
> 
> Changes v3 -> v4:
>   - re-run the automatic replace command
> 
> Changes v2 -> v3:
>   - new patch
>   - search for "RuntimeTestBase" in
>     http://patchwork.ozlabs.org/patch/806161/
> ---
>  support/testing/infra/basetest.py | 26 +++++++++++++++++++-------
>  support/testing/run-tests         | 16 ++++++++--------
>  2 files changed, 27 insertions(+), 15 deletions(-)
> 
> diff --git a/support/testing/infra/basetest.py b/support/testing/infra/basetest.py
> index e67bf1a..a176bc3 100644
> --- a/support/testing/infra/basetest.py
> +++ b/support/testing/infra/basetest.py
> @@ -28,7 +28,7 @@ MINIMAL_CONFIG = \
>      """
>  
>  
> -class BRTest(unittest.TestCase):
> +class BRConfigTest(unittest.TestCase):
>      config = None
>      br2_external = list()
>      downloaddir = None
> @@ -39,10 +39,9 @@ class BRTest(unittest.TestCase):
>      timeout_multiplier = 1
>  
>      def __init__(self, names):
> -        super(BRTest, self).__init__(names)
> +        super(BRConfigTest, self).__init__(names)
>          self.testname = self.__class__.__name__
>          self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname)
> -        self.emulator = None
>          self.config += '\nBR2_DL_DIR="{}"\n'.format(self.downloaddir)
>          self.config += "\nBR2_JLEVEL={}\n".format(self.jlevel)
>  
> @@ -58,8 +57,23 @@ class BRTest(unittest.TestCase):
>              self.b.delete()
>  
>          if not self.b.is_finished():
> -            self.show_msg("Building")
>              self.b.configure(make_extra_opts=["BR2_EXTERNAL={}".format(":".join(self.br2_external))])
> +
> +    def tearDown(self):
> +        self.show_msg("Cleaning up")
> +        if self.b and not self.keepbuilds:
> +            self.b.delete()
> +
> +
> +class BRTest(BRConfigTest):
> +    def __init__(self, names):
> +        super(BRTest, self).__init__(names)
> +        self.emulator = None
> +
> +    def setUp(self):
> +        super(BRTest, self).setUp()
> +        if not self.b.is_finished():
> +            self.show_msg("Building")
>              self.b.build()
>              self.show_msg("Building done")
>  
> @@ -67,8 +81,6 @@ class BRTest(unittest.TestCase):
>                                   self.logtofile, self.timeout_multiplier)
>  
>      def tearDown(self):
> -        self.show_msg("Cleaning up")
>          if self.emulator:
>              self.emulator.stop()
> -        if self.b and not self.keepbuilds:
> -            self.b.delete()
> +        super(BRTest, self).tearDown()
> diff --git a/support/testing/run-tests b/support/testing/run-tests
> index 76dd15e..813b927 100755
> --- a/support/testing/run-tests
> +++ b/support/testing/run-tests
> @@ -5,7 +5,7 @@ import os
>  import nose2
>  import multiprocessing
>  
> -from infra.basetest import BRTest
> +from infra.basetest import BRConfigTest
>  
>  
>  def main():
> @@ -38,7 +38,7 @@ def main():
>      test_dir = os.path.dirname(script_path)
>  
>      if args.stdout:
> -        BRTest.logtofile = False
> +        BRConfigTest.logtofile = False
>  
>      if args.list:
>          print("List of tests")
> @@ -57,7 +57,7 @@ def main():
>              parser.print_help()
>              return 1
>  
> -    BRTest.downloaddir = os.path.abspath(args.download)
> +    BRConfigTest.downloaddir = os.path.abspath(args.download)
>  
>      if args.output is None:
>          print("Missing output directory, please use -o/--output")
> @@ -68,7 +68,7 @@ def main():
>      if not os.path.exists(args.output):
>          os.mkdir(args.output)
>  
> -    BRTest.outputdir = os.path.abspath(args.output)
> +    BRConfigTest.outputdir = os.path.abspath(args.output)
>  
>      if args.all is False and len(args.testname) == 0:
>          print("No test selected")
> @@ -76,7 +76,7 @@ def main():
>          parser.print_help()
>          return 1
>  
> -    BRTest.keepbuilds = args.keep
> +    BRConfigTest.keepbuilds = args.keep
>  
>      if args.testcases != 1:
>          if args.testcases < 1:
> @@ -89,7 +89,7 @@ def main():
>          each_testcase = br2_jlevel / args.testcases
>          if each_testcase < 1:
>              each_testcase = 1
> -        BRTest.jlevel = each_testcase
> +        BRConfigTest.jlevel = each_testcase
>  
>      if args.jlevel:
>          if args.jlevel < 0:
> @@ -98,14 +98,14 @@ def main():
>              parser.print_help()
>              return 1
>          # the user can override the auto calculated value
> -        BRTest.jlevel = args.jlevel
> +        BRConfigTest.jlevel = args.jlevel
>  
>      if args.timeout_multiplier < 1:
>          print("Invalid multiplier for timeout values")
>          print("")
>          parser.print_help()
>          return 1
> -    BRTest.timeout_multiplier = args.timeout_multiplier
> +    BRConfigTest.timeout_multiplier = args.timeout_multiplier
>  
>      nose2_args = ["-v",
>                    "-N", str(args.testcases),
> 



More information about the buildroot mailing list