[U-Boot] [PATCH V3 1/7] test/py: Implement pytest infrastructure

Stephen Warren
2016-01-11T17:00:31Z

On 01/11/2016 03:45 AM, Michal Simek wrote:
> Hi Stephen,
>
> On 8.1.2016 19:13, Stephen Warren wrote:
>> On 01/05/2016 03:58 PM, Stephen Warren wrote:
>>> This tool aims to test U-Boot by executing U-Boot shell commands using
>>> the
>>> console interface. A single top-level script exists to execute or attach
>>> to the U-Boot console, run the entire script of tests against it, and
>>> summarize the results. Advantages of this approach are:
>>>
>>> - Testing is performed in the same way a user or script would interact
>>> with U-Boot; there can be no disconnect.
>>> - There is no need to write or embed test-related code into U-Boot
>>> itself.
>>> It is asserted that writing test-related code in Python is simpler and
>>> more flexible that writing it all in C.
>>> - It is reasonably simple to interact with U-Boot in this way.
>>>
>>> A few simple tests are provided as examples. Soon, we should convert as
>>> many as possible of the other tests in test/* and test/cmd_ut.c too.
>>>
>>> The hook scripts, relay control utilities, and udev rules I use for my
>>> own HW setup are published at
>>> https://github.com/swarren/uboot-test-hooks.
>>>
>>> See README.md for more details!
>>
>> It looks like I need to send a v4 of this, since I renamed a Python
>> class but forgot to update all users of it. I didn't notice this, since
>> I had the old module lying around as a *.pyc file, so the old name
>> worked:-(
>
> yep.
>
>>
>> I also have a couple of minor fixes to roll in that make the scripts
>> work better under a continuous integration environment (which doesn't
>> have a controlling TTY set when the scripts run, which need a minor
>> tweak to the Spawn code).
>
> I have cherry picked 3 patches from your repo.
> 7813ccad9ed2 test/py: reset SIGHUP handler in child processes
> a2ccb34de3f5 test/py: fix ubspawn rename fallout
> 6dbcd7408f9e test/py: add a test for the sleep command
>
> sleep one is missing test for cmd_misc which enables that.
>
> There is still problem with handling special characters.
> For MB I have compilation error and %5e is shown instead of ^
>
> For example:
>
> +make O=/home/monstr/data/disk/u-boot/build-microblaze-generic -s
> microblaze-generic_defconfig
> +make O=/home/monstr/data/disk/u-boot/build-microblaze-generic -s -j8
> ../drivers/gpio/xilinx_gpio.c: In function 'xilinx_gpio_ofdata_to_platdata':
> ../drivers/gpio/xilinx_gpio.c:400:13: warning: assignment makes pointer
> from integer without a cast
> priv->regs = dev_get_addr(dev);
> %5e

Ah yes. When I first wrote the code, the log file wasn't HTML format,
but used ^ as a delimiter for some markup, so I escaped that character
so that log data wouldn't corrupt the file format. When I switched to
HTML, I forgot to remove that character from the escape list. I'll fold
the fix into v4.