1 /*
2 * Copyright (c) 2006-2024, RT-Thread Development Team
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Change Logs:
7 * Date Author Notes
8 * 2024-05-20 Shell the first version
9 */
10 #include <rtthread.h>
11 #include <stdlib.h>
12 #include "utest.h"
13
test_rt_device_find(void)14 static void test_rt_device_find(void)
15 {
16 char _device_name[RT_NAME_MAX + 1] = {0};
17 rt_device_t console;
18 rt_device_t device1, device2, device3;
19
20 console = rt_console_get_device();
21 uassert_not_null(console);
22 rt_memcpy(_device_name, console->parent.name, RT_NAME_MAX);
23
24 /* Test finding a device */
25 device1 = rt_device_find(_device_name);
26 uassert_true(device1 == console);
27
28 /* Test finding another device */
29 device2 = rt_device_find(RT_CONSOLE_DEVICE_NAME);
30 if (rt_strcmp(RT_CONSOLE_DEVICE_NAME, _device_name) == 0)
31 {
32 uassert_true(device2 == device1);
33 }
34 else
35 {
36 uassert_not_null(device2);
37 uassert_true(device2 != device1);
38 }
39
40 /* Test finding a device 3 */
41 device3 = rt_device_find(console->parent.name);
42 uassert_true(device1 == device3);
43 }
44
utest_tc_init(void)45 static rt_err_t utest_tc_init(void)
46 {
47 return RT_EOK;
48 }
49
utest_tc_cleanup(void)50 static rt_err_t utest_tc_cleanup(void)
51 {
52 return RT_EOK;
53 }
54
testcase(void)55 static void testcase(void)
56 {
57 UTEST_UNIT_RUN(test_rt_device_find);
58 }
59 UTEST_TC_EXPORT(testcase, "testcases.kernel.device.find", utest_tc_init, utest_tc_cleanup, 5);
60