Hi Sughosh, On Tue, 8 Mar 2022 at 23:18, Sughosh Ganu <sughosh.g...@linaro.org> wrote: > > hi Simon, > > On Wed, 9 Mar 2022 at 08:06, Simon Glass <s...@chromium.org> wrote: > > > > Hi Sughosh, > > > > On Fri, 4 Mar 2022 at 06:35, Sughosh Ganu <sughosh.g...@linaro.org> wrote: > > > > > > The 'rng' command dumps a number of random bytes on the console. Add a > > > set of tests for the 'rng' command. The test function performs basic > > > sanity testing of the command. > > > > > > Since a unit test is being added for the command, enable it by default > > > in the sandbox platforms. > > > > > > Signed-off-by: Sughosh Ganu <sughosh.g...@linaro.org> > > > --- > > > > > > Changes since V2: None > > > > > > cmd/Kconfig | 1 + > > > test/dm/rng.c | 29 +++++++++++++++++++++++++++++ > > > 2 files changed, 30 insertions(+) > > > > Reviewed-by: Simon Glass <s...@chromium.org> > > > > > > > > diff --git a/cmd/Kconfig b/cmd/Kconfig > > > index 5e25e45fd2..47f1e23ef0 100644 > > > --- a/cmd/Kconfig > > > +++ b/cmd/Kconfig > > > @@ -1810,6 +1810,7 @@ config CMD_GETTIME > > > config CMD_RNG > > > bool "rng command" > > > depends on DM_RNG > > > + default y if SANDBOX > > > select HEXDUMP > > > help > > > Print bytes from the hardware random number generator. > > > diff --git a/test/dm/rng.c b/test/dm/rng.c > > > index 5b34c93ed6..6d1f68848d 100644 > > > --- a/test/dm/rng.c > > > +++ b/test/dm/rng.c > > > @@ -25,3 +25,32 @@ static int dm_test_rng_read(struct unit_test_state > > > *uts) > > > return 0; > > > } > > > DM_TEST(dm_test_rng_read, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); > > > + > > > +/* Test the rng command */ > > > +static int dm_test_rng_cmd(struct unit_test_state *uts) > > > +{ > > > + struct udevice *dev; > > > + > > > + ut_assertok(uclass_get_device(UCLASS_RNG, 0, &dev)); > > > + ut_assertnonnull(dev); > > > + > > > + ut_assertok(console_record_reset_enable()); > > > + > > > + run_command("rng", 0); > > > + ut_assert_nextlinen("00000000:"); > > > + ut_assert_nextlinen("00000010:"); > > > + ut_assert_nextlinen("00000020:"); > > > + ut_assert_nextlinen("00000030:"); > > > > This is good enough for testing, except that here you don't have any > > actual data. How come? > > This being a test for a random number device, we cannot anticipate > what data we will be getting. The sandbox RNG driver does not return a > fixed set of values on each invocation of the command.
How come? Can you fix that by setting the random seed at the start of the test? Regards, Simon > > -sughosh > > > > > > + ut_assert_console_end(); > > > + > > > + run_command("rng 0 10", 0); > > > + ut_assert_nextlinen("00000000:"); > > > + ut_assert_console_end(); > > > + > > > + run_command("rng 20", 0); > > > + ut_assert_nextlinen("No RNG device"); > > > + ut_assert_console_end(); > > > + > > > + return 0; > > > +} > > > +DM_TEST(dm_test_rng_cmd, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT | > > > UT_TESTF_CONSOLE_REC); > > > -- > > > 2.25.1 > > > > > > > Regards, > > SImon