diff mbox

[PATCHv3] support/tests: allow properly indented config fragment

Message ID 20170718203839.14913-1-yann.morin.1998@free.fr
State Accepted
Headers show

Commit Message

Yann E. MORIN July 18, 2017, 8:38 p.m. UTC
Currently, defining a config fragment in the runtime test infra requires
that the fragment not to be indented. This is beark, and causes grievance
when looking at the code (e.g. to fix it).

Just strip out all leading spaces/tabs when writing the configuration
lines into the config file, allowing in-line indented config fragments,
like so:

    class TestFoo(bla):
        config = bla.config + \
            """
            FOO=y
            # BAR is not set
            """

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>

---
Changes v2 -> v3:
  - use and fix code snippet provided by Arnout, thanks! ;-)
  - do it in our base test class, not on the builder class  (Arnout)

Changes v1 -> v2:
  - add example in commit log  (Thomas)
---
 support/testing/infra/basetest.py | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Petazzoni July 18, 2017, 9:47 p.m. UTC | #1
Hello,

On Tue, 18 Jul 2017 22:38:39 +0200, Yann E. MORIN wrote:
> Currently, defining a config fragment in the runtime test infra requires
> that the fragment not to be indented. This is beark, and causes grievance
> when looking at the code (e.g. to fix it).
> 
> Just strip out all leading spaces/tabs when writing the configuration
> lines into the config file, allowing in-line indented config fragments,
> like so:
> 
>     class TestFoo(bla):
>         config = bla.config + \
>             """
>             FOO=y
>             # BAR is not set
>             """
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> 
> ---
> Changes v2 -> v3:
>   - use and fix code snippet provided by Arnout, thanks! ;-)
>   - do it in our base test class, not on the builder class  (Arnout)

Applied to master, thanks.

Thomas
Arnout Vandecappelle July 19, 2017, noon UTC | #2
On 18-07-17 22:38, Yann E. MORIN wrote:
> Currently, defining a config fragment in the runtime test infra requires
> that the fragment not to be indented. This is beark, and causes grievance
> when looking at the code (e.g. to fix it).
> 
> Just strip out all leading spaces/tabs when writing the configuration
> lines into the config file, allowing in-line indented config fragments,
> like so:
> 
>     class TestFoo(bla):
>         config = bla.config + \
>             """
>             FOO=y
>             # BAR is not set
>             """
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Arnout Vandecappelle <arnout@mind.be>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

> 
> ---
> Changes v2 -> v3:
>   - use and fix code snippet provided by Arnout, thanks! ;-)
>   - do it in our base test class, not on the builder class  (Arnout)
> 
> Changes v1 -> v2:
>   - add example in commit log  (Thomas)
> ---
>  support/testing/infra/basetest.py | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/support/testing/infra/basetest.py b/support/testing/infra/basetest.py
> index 1a082bb441..07c180e232 100644
> --- a/support/testing/infra/basetest.py
> +++ b/support/testing/infra/basetest.py
> @@ -41,6 +41,7 @@ class BRTest(unittest.TestCase):
>          self.testname = self.__class__.__name__
>          self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname)
>          self.emulator = None
> +        self.config = '\n'.join([line.lstrip() for line in self.config.splitlines()])

 It would also be nice to move the setting of jlevel to the constructor. But
heck, there's probably a lot that would be nice to improve in the testing infra :-)

 Regards,
 Arnout

>  
>      def show_msg(self, msg):
>          print "{} {:40s} {}".format(datetime.datetime.now().strftime("%H:%M:%S"),
>
Thomas Petazzoni July 19, 2017, 12:13 p.m. UTC | #3
Hello,

On Wed, 19 Jul 2017 14:00:40 +0200, Arnout Vandecappelle wrote:
> On 18-07-17 22:38, Yann E. MORIN wrote:
> > Currently, defining a config fragment in the runtime test infra requires
> > that the fragment not to be indented. This is beark, and causes grievance
> > when looking at the code (e.g. to fix it).
> > 
> > Just strip out all leading spaces/tabs when writing the configuration
> > lines into the config file, allowing in-line indented config fragments,
> > like so:
> > 
> >     class TestFoo(bla):
> >         config = bla.config + \
> >             """
> >             FOO=y
> >             # BAR is not set
> >             """
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > Cc: Arnout Vandecappelle <arnout@mind.be>  
> 
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

I already applied yesterday evening:
https://git.buildroot.org/buildroot/commit/?id=cf3cd4388a652c9af27ef1c35622e2d0a55b99a9.

Best regards,

Thomas
diff mbox

Patch

diff --git a/support/testing/infra/basetest.py b/support/testing/infra/basetest.py
index 1a082bb441..07c180e232 100644
--- a/support/testing/infra/basetest.py
+++ b/support/testing/infra/basetest.py
@@ -41,6 +41,7 @@  class BRTest(unittest.TestCase):
         self.testname = self.__class__.__name__
         self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname)
         self.emulator = None
+        self.config = '\n'.join([line.lstrip() for line in self.config.splitlines()])
 
     def show_msg(self, msg):
         print "{} {:40s} {}".format(datetime.datetime.now().strftime("%H:%M:%S"),