// SPDX-License-Identifier: GPL-2.0+ /* * DM tag test * * Copyright (c) 2021 Linaro Limited * Author: AKASHI Takahiro */ #include #include #include /* DM_TEST() */ #include /* struct unit_test_state */ #include /* assertions */ /* * Test dm_tag_ptr() API */ static int dm_test_tag_ptr(struct unit_test_state *uts) { ulong val; void *ptr = NULL; ut_assertok(dev_tag_set_ptr(uts->root, DM_TAG_EFI, &val)); ut_assertok(dev_tag_get_ptr(uts->root, DM_TAG_EFI, &ptr)); ut_asserteq_ptr(&val, ptr); ut_assertok(dev_tag_del(uts->root, DM_TAG_EFI)); return 0; } DM_TEST(dm_test_tag_ptr, 0); /* * Test dm_tag_val() API */ static int dm_test_tag_val(struct unit_test_state *uts) { ulong val1 = 0x12345678, val2 = 0; ut_assertok(dev_tag_set_val(uts->root, DM_TAG_EFI, val1)); ut_assertok(dev_tag_get_val(uts->root, DM_TAG_EFI, &val2)); ut_asserteq_64(val1, val2); ut_assertok(dev_tag_del(uts->root, DM_TAG_EFI)); return 0; } DM_TEST(dm_test_tag_val, 0); /* * Test against an invalid tag */ static int dm_test_tag_inval(struct unit_test_state *uts) { ulong val; ut_asserteq(-EINVAL, dev_tag_set_ptr(uts->root, DM_TAG_COUNT, &val)); return 0; } DM_TEST(dm_test_tag_inval, 0); /* * Test dm_tag_del_all() AP: */ static int dm_test_tag_del_all(struct unit_test_state *uts) { ulong val; ut_assertok(dev_tag_set_ptr(uts->root, DM_TAG_EFI, &val)); ut_assertok(dev_tag_del_all(uts->root)); return 0; } DM_TEST(dm_test_tag_del_all, 0);