diff options
author | Lukas Funke <lukas.funke@weidmueller.com> | 2024-01-10 10:10:29 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-01-18 10:42:14 -0500 |
commit | 2ae4ab951f9096d30bfd6263cbe89dca837e3d2b (patch) | |
tree | 30027fd8018809b4b8c46eed53965313151eb036 | |
parent | dc2e515cf8aebcf4cb88253621afe985d1c5be26 (diff) | |
download | u-boot-2ae4ab951f9096d30bfd6263cbe89dca837e3d2b.zip u-boot-2ae4ab951f9096d30bfd6263cbe89dca837e3d2b.tar.gz u-boot-2ae4ab951f9096d30bfd6263cbe89dca837e3d2b.tar.bz2 |
test: cmd: setexpr: Add tests for bitmap string format
Add tests to test the bitmap format specifier. Test different bit
widths and access to memory by pointer.
Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
-rw-r--r-- | test/cmd/setexpr.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/cmd/setexpr.c b/test/cmd/setexpr.c index 312593e..c536c9e 100644 --- a/test/cmd/setexpr.c +++ b/test/cmd/setexpr.c @@ -465,6 +465,28 @@ static int setexpr_test_fmt(struct unit_test_state *uts) ut_asserteq(1, run_command("setexpr fred fmt hello% bf", 0)); /* Error exceeding maximum string length */ ut_asserteq(1, run_command("setexpr fred fmt \"%0128d\" 456", 0)); + /* Test bitmask long string */ + ut_assertok(run_command("setexpr fred fmt isolcpu=%64pbl 0x1F1", 0)); + ut_asserteq_str("isolcpu=0,4-8", env_get("fred")); + /* Test bitmask long string (more complicated) */ + ut_assertok(run_command("setexpr fred fmt nohz_full=%32pbl 0x55555555", 0)); + ut_asserteq_str("nohz_full=0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30", env_get("fred")); + ut_assertok(run_command("setexpr fred fmt %64pbl 0xdeadbeef", 0)); + ut_asserteq_str("0-3,5-7,9-13,15-16,18-19,21,23,25-28,30-31", env_get("fred")); + /* Test bitmask on 64...256 */ + ut_assertok(run_command("setexpr fred fmt %64pbl 0xf0f0f0f0f0f0f0f0", 0)); + ut_asserteq_str("4-7,12-15,20-23,28-31,36-39,44-47,52-55,60-63", env_get("fred")); + ut_assertok(run_command("setexpr fred fmt %128pbl 0xf0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0", 0)); + ut_asserteq_str("4-7,12-15,20-23,28-31,36-39,44-47,52-55,60-63,68-71,76-79,84-87,92-95,100-103,108-111,116-119,124-127", env_get("fred")); + /* clear lower bitmask, otherwise output gets truncated */ + ut_assertok(run_command("setexpr fred fmt %256pbl 0xf0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000", 0)); + ut_asserteq_str("132-135,140-143,148-151,156-159,164-167,172-175,180-183,188-191,196-199,204-207,212-215,220-223,228-231,236-239,244-247,252-255", env_get("fred")); + /* Test memory access */ + memset(buf, 0, BUF_SIZE); + ut_assertok(run_command("env set myaddr 0x0;" + "mw.l $myaddr 0xdeadbeef 1;" + "setexpr fred fmt %64pbl *$myaddr", 0)); + ut_asserteq_str("0-3,5-7,9-13,15-16,18-19,21,23,25-28,30-31", env_get("fred")); unmap_sysmem(buf); |