1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * DM tag test 4 * 5 * Copyright (c) 2021 Linaro Limited 6 * Author: AKASHI Takahiro 7 */ 8 9#include <dm/tag.h> 10#include <dm/test.h> /* DM_TEST() */ 11#include <test/test.h> /* struct unit_test_state */ 12#include <test/ut.h> /* assertions */ 13 14/* 15 * Test dm_tag_ptr() API 16 */ 17static int dm_test_tag_ptr(struct unit_test_state *uts) 18{ 19 ulong val; 20 void *ptr = NULL; 21 22 ut_assertok(dev_tag_set_ptr(uts->root, DM_TAG_EFI, &val)); 23 24 ut_assertok(dev_tag_get_ptr(uts->root, DM_TAG_EFI, &ptr)); 25 26 ut_asserteq_ptr(&val, ptr); 27 28 ut_assertok(dev_tag_del(uts->root, DM_TAG_EFI)); 29 30 return 0; 31} 32 33DM_TEST(dm_test_tag_ptr, 0); 34 35/* 36 * Test dm_tag_val() API 37 */ 38static int dm_test_tag_val(struct unit_test_state *uts) 39{ 40 ulong val1 = 0x12345678, val2 = 0; 41 42 ut_assertok(dev_tag_set_val(uts->root, DM_TAG_EFI, val1)); 43 44 ut_assertok(dev_tag_get_val(uts->root, DM_TAG_EFI, &val2)); 45 46 ut_asserteq_64(val1, val2); 47 48 ut_assertok(dev_tag_del(uts->root, DM_TAG_EFI)); 49 50 return 0; 51} 52 53DM_TEST(dm_test_tag_val, 0); 54 55/* 56 * Test against an invalid tag 57 */ 58static int dm_test_tag_inval(struct unit_test_state *uts) 59{ 60 ulong val; 61 62 ut_asserteq(-EINVAL, dev_tag_set_ptr(uts->root, DM_TAG_COUNT, &val)); 63 64 return 0; 65} 66 67DM_TEST(dm_test_tag_inval, 0); 68 69/* 70 * Test dm_tag_del_all() AP: 71 */ 72static int dm_test_tag_del_all(struct unit_test_state *uts) 73{ 74 ulong val; 75 76 ut_assertok(dev_tag_set_ptr(uts->root, DM_TAG_EFI, &val)); 77 78 ut_assertok(dev_tag_del_all(uts->root)); 79 80 return 0; 81} 82 83DM_TEST(dm_test_tag_del_all, 0); 84