[U-Boot] mmc tests incorrectly implemented
Stephen Warren
swarren at wwwdotorg.org
Wed Apr 10 17:13:32 UTC 2019
On 4/10/19 10:23 AM, Marek Vasut wrote:
> On 4/10/19 5:12 PM, Stephen Warren wrote:
>
> Hi,
>
> it would be nice if I was CCed on this.
Sorry, I didn't drill down in Jenkins/git data to find out where the
commits came from; I just had a list of commit descriptions and knew
which branch they showed up in,
>> 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.
There is an example in a comment at the top of test_mmc_rd.py, since
that's what is intended to use this data. Admittedly, it doesn't
explicitly spell out that the data array is intended for sole use by
that test, but I assumed it was obvious enough since the array was named
after the test and only used/mentioned in that one tests.
>> 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 ?
Surely you have a use-case for the new test, or you wouldn't have
implemented it?
I'm afraid I barely have time to keep the test system running. I don't
have time to patch up test failures in most cases. The only option I
have available is to disable all MMC testing on my boards if that's
what's needed to keep the test system going to other tests. Sorry.
>> 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 ?
Well, why not? How else are people expected to find out about new tests
and know to enable them on their HW if appropriate? I certainly don't
think that expecting people running test systems to read every single
email or commit message to poll for changes to the tests is reasonable.
>> [-] 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
More information about the U-Boot
mailing list