aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/macOS.yml15
-rw-r--r--Android.bp11
-rw-r--r--etc/docker/Dockerfile2
-rw-r--r--src/agent/main.cpp18
-rw-r--r--src/border_agent/border_agent.cpp3
-rw-r--r--src/common/logging.cpp40
-rw-r--r--src/common/logging.hpp13
-rw-r--r--src/mdns/mdns_avahi.cpp12
-rw-r--r--src/mdns/mdns_mdnssd.cpp4
-rw-r--r--src/ncp/ncp_openthread.cpp12
-rw-r--r--src/openwrt/ubus/otubus.cpp4
-rw-r--r--src/sdp_proxy/discovery_proxy.cpp10
-rw-r--r--src/web/main.cpp2
-rw-r--r--tests/mdns/main.cpp2
-rw-r--r--tests/mdns/test_subscribe.cpp2
-rw-r--r--tests/unit/test_logging.cpp24
16 files changed, 115 insertions, 59 deletions
diff --git a/.github/workflows/macOS.yml b/.github/workflows/macOS.yml
index 11f1566c..a99adde8 100644
--- a/.github/workflows/macOS.yml
+++ b/.github/workflows/macOS.yml
@@ -49,18 +49,13 @@ jobs:
submodules: true
- name: Bootstrap
run: |
- rm -f /usr/local/bin/2to3
- rm -f /usr/local/bin/2to3-3.11
- rm -f /usr/local/bin/idle3
- rm -f /usr/local/bin/idle3.11
- rm -f /usr/local/bin/pydoc3
- rm -f /usr/local/bin/pydoc3.11
- rm -f /usr/local/bin/python3
- rm -f /usr/local/bin/python3.11
- rm -f /usr/local/bin/python3-config
- rm -f /usr/local/bin/python3.11-config
+ rm -f /usr/local/bin/2to3*
+ rm -f /usr/local/bin/idle3*
+ rm -f /usr/local/bin/pydoc3*
+ rm -f /usr/local/bin/python3*
brew update
brew reinstall boost cmake cpputest dbus jsoncpp ninja protobuf@21 pkg-config
+ brew upgrade node
- name: Build
run: |
OTBR_OPTIONS="-DOTBR_BORDER_AGENT=OFF \
diff --git a/Android.bp b/Android.bp
index 7cf0bb77..f6ba8a5a 100644
--- a/Android.bp
+++ b/Android.bp
@@ -134,7 +134,9 @@ cc_defaults {
"-DOTBR_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1",
"-DOTBR_CONFIG_FILE=\"src/android/otbr-config-android.h\"",
"-DOTBR_ENABLE_VENDOR_SERVER=1", // for OtDaemonServer
+ "-DOTBR_ENABLE_BACKBONE_ROUTER=1",
"-DOTBR_ENABLE_BORDER_ROUTING=1",
+ "-DOTBR_ENABLE_BORDER_ROUTING_COUNTERS=1",
"-DOTBR_ENABLE_BORDER_AGENT=1",
"-DOTBR_ENABLE_PUBLISH_MESHCOP_BA_ID=1",
// Used for bypassing the macro check. In fact mdnssd is not used because we don't compile
@@ -145,6 +147,14 @@ cc_defaults {
"-DOTBR_ENABLE_SRP_SERVER_AUTO_ENABLE_MODE=1",
"-DOTBR_PACKAGE_NAME=\"OTBR_AGENT\"",
"-DOTBR_STOP_BORDER_AGENT_ON_INIT=1",
+ // The platform specific rules for selecting infrastructure link do not apply to Android
+ "-DOTBR_ENABLE_VENDOR_INFRA_LINK_SELECT=0",
+
+ // Disable 1.4 features, they are not supported on Android yet.
+ "-DOTBR_ENABLE_NAT64=0",
+ "-DOTBR_ENABLE_DNS_UPSTREAM_QUERY=0",
+ "-DOTBR_ENABLE_DHCP6_PD=0",
+ "-DOTBR_ENABLE_TREL=0",
],
srcs: [
@@ -152,6 +162,7 @@ cc_defaults {
"src/android/mdns_publisher.cpp",
"src/android/otdaemon_server.cpp",
"src/android/otdaemon_telemetry.cpp",
+ "src/backbone_router/backbone_agent.cpp",
"src/border_agent/border_agent.cpp",
"src/ncp/ncp_openthread.cpp",
"src/sdp_proxy/advertising_proxy.cpp",
diff --git a/etc/docker/Dockerfile b/etc/docker/Dockerfile
index eef7a948..08f160c8 100644
--- a/etc/docker/Dockerfile
+++ b/etc/docker/Dockerfile
@@ -78,7 +78,7 @@ ENV OTBR_BUILD_DEPS apt-utils build-essential psmisc ninja-build cmake wget ca-c
libnetfilter-queue-dev
# Required for OpenThread Backbone CI
-ENV OTBR_OT_BACKBONE_CI_DEPS curl lcov wget build-essential python3-dbus python3-zeroconf
+ENV OTBR_OT_BACKBONE_CI_DEPS curl lcov wget build-essential python3-dbus python3-zeroconf socat
# Required and installed during build (script/bootstrap) when RELEASE=1, could be removed
ENV OTBR_NORELEASE_DEPS \
diff --git a/src/agent/main.cpp b/src/agent/main.cpp
index 4ed5e277..776c3e72 100644
--- a/src/agent/main.cpp
+++ b/src/agent/main.cpp
@@ -70,6 +70,7 @@ enum
OTBR_OPT_HELP = 'h',
OTBR_OPT_INTERFACE_NAME = 'I',
OTBR_OPT_VERBOSE = 'v',
+ OTBR_OPT_SYSLOG_DISABLE = 's',
OTBR_OPT_VERSION = 'V',
OTBR_OPT_SHORTMAX = 128,
OTBR_OPT_RADIO_VERSION,
@@ -90,6 +91,7 @@ static const struct option kOptions[] = {
{"help", no_argument, nullptr, OTBR_OPT_HELP},
{"thread-ifname", required_argument, nullptr, OTBR_OPT_INTERFACE_NAME},
{"verbose", no_argument, nullptr, OTBR_OPT_VERBOSE},
+ {"syslog-disable", no_argument, nullptr, OTBR_OPT_SYSLOG_DISABLE},
{"version", no_argument, nullptr, OTBR_OPT_VERSION},
{"radio-version", no_argument, nullptr, OTBR_OPT_RADIO_VERSION},
{"auto-attach", optional_argument, nullptr, OTBR_OPT_AUTO_ATTACH},
@@ -136,9 +138,10 @@ static std::vector<char *> AppendAutoAttachDisableArg(int argc, char *argv[])
static void PrintHelp(const char *aProgramName)
{
fprintf(stderr,
- "Usage: %s [-I interfaceName] [-B backboneIfName] [-d DEBUG_LEVEL] [-v] [--auto-attach[=0/1]] RADIO_URL "
- "[RADIO_URL]\n"
- " --auto-attach defaults to 1\n",
+ "Usage: %s [-I interfaceName] [-B backboneIfName] [-d DEBUG_LEVEL] [-v] [-s] [--auto-attach[=0/1]] "
+ "RADIO_URL [RADIO_URL]\n"
+ " --auto-attach defaults to 1\n"
+ " -s disables syslog and prints to standard out\n",
aProgramName);
fprintf(stderr, "%s", otSysGetRadioUrlHelpString());
}
@@ -195,6 +198,7 @@ static int realmain(int argc, char *argv[])
int ret = EXIT_SUCCESS;
const char *interfaceName = kDefaultInterfaceName;
bool verbose = false;
+ bool syslogDisable = false;
bool printRadioVersion = false;
bool enableAutoAttach = true;
const char *restListenAddress = "";
@@ -205,7 +209,7 @@ static int realmain(int argc, char *argv[])
std::set_new_handler(OnAllocateFailed);
- while ((opt = getopt_long(argc, argv, "B:d:hI:Vv", kOptions, nullptr)) != -1)
+ while ((opt = getopt_long(argc, argv, "B:d:hI:Vvs", kOptions, nullptr)) != -1)
{
switch (opt)
{
@@ -228,6 +232,10 @@ static int realmain(int argc, char *argv[])
verbose = true;
break;
+ case OTBR_OPT_SYSLOG_DISABLE:
+ syslogDisable = true;
+ break;
+
case OTBR_OPT_VERSION:
PrintVersion();
ExitNow();
@@ -269,7 +277,7 @@ static int realmain(int argc, char *argv[])
}
}
- otbrLogInit(argv[0], logLevel, verbose);
+ otbrLogInit(argv[0], logLevel, verbose, syslogDisable);
otbrLogNotice("Running %s", OTBR_PACKAGE_VERSION);
otbrLogNotice("Thread version: %s", otbr::Ncp::ControllerOpenThread::GetThreadVersion());
otbrLogNotice("Thread interface: %s", interfaceName);
diff --git a/src/border_agent/border_agent.cpp b/src/border_agent/border_agent.cpp
index c2becdef..b6acf18c 100644
--- a/src/border_agent/border_agent.cpp
+++ b/src/border_agent/border_agent.cpp
@@ -143,6 +143,7 @@ BorderAgent::BorderAgent(otbr::Ncp::ControllerOpenThread &aNcp, Mdns::Publisher
, mProductName(OTBR_PRODUCT_NAME)
, mBaseServiceInstanceName(OTBR_MESHCOP_SERVICE_INSTANCE_NAME)
{
+ mNcp.AddThreadStateChangedCallback([this](otChangedFlags aFlags) { HandleThreadStateChanged(aFlags); });
}
otbrError BorderAgent::SetMeshCopServiceValues(const std::string &aServiceInstanceName,
@@ -186,8 +187,6 @@ void BorderAgent::Start(void)
{
otbrLogInfo("Start Thread Border Agent");
- mNcp.AddThreadStateChangedCallback([this](otChangedFlags aFlags) { HandleThreadStateChanged(aFlags); });
-
#if OTBR_ENABLE_DBUS_SERVER
mNcp.GetThreadHelper()->SetUpdateMeshCopTxtHandler([this](std::map<std::string, std::vector<uint8_t>> aUpdate) {
HandleUpdateVendorMeshCoPTxtEntries(std::move(aUpdate));
diff --git a/src/common/logging.cpp b/src/common/logging.cpp
index 5a787e82..c5f70185 100644
--- a/src/common/logging.cpp
+++ b/src/common/logging.cpp
@@ -53,6 +53,7 @@ static otbrLogLevel sLevel = OTBR_LOG_INFO;
static const char sLevelString[][8] = {
"[EMERG]", "[ALERT]", "[CRIT]", "[ERR ]", "[WARN]", "[NOTE]", "[INFO]", "[DEBG]",
};
+static bool sSyslogDisabled = false;
static otbrLogLevel sDefaultLevel = OTBR_LOG_INFO;
@@ -77,8 +78,14 @@ void otbrLogSetLevel(otbrLogLevel aLevel)
sLevel = aLevel;
}
+/** Enable/disable logging with syslog */
+void otbrLogSyslogSetEnabled(bool aEnabled)
+{
+ sSyslogDisabled = !aEnabled;
+}
+
/** Initialize logging */
-void otbrLogInit(const char *aProgramName, otbrLogLevel aLevel, bool aPrintStderr)
+void otbrLogInit(const char *aProgramName, otbrLogLevel aLevel, bool aPrintStderr, bool aSyslogDisable)
{
const char *ident;
@@ -88,7 +95,12 @@ void otbrLogInit(const char *aProgramName, otbrLogLevel aLevel, bool aPrintStder
ident = strrchr(aProgramName, '/');
ident = (ident != nullptr) ? ident + 1 : aProgramName;
- openlog(ident, (LOG_CONS | LOG_PID) | (aPrintStderr ? LOG_PERROR : 0), OTBR_SYSLOG_FACILITY_ID);
+ otbrLogSyslogSetEnabled(!aSyslogDisable);
+
+ if (!sSyslogDisabled)
+ {
+ openlog(ident, (LOG_CONS | LOG_PID) | (aPrintStderr ? LOG_PERROR : 0), OTBR_SYSLOG_FACILITY_ID);
+ }
sLevel = aLevel;
sDefaultLevel = sLevel;
}
@@ -118,7 +130,7 @@ static const char *GetPrefix(const char *aLogTag)
return prefix;
}
-/** log to the syslog or log file */
+/** log to the syslog or standard out */
void otbrLog(otbrLogLevel aLevel, const char *aLogTag, const char *aFormat, ...)
{
const uint16_t kBufferSize = 1024;
@@ -129,7 +141,14 @@ void otbrLog(otbrLogLevel aLevel, const char *aLogTag, const char *aFormat, ...)
if ((aLevel <= sLevel) && (vsnprintf(buffer, sizeof(buffer), aFormat, ap) > 0))
{
- syslog(static_cast<int>(aLevel), "%s%s: %s", sLevelString[aLevel], GetPrefix(aLogTag), buffer);
+ if (sSyslogDisabled)
+ {
+ printf("%s%s: %s\n", sLevelString[aLevel], GetPrefix(aLogTag), buffer);
+ }
+ else
+ {
+ syslog(static_cast<int>(aLevel), "%s%s: %s", sLevelString[aLevel], GetPrefix(aLogTag), buffer);
+ }
}
va_end(ap);
@@ -137,7 +156,7 @@ void otbrLog(otbrLogLevel aLevel, const char *aLogTag, const char *aFormat, ...)
return;
}
-/** log to the syslog or log file */
+/** log to the syslog or standard out */
void otbrLogv(otbrLogLevel aLevel, const char *aFormat, va_list aArgList)
{
assert(aFormat);
@@ -148,9 +167,18 @@ void otbrLogv(otbrLogLevel aLevel, const char *aFormat, va_list aArgList)
}
}
+/** log to the syslog or standard out */
void otbrLogvNoFilter(otbrLogLevel aLevel, const char *aFormat, va_list aArgList)
{
- vsyslog(static_cast<int>(aLevel), aFormat, aArgList);
+ if (sSyslogDisabled)
+ {
+ vprintf(aFormat, aArgList);
+ printf("\n");
+ }
+ else
+ {
+ vsyslog(static_cast<int>(aLevel), aFormat, aArgList);
+ }
}
/** Hex dump data to the log */
diff --git a/src/common/logging.hpp b/src/common/logging.hpp
index 0acdf87a..ad36d4f5 100644
--- a/src/common/logging.hpp
+++ b/src/common/logging.hpp
@@ -78,20 +78,21 @@ void otbrLogSetLevel(otbrLogLevel aLevel);
/**
* Control log to syslog.
*
- * @param[in] enable True to log to/via syslog.
+ * @param[in] aEnabled True to enable logging to/via syslog.
*
*/
-void otbrLogEnableSyslog(bool aEnabled);
+void otbrLogSyslogSetEnabled(bool aEnabled);
/**
* This function initialize the logging service.
*
- * @param[in] aProgramName The name of this runnable program.
- * @param[in] aLevel Log level of the logger.
- * @param[in] aPrintStderr Whether to log to stderr.
+ * @param[in] aProgramName The name of this runnable program.
+ * @param[in] aLevel Log level of the logger.
+ * @param[in] aPrintStderr Whether to log to stderr.
+ * @param[in] aSyslogDisable Whether to disable logging to syslog.
*
*/
-void otbrLogInit(const char *aProgramName, otbrLogLevel aLevel, bool aPrintStderr);
+void otbrLogInit(const char *aProgramName, otbrLogLevel aLevel, bool aPrintStderr, bool aSyslogDisable);
/**
* This function log at level @p aLevel.
diff --git a/src/mdns/mdns_avahi.cpp b/src/mdns/mdns_avahi.cpp
index ba01519e..2f3984d7 100644
--- a/src/mdns/mdns_avahi.cpp
+++ b/src/mdns/mdns_avahi.cpp
@@ -570,10 +570,6 @@ void PublisherAvahi::HandleGroupState(AvahiEntryGroup *aGroup, AvahiEntryGroupSt
case AVAHI_ENTRY_GROUP_UNCOMMITED:
case AVAHI_ENTRY_GROUP_REGISTERING:
break;
-
- default:
- assert(false);
- break;
}
}
@@ -696,10 +692,6 @@ void PublisherAvahi::HandleClientState(AvahiClient *aClient, AvahiClientState aS
case AVAHI_CLIENT_CONNECTING:
otbrLogInfo("Avahi client is connecting to the server");
break;
-
- default:
- assert(false);
- break;
}
}
@@ -1047,7 +1039,7 @@ void PublisherAvahi::UnsubscribeService(const std::string &aType, const std::str
return aService->mType == aType && aService->mInstanceName == aInstanceName;
});
- assert(it != mSubscribedServices.end());
+ VerifyOrExit(it != mSubscribedServices.end());
{
std::unique_ptr<ServiceSubscription> service = std::move(*it);
@@ -1106,7 +1098,7 @@ void PublisherAvahi::UnsubscribeHost(const std::string &aHostName)
mSubscribedHosts.begin(), mSubscribedHosts.end(),
[&aHostName](const std::unique_ptr<HostSubscription> &aHost) { return aHost->mHostName == aHostName; });
- assert(it != mSubscribedHosts.end());
+ VerifyOrExit(it != mSubscribedHosts.end());
{
std::unique_ptr<HostSubscription> host = std::move(*it);
diff --git a/src/mdns/mdns_mdnssd.cpp b/src/mdns/mdns_mdnssd.cpp
index b820f4c9..689634a6 100644
--- a/src/mdns/mdns_mdnssd.cpp
+++ b/src/mdns/mdns_mdnssd.cpp
@@ -948,7 +948,7 @@ void PublisherMDnsSd::UnsubscribeService(const std::string &aType, const std::st
[&aType, &aInstanceName](const std::unique_ptr<ServiceSubscription> &aService) {
return aService->mType == aType && aService->mInstanceName == aInstanceName;
});
- assert(it != mSubscribedServices.end());
+ VerifyOrExit(it != mSubscribedServices.end());
mSubscribedServices.erase(it);
@@ -998,7 +998,7 @@ void PublisherMDnsSd::UnsubscribeHost(const std::string &aHostName)
mSubscribedHosts.begin(), mSubscribedHosts.end(),
[&aHostName](const std::unique_ptr<HostSubscription> &aHost) { return aHost->mHostName == aHostName; });
- assert(it != mSubscribedHosts.end());
+ VerifyOrExit(it != mSubscribedHosts.end());
mSubscribedHosts.erase(it);
diff --git a/src/ncp/ncp_openthread.cpp b/src/ncp/ncp_openthread.cpp
index 84a86014..df3dcd5f 100644
--- a/src/ncp/ncp_openthread.cpp
+++ b/src/ncp/ncp_openthread.cpp
@@ -60,10 +60,10 @@
namespace otbr {
namespace Ncp {
-static const uint16_t kThreadVersion11 = 2; ///< Thread Version 1.1
-static const uint16_t kThreadVersion12 = 3; ///< Thread Version 1.2
-static const uint16_t kThreadVersion13 = 4; ///< Thread Version 1.3
-static const uint16_t kThreadVersion131 = 5; ///< Thread Version 1.3.1
+static const uint16_t kThreadVersion11 = 2; ///< Thread Version 1.1
+static const uint16_t kThreadVersion12 = 3; ///< Thread Version 1.2
+static const uint16_t kThreadVersion13 = 4; ///< Thread Version 1.3
+static const uint16_t kThreadVersion14 = 5; ///< Thread Version 1.4
ControllerOpenThread::ControllerOpenThread(const char *aInterfaceName,
const std::vector<const char *> &aRadioUrls,
@@ -388,8 +388,8 @@ const char *ControllerOpenThread::GetThreadVersion(void)
case kThreadVersion13:
version = "1.3.0";
break;
- case kThreadVersion131:
- version = "1.3.1";
+ case kThreadVersion14:
+ version = "1.4";
break;
default:
otbrLogEmerg("Unexpected thread version %hu", otThreadGetVersion());
diff --git a/src/openwrt/ubus/otubus.cpp b/src/openwrt/ubus/otubus.cpp
index 4d807a9c..4dfaac2a 100644
--- a/src/openwrt/ubus/otubus.cpp
+++ b/src/openwrt/ubus/otubus.cpp
@@ -1190,8 +1190,10 @@ int UbusServer::UbusGetInformation(struct ubus_context *aContext,
ubus_send_reply(aContext, aRequest, mNetworkdataBuf.head);
if (time(nullptr) - mSecond > 10)
{
+ static constexpr uint16_t kMaxTlvs = 35;
+
struct otIp6Address address;
- uint8_t tlvTypes[OT_NETWORK_DIAGNOSTIC_TYPELIST_MAX_ENTRIES];
+ uint8_t tlvTypes[kMaxTlvs];
uint8_t count = 0;
char multicastAddr[10] = "ff03::2";
diff --git a/src/sdp_proxy/discovery_proxy.cpp b/src/sdp_proxy/discovery_proxy.cpp
index 0cf57333..ea0072aa 100644
--- a/src/sdp_proxy/discovery_proxy.cpp
+++ b/src/sdp_proxy/discovery_proxy.cpp
@@ -214,11 +214,9 @@ void DiscoveryProxy::OnServiceDiscovered(const std::string
{
case OT_DNSSD_QUERY_TYPE_BROWSE:
splitError = SplitFullServiceName(queryName, serviceName, domain);
- assert(splitError == OTBR_ERROR_NONE);
break;
case OT_DNSSD_QUERY_TYPE_RESOLVE:
splitError = SplitFullServiceInstanceName(queryName, instanceName, serviceName, domain);
- assert(splitError == OTBR_ERROR_NONE);
break;
default:
splitError = OTBR_ERROR_NOT_FOUND;
@@ -226,6 +224,7 @@ void DiscoveryProxy::OnServiceDiscovered(const std::string
}
if (splitError != OTBR_ERROR_NONE)
{
+ // Incoming service/instance was not what current query wanted to see, move on.
continue;
}
@@ -284,8 +283,13 @@ void DiscoveryProxy::OnHostDiscovered(const std::string
{
continue;
}
+
splitError = SplitFullHostName(queryName, hostName, domain);
- assert(splitError == OTBR_ERROR_NONE);
+
+ if (splitError != OTBR_ERROR_NONE)
+ {
+ continue;
+ }
if (DnsLabelsEqual(hostName, aHostName))
{
diff --git a/src/web/main.cpp b/src/web/main.cpp
index 4e25e058..922038d8 100644
--- a/src/web/main.cpp
+++ b/src/web/main.cpp
@@ -111,7 +111,7 @@ int main(int argc, char **argv)
}
}
- otbrLogInit(argv[0], logLevel, true);
+ otbrLogInit(argv[0], logLevel, true, false);
otbrLogInfo("Running %s", OTBR_PACKAGE_VERSION);
if (interfaceName == nullptr)
diff --git a/tests/mdns/main.cpp b/tests/mdns/main.cpp
index e8fe3552..acf8777c 100644
--- a/tests/mdns/main.cpp
+++ b/tests/mdns/main.cpp
@@ -482,7 +482,7 @@ int main(int argc, char *argv[])
return 1;
}
- otbrLogInit("otbr-mdns", OTBR_LOG_DEBUG, true);
+ otbrLogInit("otbr-mdns", OTBR_LOG_DEBUG, true, false);
// allow quitting elegantly
signal(SIGTERM, RecoverSignal);
switch (argv[1][0])
diff --git a/tests/mdns/test_subscribe.cpp b/tests/mdns/test_subscribe.cpp
index 554a33f0..b01be3eb 100644
--- a/tests/mdns/test_subscribe.cpp
+++ b/tests/mdns/test_subscribe.cpp
@@ -130,7 +130,7 @@ Ip6Address sAddr4;
void SetUp(void)
{
- otbrLogInit("test-mdns-subscriber", OTBR_LOG_INFO, true);
+ otbrLogInit("test-mdns-subscriber", OTBR_LOG_INFO, true, false);
SuccessOrDie(Ip6Address::FromString("2002::1", sAddr1), "");
SuccessOrDie(Ip6Address::FromString("2002::2", sAddr2), "");
SuccessOrDie(Ip6Address::FromString("2002::3", sAddr3), "");
diff --git a/tests/unit/test_logging.cpp b/tests/unit/test_logging.cpp
index 30bd476c..c2997035 100644
--- a/tests/unit/test_logging.cpp
+++ b/tests/unit/test_logging.cpp
@@ -43,7 +43,7 @@ TEST(Logging, TestLoggingHigherLevel)
char ident[20];
snprintf(ident, sizeof(ident), "otbr-test-%ld", clock());
- otbrLogInit(ident, OTBR_LOG_INFO, true);
+ otbrLogInit(ident, OTBR_LOG_INFO, true, false);
otbrLog(OTBR_LOG_DEBUG, OTBR_LOG_TAG, "cool-higher");
otbrLogDeinit();
sleep(0);
@@ -58,7 +58,7 @@ TEST(Logging, TestLoggingEqualLevel)
char ident[20];
snprintf(ident, sizeof(ident), "otbr-test-%ld", clock());
- otbrLogInit(ident, OTBR_LOG_INFO, true);
+ otbrLogInit(ident, OTBR_LOG_INFO, true, false);
otbrLog(OTBR_LOG_INFO, OTBR_LOG_TAG, "cool-equal");
otbrLogDeinit();
sleep(0);
@@ -69,13 +69,29 @@ TEST(Logging, TestLoggingEqualLevel)
CHECK(0 == system(cmd));
}
+TEST(Logging, TestLoggingEqualLevelNoSyslog)
+{
+ char ident[20];
+
+ snprintf(ident, sizeof(ident), "otbr-test-%ld", clock());
+ otbrLogInit(ident, OTBR_LOG_INFO, true, true);
+ otbrLog(OTBR_LOG_INFO, OTBR_LOG_TAG, "cool-equal");
+ otbrLogDeinit();
+ sleep(0);
+
+ char cmd[128];
+ snprintf(cmd, sizeof(cmd), "grep '%s.*cool-equal' /var/log/syslog", ident);
+ printf("CMD = %s\n", cmd);
+ CHECK(0 != system(cmd));
+}
+
TEST(Logging, TestLoggingLowerLevel)
{
char ident[20];
char cmd[128];
snprintf(ident, sizeof(ident), "otbr-test-%ld", clock());
- otbrLogInit(ident, OTBR_LOG_INFO, true);
+ otbrLogInit(ident, OTBR_LOG_INFO, true, false);
otbrLog(OTBR_LOG_WARNING, OTBR_LOG_TAG, "cool-lower");
otbrLogDeinit();
sleep(0);
@@ -90,7 +106,7 @@ TEST(Logging, TestLoggingDump)
char cmd[128];
snprintf(ident, sizeof(ident), "otbr-test-%ld", clock());
- otbrLogInit(ident, OTBR_LOG_DEBUG, true);
+ otbrLogInit(ident, OTBR_LOG_DEBUG, true, false);
const char s[] = "one super long string with lots of text";
otbrDump(OTBR_LOG_INFO, "Test", "foobar", s, sizeof(s));
otbrLogDeinit();