From: Simon Glass <simon.glass@canonical.com> It is sometimes useful to use a real TKey even when running with the test devicetree. Put it first, so it becomes the default. Update tests to select the emulator explicitly. Signed-off-by: Simon Glass <simon.glass@canonical.com> --- arch/sandbox/dts/test.dts | 5 +++++ test/cmd/tkey.c | 7 +++---- test/dm/tkey.c | 23 ++++++++++++----------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index 1d0ebc33387..7fef23a9285 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -1124,6 +1124,11 @@ }; }; + tkey { + compatible = "sandbox,tkey"; + sandbox,device-path = "/dev/ttyACM0"; + }; + tkey-emul { compatible = "tkey,emul"; }; diff --git a/test/cmd/tkey.c b/test/cmd/tkey.c index f2d52850d4e..15ff5283b62 100644 --- a/test/cmd/tkey.c +++ b/test/cmd/tkey.c @@ -28,10 +28,9 @@ CMD_TEST(cmd_test_tkey_help, UTF_DM | UTF_SCAN_FDT | UTF_CONSOLE); /* Test 'tkey' subcommands with emulator */ static int cmd_test_tkey_sandbox(struct unit_test_state *uts) { - struct udevice *dev; - - /* TKey device should be available in sandbox */ - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + /* Use tkey-emul for predictable test results */ + ut_assertok(run_command("tkey connect tkey-emul", 0)); + ut_assert_nextline("Connected to TKey device"); /* Test info command */ ut_assertok(run_command("tkey info", 0)); diff --git a/test/dm/tkey.c b/test/dm/tkey.c index 4ff5ecad7ea..5835e214f50 100644 --- a/test/dm/tkey.c +++ b/test/dm/tkey.c @@ -16,8 +16,9 @@ static int dm_test_tkey_find(struct unit_test_state *uts) { struct udevice *dev; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); ut_assertnonnull(dev); + ut_asserteq_str("tkey-emul", dev->name); return 0; } @@ -29,7 +30,7 @@ static int dm_test_tkey_get_udi(struct unit_test_state *uts) u8 udi[TKEY_UDI_SIZE]; struct udevice *dev; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); ut_assertok(tkey_get_udi(dev, udi)); @@ -54,7 +55,7 @@ static int dm_test_tkey_get_name_version(struct unit_test_state *uts) struct udevice *dev; u32 version; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Get name and version */ ut_assertok(tkey_get_name_version(dev, name0, name1, &version)); @@ -74,7 +75,7 @@ static int dm_test_tkey_in_app_mode(struct unit_test_state *uts) struct udevice *dev; int ret; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Check mode - should be in firmware mode initially */ ret = tkey_in_app_mode(dev); @@ -92,7 +93,7 @@ static int dm_test_tkey_load_app(struct unit_test_state *uts) u8 dummy_app[128]; int ret; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Create a dummy app */ memset(dummy_app, 0x42, sizeof(dummy_app)); @@ -118,7 +119,7 @@ static int dm_test_tkey_get_pubkey(struct unit_test_state *uts) u8 dummy_app[128]; int i; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Load a dummy app first */ memset(dummy_app, 0x42, sizeof(dummy_app)); @@ -149,7 +150,7 @@ static int dm_test_tkey_derive_wrapping_key(struct unit_test_state *uts) }; struct udevice *dev; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Derive wrapping key from password */ ut_assertok(tkey_derive_wrapping_key(dev, password, wrapping_key)); @@ -192,7 +193,7 @@ static int dm_test_tkey_derive_disk_key(struct unit_test_state *uts) struct udevice *dev; u8 dummy_app[128]; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Create a dummy signer app */ memset(dummy_app, 0x42, sizeof(dummy_app)); @@ -217,7 +218,7 @@ static int dm_test_tkey_udi_app_mode(struct unit_test_state *uts) struct udevice *dev; u8 dummy_app[128]; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Load an app to enter app mode */ memset(dummy_app, 0x42, sizeof(dummy_app)); @@ -240,7 +241,7 @@ static int dm_test_tkey_load_app_with_uss(struct unit_test_state *uts) u8 dummy_app[128]; const char *uss = "my_secret"; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Create a dummy app */ memset(dummy_app, 0x55, sizeof(dummy_app)); @@ -270,7 +271,7 @@ static int dm_test_tkey_read_write(struct unit_test_state *uts) u8 write_buf[129]; /* Header + command */ u8 read_buf[256]; - ut_assertok(uclass_first_device_err(UCLASS_TKEY, &dev)); + ut_assertok(uclass_get_device_by_name(UCLASS_TKEY, "tkey-emul", &dev)); /* Prepare a GET_NAME_VERSION command */ write_buf[0] = 0x10; /* Header: CMD, FIRMWARE endpoint */ -- 2.43.0