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