dm: test: add test case for dev_read_u64 function

Add test case to cover dev_read_u64 and dev_read_u64_default functions.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Dario Binacchi 2020-03-29 18:04:40 +02:00 committed by Simon Glass
parent ced1080489
commit 70573c6c46
3 changed files with 27 additions and 0 deletions

View File

@ -93,6 +93,7 @@
<&gpio_b 9 0xc 3 2 1>;
int-value = <1234>;
uint-value = <(-1234)>;
int64-value = /bits/ 64 <0x1111222233334444>;
interrupts-extended = <&irq 3 0>;
};

View File

@ -104,6 +104,22 @@ int ut_check_console_dump(struct unit_test_state *uts, int total_bytes);
} \
}
/* Assert that two 64 int expressions are equal */
#define ut_asserteq_64(expr1, expr2) { \
u64 _val1 = (expr1), _val2 = (expr2); \
\
if (_val1 != _val2) { \
ut_failf(uts, __FILE__, __LINE__, __func__, \
#expr1 " == " #expr2, \
"Expected %#llx (%lld), got %#llx (%lld)", \
(unsigned long long)_val1, \
(unsigned long long)_val1, \
(unsigned long long)_val2, \
(unsigned long long)_val2); \
return CMD_RET_FAILURE; \
} \
}
/* Assert that two string expressions are equal */
#define ut_asserteq_str(expr1, expr2) { \
const char *_val1 = (expr1), *_val2 = (expr2); \

View File

@ -867,6 +867,7 @@ static int dm_test_read_int(struct unit_test_state *uts)
u32 val32;
s32 sval;
uint val;
u64 val64;
ut_assertok(uclass_first_device_err(UCLASS_TEST_FDT, &dev));
ut_asserteq_str("a-test", dev->name);
@ -891,6 +892,15 @@ static int dm_test_read_int(struct unit_test_state *uts)
ut_assertok(dev_read_u32u(dev, "uint-value", &val));
ut_asserteq(-1234, val);
ut_assertok(dev_read_u64(dev, "int64-value", &val64));
ut_asserteq_64(0x1111222233334444, val64);
ut_asserteq_64(-EINVAL, dev_read_u64(dev, "missing", &val64));
ut_asserteq_64(6, dev_read_u64_default(dev, "missing", 6));
ut_asserteq_64(0x1111222233334444,
dev_read_u64_default(dev, "int64-value", 6));
return 0;
}
DM_TEST(dm_test_read_int, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);