]> Git Repo - u-boot.git/blob - test/dm/rng.c
c8ed6cadf586e1db0590d05fec909958e94d2037
[u-boot.git] / test / dm / rng.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (c) 2019, Linaro Limited
4  */
5
6 #include <dm.h>
7 #include <log.h>
8 #include <rng.h>
9 #include <dm/test.h>
10 #include <test/ut.h>
11
12 /* Basic test of the rng uclass */
13 static int dm_test_rng_read(struct unit_test_state *uts)
14 {
15         unsigned long rand1 = 0, rand2 = 0;
16         struct udevice *dev;
17
18         ut_assertok(uclass_get_device(UCLASS_RNG, 0, &dev));
19         ut_assertnonnull(dev);
20         ut_assertok(dm_rng_read(dev, &rand1, sizeof(rand1)));
21         ut_assertok(dm_rng_read(dev, &rand2, sizeof(rand2)));
22         ut_assert(rand1 != rand2);
23
24         return 0;
25 }
26 DM_TEST(dm_test_rng_read, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
27
28 /* Test the rng command */
29 static int dm_test_rng_cmd(struct unit_test_state *uts)
30 {
31         struct udevice *dev;
32
33         ut_assertok(uclass_get_device(UCLASS_RNG, 0, &dev));
34         ut_assertnonnull(dev);
35
36         ut_assertok(console_record_reset_enable());
37
38         run_command("rng", 0);
39         ut_assert_nextlinen("00000000:");
40         ut_assert_nextlinen("00000010:");
41         ut_assert_nextlinen("00000020:");
42         ut_assert_nextlinen("00000030:");
43         ut_assert_console_end();
44
45         run_command("rng 0 10", 0);
46         ut_assert_nextlinen("00000000:");
47         ut_assert_console_end();
48
49         run_command("rng 20", 0);
50         ut_assert_nextlinen("No RNG device");
51         ut_assert_console_end();
52
53         return 0;
54 }
55 DM_TEST(dm_test_rng_cmd, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
This page took 0.017318 seconds and 2 git commands to generate.