• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *    Copyright (c) 2025, The OpenThread Authors.
3  *    All rights reserved.
4  *
5  *    Redistribution and use in source and binary forms, with or without
6  *    modification, are permitted provided that the following conditions are met:
7  *    1. Redistributions of source code must retain the above copyright
8  *       notice, this list of conditions and the following disclaimer.
9  *    2. Redistributions in binary form must reproduce the above copyright
10  *       notice, this list of conditions and the following disclaimer in the
11  *       documentation and/or other materials provided with the distribution.
12  *    3. Neither the name of the copyright holder nor the
13  *       names of its contributors may be used to endorse or promote products
14  *       derived from this software without specific prior written permission.
15  *
16  *    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  *    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  *    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  *    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  *    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  *    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  *    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  *    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  *    POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #include <gmock/gmock.h>
30 #include <gtest/gtest.h>
31 
32 #include <cstring>
33 #include <ifaddrs.h>
34 #include <iostream>
35 #include <net/if.h>
36 #include <netinet/in.h>
37 #include <stdio.h>
38 #include <stdlib.h>
39 #include <string.h>
40 #include <string>
41 #include <sys/ioctl.h>
42 #include <sys/socket.h>
43 #include <sys/types.h>
44 #include <vector>
45 
46 #include <openthread/ip6.h>
47 
48 #include "common/types.hpp"
49 #include "host/posix/cli_daemon.hpp"
50 
51 // Only Test on linux platform for now.
52 #ifdef __linux__
53 
TEST(CliDaemon,InitSocketCreationWithFullNetIfName)54 TEST(CliDaemon, InitSocketCreationWithFullNetIfName)
55 {
56     const char *netIfName  = "tun0";
57     const char *socketFile = "/run/openthread-tun0.sock";
58     const char *lockFile   = "/run/openthread-tun0.lock";
59 
60     otbr::CliDaemon cliDaemon;
61     cliDaemon.Init(netIfName);
62 
63     struct stat st;
64 
65     EXPECT_EQ(stat(socketFile, &st), 0);
66     EXPECT_EQ(stat(lockFile, &st), 0);
67 }
68 
TEST(CliDaemon,InitSocketCreationWithEmptyNetIfName)69 TEST(CliDaemon, InitSocketCreationWithEmptyNetIfName)
70 {
71     const char *socketFile = "/run/openthread-wpan0.sock";
72     const char *lockFile   = "/run/openthread-wpan0.lock";
73 
74     otbr::CliDaemon cliDaemon;
75     cliDaemon.Init("");
76 
77     struct stat st;
78 
79     EXPECT_EQ(stat(socketFile, &st), 0);
80     EXPECT_EQ(stat(lockFile, &st), 0);
81 }
82 
83 #endif // __linux__
84