diff options
author | Sean Anderson <sean.anderson@seco.com> | 2022-04-04 14:17:59 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-04-14 15:39:15 -0400 |
commit | 679190c41a25592103e711718c93d2655d344713 (patch) | |
tree | 89d69f532715c6e61ee5e5f73c71a1458119897c /test/dm | |
parent | efa51f2bd641965f91550e1f7eeec14b5746db87 (diff) | |
download | u-boot-679190c41a25592103e711718c93d2655d344713.zip u-boot-679190c41a25592103e711718c93d2655d344713.tar.gz u-boot-679190c41a25592103e711718c93d2655d344713.tar.bz2 |
test: serial: Add test for putc/puts
This adds a test to ensure that puts is equivalent to putc called in a
loop. We don't verify the contents of the message to avoid having to
record console output a second time (though that could be added in the
future). The globals are initialized to non-zero values to avoid a
warning; in particular, the character count is off-by-one (but we always
make relative measurements).
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test/dm')
-rw-r--r-- | test/dm/serial.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/dm/serial.c b/test/dm/serial.c index 0662b5f..37d17a6 100644 --- a/test/dm/serial.c +++ b/test/dm/serial.c @@ -7,14 +7,22 @@ #include <log.h> #include <serial.h> #include <dm.h> +#include <asm/serial.h> #include <dm/test.h> #include <test/test.h> #include <test/ut.h> +static const char test_message[] = + "This is a test message\n" + "consisting of multiple lines\n"; + static int dm_test_serial(struct unit_test_state *uts) { + int i; struct serial_device_info info_serial = {0}; struct udevice *dev_serial; + size_t start, putc_written; + uint value_serial; ut_assertok(uclass_get_device_by_name(UCLASS_SERIAL, "serial", @@ -66,6 +74,17 @@ static int dm_test_serial(struct unit_test_state *uts) SERIAL_8_BITS, SERIAL_TWO_STOP))); + /* Verify that putc and puts print the same number of characters */ + sandbox_serial_endisable(false); + start = sandbox_serial_written(); + for (i = 0; i < sizeof(test_message) - 1; i++) + serial_putc(test_message[i]); + putc_written = sandbox_serial_written(); + serial_puts(test_message); + sandbox_serial_endisable(true); + ut_asserteq(putc_written - start, + sandbox_serial_written() - putc_written); + return 0; } |