From bff1a71ede3557cd5502afdb74aabe9599d6f96b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 8 Nov 2015 23:48:08 -0700 Subject: dm: test: usb: sandbox: Add keyboard tests for sandbox Add a test that verifies that USB keyboards work correctly on sandbox. This verifies some additional parts of the USB stack. Signed-off-by: Simon Glass --- test/dm/usb.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'test') diff --git a/test/dm/usb.c b/test/dm/usb.c index fb193e80c26..7d6b644a51b 100644 --- a/test/dm/usb.c +++ b/test/dm/usb.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -258,3 +259,33 @@ static int dm_test_usb_tree_reorder(struct unit_test_state *uts) return 0; } DM_TEST(dm_test_usb_tree_reorder, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT); + +static int dm_test_usb_keyb(struct unit_test_state *uts) +{ + struct udevice *dev; + + state_set_skip_delays(true); + ut_assertok(usb_init()); + + /* Initially there should be no characters */ + ut_asserteq(0, tstc()); + + ut_assertok(uclass_get_device_by_name(UCLASS_USB_EMUL, "keyb", + &dev)); + + /* + * Add a string to the USB keyboard buffer - it should appear in + * stdin + */ + ut_assertok(sandbox_usb_keyb_add_string(dev, "ab")); + ut_asserteq(1, tstc()); + ut_asserteq('a', getc()); + ut_asserteq(1, tstc()); + ut_asserteq('b', getc()); + ut_asserteq(0, tstc()); + + ut_assertok(usb_stop()); + + return 0; +} +DM_TEST(dm_test_usb_keyb, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT); -- cgit v1.2.3