[U-Boot] mmc tests incorrectly implemented

Marek Vasut marek.vasut at gmail.com
Wed Apr 10 16:23:46 UTC 2019


On 4/10/19 5:12 PM, Stephen Warren wrote:

Hi,

it would be nice if I was CCed on this.

> I see that some mmc tests have been added to test/py, but I see problems
> with them:
> 
> 1) test_mmc_rescan assumes that each entry in env__mmc_rd_configs is a
> separate device that can be rescanned. This isn't actually true; entries
> in that array are intended to drive the mmc read test, and so can point
> at partitions or specific sector numbers.

Is that documented somewhere ? I assumed they are separate devices and
if you need to test multiple partitions, you will have multiple entries
in this array, one for each device:partition pair.

> Running an mmc rescan test on
> the entire array results in duplicated tests. A new data array should be
> created for different tests.

I don't have such a usecase, but the fix should be easy to implement.
Can you do that ?

> 2) It relies on test data that was not previously required. In
> particular, I see new test failures because the "info_device" key is now
> required. New tests should either (a) use new optional data arrays to
> configure their operation, or (b) access any new data in an optional
> way, skipping the test if it's not present, so as not to cause test
> failures.

Either that, or update your tests. Can you submit a patch for this ?

> Also, shouldn't things like new tests be announced to the board
> maintainers list, so that people can update their test/py configurations
> to enable new tests if they're appropriate for their platform?

I don't know , should it ?

> [-] Section: test_mmc_info[emmc-boot0]
> FAILED:
> u_boot_console = <u_boot_console_exec_attach.ConsoleExecAttach object at
> 0x7fafd88f2d10>
> env__mmc_rd_config = {'count': 1, 'devid': 0, 'fixture_id':
> 'emmc-boot0', 'is_emmc': True, ...}
> 
>     @pytest.mark.buildconfigspec('cmd_mmc')
>     def test_mmc_info(u_boot_console, env__mmc_rd_config):
>         """Test the "mmc info" command.
> 
>         Args:
>             u_boot_console: A U-Boot console connection.
>             env__mmc_rd_config: The single MMC configuration on which
>                 to run the test. See the file-level comment above for
> details
>                 of the format.
> 
>         Returns:
>             Nothing.
>         """
> 
>         is_emmc = env__mmc_rd_config['is_emmc']
>         devid = env__mmc_rd_config['devid']
>         partid = env__mmc_rd_config.get('partid', 0)
>>       info_device = env__mmc_rd_config['info_device']
> E       KeyError: 'info_device'
> 
> src/u-boot/test/py/tests/test_mmc_rd.py:151: KeyError
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list