From patchwork Wed Feb 26 20:48:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1245321 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=W379mkb5; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48SSZT01Rxz9sPR for ; Thu, 27 Feb 2020 07:48:48 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 945B380561; Wed, 26 Feb 2020 21:48:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="W379mkb5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 29D5F80671; Wed, 26 Feb 2020 21:48:29 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 8753C80257 for ; Wed, 26 Feb 2020 21:48:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1582750105; bh=AR0Nd1dlr/ezdrokTsoceZVAaTy/Vi8G51f2JMhHgu0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=W379mkb5ejfEHYaORcJUvshf+/I4j3FsTnd+n/lOSFV4GsjPo0+rsA71rNs36hSCv i2JwZ8/y2lwCucBDlO55P0444MZRYdKW9gQPc1dbVWH2HJvKC12kwy2bt7W+2pMco4 tofUWntKrPx1x5sQiUHweqF2VIu8oe9KxBQBhILA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MFKGP-1jDwIK0dEv-00Fj4e; Wed, 26 Feb 2020 21:48:25 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v5 1/6] log: correct CONFIG_LOG_TEST prerequisites Date: Wed, 26 Feb 2020 21:48:15 +0100 Message-Id: <20200226204820.17376-2-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226204820.17376-1-xypron.glpk@gmx.de> References: <20200226204820.17376-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:4I+epZhdLJm/spj6kd3DiSwEq6OdkCGhDDvix+BEuz9fpgWqRaN sENKLdLF5gTgQO0wkgN/q3wTt9J7R7NSlB4tB4ZAtYWZN1+Akl12MMpakD+kC6Z8zfNPMRQ KNMYIeE1CVbrqsBeBoEnPT4/4fS+Qc58UZCPy1ytgaTnoym6mW03HVIfhqob6Vlu5dOSl9+ 91NnEDJVzq0ADjRNwPH8A== X-UI-Out-Filterresults: notjunk:1; V03:K0:bNSmUDpBxtA=:PEumSAFk9f832xmXrlXLYd 8hcKAb+sl78jG/VzSyolxYi6FvaA807+A+ebcZ8M6C182yeJ0602Iwj2y8wg56BiMQpbk0K/b MGaf47VvyenlD0I3nbeM1wvCGKT/qFaiCA58e+bL0rWm8jP4D8NInqIHQjlYYWX0/9xTR4X9I Bk83IfWKi7jr9qVaiNR6ZMlOev/yQzKKQhufsAc/OiJe2ltEEj9rrDZvxASDG3FW608RcM6/e zTEJQPJUrtstjIWNwGEGlrR5KaK5/3ZFSx+91o4yHu8Zzf5WXTmoa63pKt6jtkqVP++8+3Y7V h9GgFAtgh+Qxeex/V8BQNMQnNIpGlaQvo/MOBB7WnGyuYvzkS/X8CbCB9CHZGKHlYQsBqPIYC yDrWHKIcB5DQQWzs6zwq/OcJhV34bWFtrpOSaxuPfSEBXitApdAD6p2eA1zYbBvMdKPSNCzYc xoqBTAmurMCn6Rs+Q669XyjMMheBVXw0LCsyGSCAOezkz/F+pVjuH9DZVVjJey2iN1aACAS2f lbG3FVARmuGrZQIUqwaSuospPtdRuWItCxK5jNonI7LEcMpn8lWFFTXDpk4w2qskgKvyoRoI4 hjuC/XMC7qehllcJ6Hwr16uqhMfyEvHIOoQOaJFGSfBUDoAEg49/7VIkXHkPLx9piEV3iLSbm OgFgvAGbnluX6kkaf4yY+9q0f4Q8ANkwbEAvLqSeS5fKpDoIjgkkidEN8I1NfGNRotnM/iKat /ffz6fet3lUU1WymCO3/MVQqIOPR1WW9RIJaBs+Y5vVuRPXkwV+Dd7pWxDGNbJEQgVNyU9Wuv RULIfDM8bJYMHkuo0mij+MaFMzzjK/m0haojBu9OCXWXQ+jVAYxvAUvmfkM4Lz0baTlqMBb1o uXsrP2QTpzolZQZAUs0evLSOzPF1oa62biOtzVBJAkQqpVRPkx2V6U+0KnkEsM0GjUzLCE9Cm evn1k7sZrqhUOecFGbhysZPZks9v33ka6g8I8ynyVZ1hrJjZHXq9kvfHHWWc5PlVYnIRqznCA rzYmTJOQeRucpj6CcyFuITMG/rwXRTRqGcBTG29sTzYTccgta/BsIenkLAgf/MruE65Siw9Or 7ozhONtkmy7vI5xIx/UB/KC1X+0xhhonVY1i3eL5LGhYrXYcgUP+ijxgD873Mkv7K+TKZv7ay uDt4Fr0HORcGYj1WBRbhlxSRZbuf7uFO3R8GHcqImpTakXQaKLHErJZitXrV+6jSxKI4cfTEx LqXQ10Iw41f0GoUxG X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean An error undefined reference to `do_log_test' occurs for CONFIG_CMD_LOG=y, CONFIG_LOG_TEST=y, CONGIG_UNIT_TEST=n Make CONFIG_UNIT_TEST a prerequisite. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- v5: no change v4: no change --- common/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.25.0 diff --git a/common/Kconfig b/common/Kconfig index 46e4193fc8..cedd353e89 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -776,7 +776,7 @@ config TPL_LOG_CONSOLE config LOG_TEST bool "Provide a test for logging" - depends on LOG + depends on LOG && UNIT_TEST default y if SANDBOX help This enables a 'log test' command to test logging. It is normally From patchwork Wed Feb 26 20:48:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1245325 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=LaEADKvE; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48SSbC5wqfz9sPK for ; Thu, 27 Feb 2020 07:49:27 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1358880EC2; Wed, 26 Feb 2020 21:48:48 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="LaEADKvE"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3550D80396; Wed, 26 Feb 2020 21:48:33 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9C84380396 for ; Wed, 26 Feb 2020 21:48:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1582750105; bh=vW65iJ2f8m1nr89ith/jRraIebQJ4IWaZRIsocPCNXE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=LaEADKvE0Zw17D/cbtmtTKaP8JuzxW020rPFvxtrIr2ie+9zwWakGluhpjn5/hui3 09gScZa//G2RN+ibt2SEO2iI97zIQYq+PaHFLQSYWKnfLkYRAZLw6Q+uyGSkS/dNS/ jzHMIpKFrUl3y/JHy4/uTZQ7pyGmGPEwHGOHOS5o= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MF3HU-1jDfJR1h6W-00FRxV; Wed, 26 Feb 2020 21:48:25 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v5 2/6] log: syslog driver Date: Wed, 26 Feb 2020 21:48:16 +0100 Message-Id: <20200226204820.17376-3-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226204820.17376-1-xypron.glpk@gmx.de> References: <20200226204820.17376-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:z8kp7oRiCeSy0ZiWAfIRyL+1sWJY9nJswXpwfwNjqAhZopf3T6X VPUxPVFZ9cSMY3jfTryWgW0XklSQANKTa2M2P8sKOiXEqfJB4Y9oKCk53AVE+7RVvuyDZba tDRRvjzPKWbdcM/xgBvvfwga54BZE8QSeprHr/aMOyvINniUW/Trl6hI8R/QpKugqBAUi7H gzVs4gB1De+ZpYb7sKBCQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:slmoQJV+2kM=:OyNRfs5NvsM18zzs0h1Jx5 FsumrNUVSQgu9+vO1i/YKD+lGo3Q8+4JxTxAfGFmQj9jp9CWMT0IcCpE5uGf1mQHNza+bhVVM PeLAjKjLA92ErDmmOhGxSgE/Z0Rp1415qptI/ioIfHAiSVLE7eYNkeiZh4JmJ9XT4/ahR8p0I oMRpxwBuAKfZ1hg1yeEfk0JKx1jtMh+nEjKqQg4kfUaDKCzuC+qYj30xqT1n6dZEgddJqFovG 5tJzZ1wgtsR5yOqwCfVs4JkJufmtvNsRw6Um8vQS8Rk6XF9rlzIFZOLhWSgYLFXhpQTcvSmb1 hjOz4g9nNa3RNRw9rbZfl8ktyuYFOl56lNE6rZ3HDnTRbCeKYixedtoWGh07GBvZOQIEAUATJ YoBt0IsuT3ZD5Xd3NsOlcqegJh2QXoHu/L93iu4qm414YbFg1RHoiNd7zk8+625xyu9rVqCcg MP438YcwPGOIFWtVnLbL81+v0wzexUlWi1sbWE+wO8ThJdf4acLXxOyPGHeR+l54jP8LhWe0j lY1FMj0td8tOEdzOCQScZKceY05wx5YctHo+UqP6+kt6pmG7fIMMKZmN/lEJzFgz++iw4VtR7 V1AVbrj02OzifVHdEGkS6Z+5WF3Gjj4AQYLcam3tKG3ojWjVgjnZrK9MZMMH3LOGmPOb/1FAn xR3FTCqqsn6FjXmptQc8wcAIdmQxN5jr/ATWgDFf4+49VUdyg+mfU2jo+w09el4msF03E955/ v/H6W3aG2F+Y0Hmo9LLxjiR8fks8ZyRs5UQb2J2STdtojm14NcIlHOeHajK+pkgm3d/7cMhux Pa0tTZiGet3JO+ixUubnxc4QuoJ36oNsibaAuj2snQJ4VKD6Xera9y+zByic/D8QF/3D1jzvL CraZNj6s5rpmiNH85eslLObK8PSaU7xMJHluXcozNqXNEqUH0L2STnrRih2w8zJd5HtmBR68O RRilVBt4Yo84x4Hs31+9GC5QXRuoQG/y36vJVOVbVwueIcFey/4jmw+zd6rAtxL0CIiJlLqVn QGcdBGrQyG/L7RKIDYKCkhBX4DXs5GlkHifnINWxqQdiTxxQ1UN3ZRqhDhPynHbtQ6Bpuwn8H 6cKMRid1unl4vT+D3vBHDIJN6MBwFF16FtgZlO/qhGG448SBdDlKR2eekBkmGt3xoYK/rffFN PvNmicMXBTDhU6dfSHZbyI5LmXUWUfh3ZR4Z9IyouKxrD/AJ+BrAVXtsRfyDKblGBJAbH4DaY Al7SoRUzfROaIvVnR X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean Provide a log driver that broadcasts RFC 3164 messages to syslog servers. rsyslog is one implementation of such a server. The messages are sent to the local broadcast address 255.255.255.255 on port 514. The environment variable log_hostname can be used to provide the HOSTNAME field for the messages. The optional TIMESTAMP field of RFC 3164 is not provided. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass Reviewed-by: Simon Glass --- v5: do not build syslog driver in SPL v4: no change --- MAINTAINERS | 2 +- common/Kconfig | 7 +++ common/Makefile | 1 + common/log_syslog.c | 117 ++++++++++++++++++++++++++++++++++++++++++++ doc/README.log | 3 ++ 5 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 common/log_syslog.c -- 2.25.0 diff --git a/MAINTAINERS b/MAINTAINERS index 1842569f24..c1ff620c4a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -631,7 +631,7 @@ LOGGING M: Simon Glass S: Maintained T: git https://gitlab.denx.de/u-boot/u-boot.git -F: common/log.c +F: common/log* F: cmd/log.c F: test/log/log_test.c F: test/py/tests/test_log.py diff --git a/common/Kconfig b/common/Kconfig index cedd353e89..af0a009a8e 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -774,6 +774,13 @@ config TPL_LOG_CONSOLE log message is shown - other details like level, category, file and line number are omitted. +config LOG_SYSLOG + bool "Log output to syslog server" + depends on LOG && NET + help + Enables a log driver which broadcasts log records via UDP port 514 + to syslog servers. + config LOG_TEST bool "Provide a test for logging" depends on LOG && UNIT_TEST diff --git a/common/Makefile b/common/Makefile index 896e4af91d..dd54118091 100644 --- a/common/Makefile +++ b/common/Makefile @@ -131,6 +131,7 @@ obj-$(CONFIG_DFU_OVER_USB) += dfu.o obj-y += command.o obj-$(CONFIG_$(SPL_TPL_)LOG) += log.o obj-$(CONFIG_$(SPL_TPL_)LOG_CONSOLE) += log_console.o +obj-$(CONFIG_$(SPL_TPL_)LOG_SYSLOG) += log_syslog.o obj-y += s_record.o obj-$(CONFIG_CMD_LOADB) += xyzModem.o obj-$(CONFIG_$(SPL_TPL_)YMODEM_SUPPORT) += xyzModem.o diff --git a/common/log_syslog.c b/common/log_syslog.c new file mode 100644 index 0000000000..5e3e20e8a4 --- /dev/null +++ b/common/log_syslog.c @@ -0,0 +1,117 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Log to syslog. + * + * Copyright (c) 2020, Heinrich Schuchardt + */ + +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define BUFFER_SIZE 480 + +static void append(char **buf, char *buf_end, const char *fmt, ...) +{ + va_list args; + size_t size = buf_end - *buf; + + va_start(args, fmt); + vsnprintf(*buf, size, fmt, args); + va_end(args); + *buf += strlen(*buf); +} + +static int log_syslog_emit(struct log_device *ldev, struct log_rec *rec) +{ + int ret; + int fmt = gd->log_fmt; + char msg[BUFFER_SIZE]; + char *msg_end = msg + BUFFER_SIZE; + char *ptr = msg; + char *iphdr; + char *log_msg; + int eth_hdr_size; + struct in_addr bcast_ip; + static int processing_msg; + unsigned int log_level; + char *log_hostname; + + /* Fend off messages from the network stack while writing a message */ + if (processing_msg) + return 0; + + processing_msg = 1; + + /* Setup packet buffers */ + net_init(); + /* Disable hardware and put it into the reset state */ + eth_halt(); + /* Set current device according to environment variables */ + eth_set_current(); + /* Get hardware ready for send and receive operations */ + ret = eth_init(); + if (ret < 0) { + eth_halt(); + goto out; + } + + memset(msg, 0, BUFFER_SIZE); + + /* Set ethernet header */ + eth_hdr_size = net_set_ether((uchar *)ptr, net_bcast_ethaddr, PROT_IP); + ptr += eth_hdr_size; + iphdr = ptr; + ptr += IP_UDP_HDR_SIZE; + log_msg = ptr; + + /* + * The syslog log levels defined in RFC 5424 match the U-Boot ones up to + * level 7 (debug). + */ + log_level = rec->level; + if (log_level > 7) + log_level = 7; + /* Leave high bits as 0 to write a 'kernel message' */ + + /* Write log message to buffer */ + append(&ptr, msg_end, "<%u>", log_level); + log_hostname = env_get("log_hostname"); + if (log_hostname) + append(&ptr, msg_end, "%s ", log_hostname); + append(&ptr, msg_end, "uboot: "); + if (fmt & (1 << LOGF_LEVEL)) + append(&ptr, msg_end, "%s.", + log_get_level_name(rec->level)); + if (fmt & (1 << LOGF_CAT)) + append(&ptr, msg_end, "%s,", + log_get_cat_name(rec->cat)); + if (fmt & (1 << LOGF_FILE)) + append(&ptr, msg_end, "%s:", rec->file); + if (fmt & (1 << LOGF_LINE)) + append(&ptr, msg_end, "%d-", rec->line); + if (fmt & (1 << LOGF_FUNC)) + append(&ptr, msg_end, "%s()", rec->func); + if (fmt & (1 << LOGF_MSG)) + append(&ptr, msg_end, "%s%s", + fmt != (1 << LOGF_MSG) ? " " : "", rec->msg); + /* Consider trailing 0x00 */ + ptr++; + + debug("log message: '%s'\n", log_msg); + + /* Broadcast message */ + bcast_ip.s_addr = 0xFFFFFFFFL; + net_set_udp_header((uchar *)iphdr, bcast_ip, 514, 514, ptr - log_msg); + net_send_packet((uchar *)msg, ptr - msg); + +out: + processing_msg = 0; + return ret; +} + +LOG_DRIVER(syslog) = { + .name = "syslog", + .emit = log_syslog_emit, +}; diff --git a/doc/README.log b/doc/README.log index 19856d43da..1057981f45 100644 --- a/doc/README.log +++ b/doc/README.log @@ -147,7 +147,10 @@ several possible determinations for logging information, all of which can be enabled or disabled independently: console - goes to stdout + syslog - broadcast RFC 3164 messages to syslog servers on UDP port 514 +The syslog driver sends the value of environmental variable 'log_hostname' as +HOSTNAME if available. Log format ---------- From patchwork Wed Feb 26 20:48:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1245322 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=YV6c/My4; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48SSZk4PN9z9sPK for ; Thu, 27 Feb 2020 07:49:02 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7692F80911; Wed, 26 Feb 2020 21:48:40 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="YV6c/My4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 261008089D; Wed, 26 Feb 2020 21:48:32 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EB455804CD for ; Wed, 26 Feb 2020 21:48:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1582750105; bh=1OpiJi200vod9WMOwNVmCY50UQ+/qs6LqTy+Ba2Fbgo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=YV6c/My4Chjzj0x2EaMMEU9tcH7OjQTMg7XP/QSlAnxDXN8V8HmABi1nu14QkHM1I OYUoLKHat2mXSKswS5CKiIs5KOBK1LqJUr+B0IDnl94V3sKpH4eA2/MbjZhmAa8tNV YXwkkN/NbX7oW3yHEZgutCwY5bw/mP62GTlhTg3g= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1N0XD2-1jIw9N2jg4-00wX45; Wed, 26 Feb 2020 21:48:25 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v5 3/6] log: output for CONFIG_LOG=n Date: Wed, 26 Feb 2020 21:48:17 +0100 Message-Id: <20200226204820.17376-4-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226204820.17376-1-xypron.glpk@gmx.de> References: <20200226204820.17376-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:gFpGMLWSOydUuHCdCyCj0xbI5rcEvzynYCBASCozvIKuXJRPTec edeCFY6ROzQ0tebJy+HdeDQfvj1qz901MSDfdzf6VegT5uSSDrgbe4z8G2P4Zlx6vqL5yjy NmF4mdDnmvucZKlW39t8bgJvEu9/YW6GHMI14tpG6JVO6/TDTySMoQElaGQG2rtFL8627zj HsPYr1d5R/RbCkZkNLs7w== X-UI-Out-Filterresults: notjunk:1; V03:K0:2YHl9qY6fNw=:kmx4lTWwg/zQApULq76UjO OEfHs/85J99sjqIbXp3cGuLXNTVtP7IUtaCgX48UPU0ohK4+Lb1Lb52nqQiUKka3d+KEYfFMG ZYgXVSjBPZ+WlV4yrISR14HJdksEF2zx5J5MOxEe8sEpw5zSoI+4H2O9VgQG/55FAtIFnchRM syX2/QHp7DIto9mUXjsPLVoB0MlwwDr736UYaVw6raGLD/5Kg7gsMm4NxuhAGZE6/uaxxAREB SjweJ/5jMFYqEPcg9vg9UaVz+LH/8W8ne3/VjkFaI1WQy8yqk6xSvL1LJ4168Fx7HwubarRcN YLfEDFethzqvjwquyTQY7dwf/TchAhv4QCBOq+AXF7ZvmFiZbREHZIhMOT6pvTnkkO/M5+sLp 4KuEnpJoSnR/dwNxge+k9sp/26qBL1qWFN6sAwU7/8CAHkJJQb/tcyh3MbHxpHT7Ew6c8cqHN HgsxE+l7pVRp89XUFqepPuHTFRhRQ+idqOdhbi6XYza2rXsL9ivj+6jdlh86TSentftRq9r6o X0qNnBARL5EVANCCjGXtlph1IoYz8W6KLXlEBzaOVyWv4OMuxZDwAvX5gRM0ncuoGWaHB5C0I Mt16O4/oR0HG7M/1O/S86F1zMyEFaHtQrqkne2mhRl/s2PByoMri+Rngv0ztDNA3oAW49yvqu TZHX9vFhJbEIBishGh6CGsJ67mFu1u+uNdGWoizLJM1rRpkfkioW4Qaow/Tr8y+vbDH0Lw1FX SvgfCTiP3U/PvVrXUTQngE9Fou6hbu0nmIxM71Uc9wh4+N9n1LMCCalVZ2RTecdwXivXY3tZU YPaG/8KlGUTlmC+VOiAAS/uzbmelsNCXIvzamN+OVzKABG4YWBWaV6xtJsmu2L/Z9xl0+lN5p KqBYvwY7GTFJP+snKgTN68USr8d7G4K8RSHQZ5CTeRTsuOppWDQA5RPhDI2Pjd48odgoCN1AB Z0UaMHcw+1+Q0fq8lH2IsGmyRrqHIDOkzsKsIfO4lnPZpoHtpJ7tuo5UHmsEm6O2Zg5Y18WyV +Iiin0QlbkSfPnQPjhFCjEvpEeuQSh3UMrfuWXt9iy7VK5GF7o4peaDqI7CVRqAauDdkDnwWw KDo4sPTjVBdLnUxynHPgy6DW431YbJUIlUxWeDk9iGaoeZTEO6OJZspjM97rd4OM+d80goFzo 8GgWKzcVUsrjxxfsScgV+W65/cveC/Di4pW2o7YmkbWmMdltYdUa+A8CSHFFFXEtCZfHkyGsi 7BcpTn5UeEzXcpM2q X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean If CONFIG_LOG=n, we should still output errors, warnings, notices, infos, and for DEBUG=1 also debug messages. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- v5: no change v4: no change --- include/log.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) -- 2.25.0 diff --git a/include/log.h b/include/log.h index 62fb8afbd0..0453876001 100644 --- a/include/log.h +++ b/include/log.h @@ -115,11 +115,11 @@ static inline int _log_nop(enum log_category_t cat, enum log_level_t level, #define log_io(_fmt...) log(LOG_CATEGORY, LOGL_DEBUG_IO, ##_fmt) #else #define _LOG_MAX_LEVEL LOGL_INFO -#define log_err(_fmt...) log_nop(LOG_CATEGORY, LOGL_ERR, ##_fmt) -#define log_warning(_fmt...) log_nop(LOG_CATEGORY, LOGL_WARNING, ##_fmt) -#define log_notice(_fmt...) log_nop(LOG_CATEGORY, LOGL_NOTICE, ##_fmt) -#define log_info(_fmt...) log_nop(LOG_CATEGORY, LOGL_INFO, ##_fmt) -#define log_debug(_fmt...) log_nop(LOG_CATEGORY, LOGL_DEBUG, ##_fmt) +#define log_err(_fmt, ...) printf(_fmt, ##__VA_ARGS__) +#define log_warning(_fmt, ...) printf(_fmt, ##__VA_ARGS__) +#define log_notice(_fmt, ...) printf(_fmt, ##__VA_ARGS__) +#define log_info(_fmt, ...) printf(_fmt, ##__VA_ARGS__) +#define log_debug(_fmt, ...) debug(_fmt, ##__VA_ARGS__) #define log_content(_fmt...) log_nop(LOG_CATEGORY, \ LOGL_DEBUG_CONTENT, ##_fmt) #define log_io(_fmt...) log_nop(LOG_CATEGORY, LOGL_DEBUG_IO, ##_fmt) From patchwork Wed Feb 26 20:48:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1245324 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=kHQdMBRa; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48SSb13sm9z9sPK for ; Thu, 27 Feb 2020 07:49:17 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 060518081D; Wed, 26 Feb 2020 21:48:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="kHQdMBRa"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 58C2080724; Wed, 26 Feb 2020 21:48:33 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 3714780561 for ; Wed, 26 Feb 2020 21:48:27 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1582750106; bh=5qO38+yBO+G6S2jfYKMxQRtyEidbhqso6ct66BFsOTc=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=kHQdMBRa9g30DjIcK9ju9HNcd9/RKFBPcdg5MsSV7QT22UsVUYtRMph2A4X1CpnS7 7gweFUXRJm994CvkCloNywvd84vPs2vv3Rl5dV+mRb637h9bzJ1TGOA2kkjwT4L63x yPU3sT9dpax0UMq/d+LLejL7Q4ILw4ZA4eYW9658= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MNbkp-1imtFa3qhv-00P6ze; Wed, 26 Feb 2020 21:48:26 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v5 4/6] test: log functions with CONFIG_LOG=n Date: Wed, 26 Feb 2020 21:48:18 +0100 Message-Id: <20200226204820.17376-5-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226204820.17376-1-xypron.glpk@gmx.de> References: <20200226204820.17376-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:iIMRyMtEqm0R6XfGez8G6aL32UlFyKHTqIUhnbrydOPi3T0UMXR Yrwqr0gm2ru2uobAAZPJzrLtrukeV6aUdU1N6x5n+rJcDbZhfZZO46QqasTxZ5IbAeRSxnV Q2QV3h1a4pLZoJmPlfLm/OQ1qvnIYWjlYcPThQYLSa1BbADiLlNSF2oEifm2WKn5JgxXF5c bv0zHMQrrb6uvrMwgiEKA== X-UI-Out-Filterresults: notjunk:1; V03:K0:4mGi4cT1dg0=:ARBaagbA6ObSYcEG1PDYDM JLwdFVE/BtBcgl7KcsAcpnY4cG6IkFiZ2PpV2mLFiU5iHqH6IO5LHH4T1yfqRvMbnCnp1KhL+ Kg17wWdDJ7AySyI2z7E6Zsb2wW1RUAfJxs3AnaL5RuINzu2d006I8NzHNTwyDDz99dSHdMRLj eZPP/9PpQpaN2lXZHJKZtKJbI+eRmSc1K6a1rAOgPhctkDYAvMH3vw4ljhYftceNoxeV32JWp EylP+xDwaQcj8Z+6+Ev8VAq+Qvm4SNtnEFREj75QFqSkrPD5d3Klk6VhoCN5mQ47IwfNGpjIt vLhnJatDzwEKtq7AwQiVGxERvEXE3hX5fxwd4ykYc+1EZbsUvqEz5d79IHrlSYeEza2Z6eFZ3 S/SyOyUiAsnlZefX1I3yZ8zUi5JUVzl1qZvVsFoHORqTLyTXGOs0EuoLs4P3eAinPbKpfBJtV 2VoLBWr8mh6gU5fLLbSc9irodxckYGGZtO0aIE4yBI7mXLALMCfBCDX8sVe5CVTalmUCp4Q3l +9kWgJQnHVnblWvXCTP7d5MW854/9DeEXZdUbYdTquHsoZouGotyzxqzMKFixlRSBziSVJOUj WDsK9M6inDXCH/BXEijnJhH88xLkkeAjg+clYSlQCpoPCFYCBpuIUTWnC3/9d7OHDTNP8DXB4 /m9F8t9LTjwZJB5MIhAdsmASx0YOMjnyZjQLJeKp/DLBiili5EQTLvOCOw7V1llSRxs52w6lI QLMWB7aMbGsk/jw5lOw6FET9S2IaVtAK7jEk5BWsA9dQ9qcPMODajeok2rMJXpIUHxkz7PU0o yCTuG8hbh86YMbFS1ag77+RHoERtZDqELCHI7i/Y0QyyY0EVSo/M89wfLpBQX+G+8YpG65XfZ leHy3xgWUZQB37evxBpPfQVkGPKkU6zQdkKvIqfmQqmCIoQBCoX6slPVkWHn0b/BCrxHuE9Co SP9CtSfhF1Yv/RgYPMP5P2P9htUvcAP3azIpEzb379XztH8+DFPDEYZp2YwqVD7H2L6HCFYAG GLHznUIKznG39I+dK/P0zHK9yWeK8D9yZqDq6hk3f59jaHWV/6BVDObL5ZZ6FqkmLh9YwNuqM Hm1Xxwom71YIcO2IFzBiLUuwmOFfy3sWrH3PI07GCaJfTW52F8O1kk8FOCPPh0lE1/2JlKeDV UVK6NYQrxL/UWD+YeMJ0Khv40DljsDZf3c7Hajj67YlQsvsBlFAd3Z8rGAAkI+hElqIZg/4BM 2NtaPKQPYL1JCFRTv X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean If CONFIG_LOG=n, we still expect output for log_err(), log_warning(), log_notice(), log_info() and in case of DEBUG=1 also for log_debug(). Provide unit tests verifying this. The tests depend on: CONFIG_CONSOLE_RECORD=y CONFIG_LOG=n CONFIG_UT_LOG=y It may be necessary to increase the value of CONFIG_SYS_MALLOC_F_LEN to accommodate CONFIG_CONSOLE_RECORD=y. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- v5: no change v4: no change --- MAINTAINERS | 2 +- include/test/log.h | 16 +++++ include/test/suites.h | 1 + test/Kconfig | 9 +++ test/Makefile | 2 +- test/cmd_ut.c | 6 ++ test/log/Makefile | 10 ++++ test/log/nolog_test.c | 135 ++++++++++++++++++++++++++++++++++++++++++ test/log/test-main.c | 20 +++++++ 9 files changed, 199 insertions(+), 2 deletions(-) create mode 100644 include/test/log.h create mode 100644 test/log/nolog_test.c create mode 100644 test/log/test-main.c -- 2.25.0 diff --git a/MAINTAINERS b/MAINTAINERS index c1ff620c4a..9c2b7bf4c2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -633,7 +633,7 @@ S: Maintained T: git https://gitlab.denx.de/u-boot/u-boot.git F: common/log* F: cmd/log.c -F: test/log/log_test.c +F: test/log/ F: test/py/tests/test_log.py MALI DISPLAY PROCESSORS diff --git a/include/test/log.h b/include/test/log.h new file mode 100644 index 0000000000..c661cde75a --- /dev/null +++ b/include/test/log.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2020, Heinrich Schuchardt + * + * Tests for logging functions + */ + +#ifndef __TEST_LOG_H__ +#define __TEST_LOG_H__ + +#include + +/* Declare a new logging test */ +#define LOG_TEST(_name) UNIT_TEST(_name, 0, log_test) + +#endif /* __TEST_LOG_H__ */ diff --git a/include/test/suites.h b/include/test/suites.h index 0748185eaf..39ad81a90f 100644 --- a/include/test/suites.h +++ b/include/test/suites.h @@ -30,6 +30,7 @@ int do_ut_compression(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]); int do_ut_dm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); int do_ut_env(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); int do_ut_lib(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); +int do_ut_log(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); int do_ut_optee(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); int do_ut_overlay(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); int do_ut_time(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); diff --git a/test/Kconfig b/test/Kconfig index cb51b46721..32e6197dca 100644 --- a/test/Kconfig +++ b/test/Kconfig @@ -30,6 +30,15 @@ config UT_LIB_ASN1 endif +config UT_LOG + bool "Unit tests for logging functions" + depends on UNIT_TEST + default y + help + Enables the 'ut log' command which tests logging functions like + log_err(). + See also CONFIG_LOG_TEST which provides the 'log test' command. + config UT_TIME bool "Unit tests for time functions" depends on UNIT_TEST diff --git a/test/Makefile b/test/Makefile index 2fe41f489c..2971d0d87f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -10,5 +10,5 @@ obj-$(CONFIG_SANDBOX) += compression.o obj-$(CONFIG_SANDBOX) += print_ut.o obj-$(CONFIG_UT_TIME) += time_ut.o obj-$(CONFIG_UT_UNICODE) += unicode_ut.o -obj-$(CONFIG_$(SPL_)LOG) += log/ +obj-y += log/ obj-$(CONFIG_UNIT_TEST) += lib/ diff --git a/test/cmd_ut.c b/test/cmd_ut.c index a3a9d49f7e..7fdcdbb1a6 100644 --- a/test/cmd_ut.c +++ b/test/cmd_ut.c @@ -60,6 +60,9 @@ static cmd_tbl_t cmd_ut_sub[] = { #ifdef CONFIG_UT_LIB U_BOOT_CMD_MKENT(lib, CONFIG_SYS_MAXARGS, 1, do_ut_lib, "", ""), #endif +#ifdef CONFIG_UT_LOG + U_BOOT_CMD_MKENT(log, CONFIG_SYS_MAXARGS, 1, do_ut_log, "", ""), +#endif #ifdef CONFIG_UT_TIME U_BOOT_CMD_MKENT(time, CONFIG_SYS_MAXARGS, 1, do_ut_time, "", ""), #endif @@ -125,6 +128,9 @@ static char ut_help_text[] = #ifdef CONFIG_UT_LIB "ut lib [test-name] - test library functions\n" #endif +#ifdef CONFIG_UT_LOG + "ut log [test-name] - test logging functions\n" +#endif #ifdef CONFIG_UT_OPTEE "ut optee [test-name]\n" #endif diff --git a/test/log/Makefile b/test/log/Makefile index e0d0a4745f..98178f5e2b 100644 --- a/test/log/Makefile +++ b/test/log/Makefile @@ -3,3 +3,13 @@ # Copyright (c) 2017 Google, Inc obj-$(CONFIG_LOG_TEST) += log_test.o + +ifdef CONFIG_UT_LOG + +obj-y += test-main.o + +ifndef CONFIG_LOG +obj-$(CONFIG_CONSOLE_RECORD) += nolog_test.o +endif + +endif # CONFIG_UT_LOG diff --git a/test/log/nolog_test.c b/test/log/nolog_test.c new file mode 100644 index 0000000000..84619521c9 --- /dev/null +++ b/test/log/nolog_test.c @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2020, Heinrich Schuchardt + * + * Logging function tests for CONFIG_LOG=n. + */ + +/* Needed for testing log_debug() */ +#define DEBUG 1 + +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define BUFFSIZE 32 + +static int nolog_test_log_err(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + log_err("testing %s\n", "log_err"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_line(uts, "testing log_err")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_log_err); + +static int nolog_test_log_warning(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + log_warning("testing %s\n", "log_warning"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_line(uts, "testing log_warning")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_log_warning); + +static int nolog_test_log_notice(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + log_notice("testing %s\n", "log_notice"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_line(uts, "testing log_notice")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_log_notice); + +static int nolog_test_log_info(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + log_err("testing %s\n", "log_info"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_line(uts, "testing log_info")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_log_info); + +#undef _DEBUG +#define _DEBUG 0 +static int nolog_test_nodebug(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + debug("testing %s\n", "debug"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_nodebug); + +static int nolog_test_log_nodebug(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + log_debug("testing %s\n", "log_debug"); + gd->flags &= ~GD_FLG_RECORD; + ut_assert(!strcmp(buf, "")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_log_nodebug); + +#undef _DEBUG +#define _DEBUG 1 +static int nolog_test_debug(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + debug("testing %s\n", "debug"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_line(uts, "testing debug")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_debug); + +static int nolog_test_log_debug(struct unit_test_state *uts) +{ + char buf[BUFFSIZE]; + + memset(buf, 0, BUFFSIZE); + console_record_reset_enable(); + log_debug("testing %s\n", "log_debug"); + gd->flags &= ~GD_FLG_RECORD; + ut_assertok(ut_check_console_line(uts, "testing log_debug")); + ut_assertok(ut_check_console_end(uts)); + return 0; +} +LOG_TEST(nolog_test_log_debug); diff --git a/test/log/test-main.c b/test/log/test-main.c new file mode 100644 index 0000000000..855de47f33 --- /dev/null +++ b/test/log/test-main.c @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2020, Heinrich Schuchardt + * + * Logging function tests. + */ + +#include +#include +#include +#include + +int do_ut_log(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + struct unit_test *tests = ll_entry_start(struct unit_test, log_test); + const int n_ents = ll_entry_count(struct unit_test, log_test); + + return cmd_ut_category("log", "log_test_", + tests, n_ents, argc, argv); +} From patchwork Wed Feb 26 20:48:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1245326 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=fEm2ercx; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48SSbP6jd9z9sPK for ; Thu, 27 Feb 2020 07:49:37 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A4A7B810D6; Wed, 26 Feb 2020 21:48:50 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="fEm2ercx"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A388580857; Wed, 26 Feb 2020 21:48:34 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6E49580592 for ; Wed, 26 Feb 2020 21:48:27 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1582750106; bh=b1xWXJIe+w+XW+mVrm5DXIpIJy7WTS1Z5zKxFglJZmU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=fEm2ercxQFrmODmZQAFvU4UbEKwd/Hq75ATTlwaLMID3fEZLrtrVAAfFYHu6VOM4B xu5JGRT+ndFeqfMIuWYGiM+Cq/V7b7YymLAf36AGV+prsI/jBjV8R7ktlx9g4cTbzR WH9qjIO/AThW5Nm2ScPmNbRTJNSHo6kLxZc5BYF8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MRTNF-1ik9Ql0eJR-00NTMW; Wed, 26 Feb 2020 21:48:26 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v5 5/6] test: log: test syslog logging driver Date: Wed, 26 Feb 2020 21:48:19 +0100 Message-Id: <20200226204820.17376-6-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226204820.17376-1-xypron.glpk@gmx.de> References: <20200226204820.17376-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:+qHtzSbx0eyGW6DycDnDmAFFS8NYvq8Y/lw4h0nO46aRACTT8pe O2rRS8kR5pdcF12lxqe5fk57C9hjkiVZz4pG39YAi8+zUslspvtya2W2+MN8YZQeka1XiMR Wi7fs2cahSHuEKRYFGv2KOkOpXP38r6/LdPDG6vDhHskOXr2/iPXpAhI8MZfXj9pDN9XhV9 a0Y2KcBBfGvGC9pDYxpug== X-UI-Out-Filterresults: notjunk:1; V03:K0:DemQyYS3xG4=:9J/sfpBfQvhl44tbuj2JHV d/tOFQpHWDyk35OHID7AZz0T0hK4Fgi4rN+CeThx4tdjAY8O0/9f0P8SuCaPPwiSO/YmNi6mP i/fX8u+5ORMd3H5qfGnHERFnFvGl7vWZAoMTimwUQC7vkZj1hUoKg2nfUEe3L7TMuJTxsfIPj T0o6CJCj7c2P9wYKEcxzrm7DUajmQZnpdfaLxGhRvUggPpq/PSe0bphlg/A56oBitCmeSs87U wA9qmzbNahhLz8sbO4dnbZl10lKoWneNQvMUAOi+GNHZczYQ51XDhe9yBoJZlAGsfgukxul+c FWw1pgMlGppkM6VzqViM3bpM1wNjTWIvvDaYBu6UMOqsPLymdEqH4xym7/N4hV+oZulDC1tX9 yYJIyJ5o39/6p2L4x3vrs8LZoPsENJ7A162tfKwYRfje6dL/4x6GvOolpzA0KDkGLAWDor5eA tq/qg9OJ2Cn5Nq1CPBEGMlrBA9f74jM25PHbbQwKwpCiY+wxSGGJ19y5CODYHE6Qfbv5OZXuM XIwoD6BJcmY0K64jupR3lwon0vS/6WU7rjidIYdhZikUat3crur1i8J/ts3q37ECJTSubzPEo 9bzJj3NzNz6hLpnBPHplKrZMTXlAlGEfHVChZ6Jl4dYY//bzGcRDEmXQAsEBBHmuoWDYkoaKW 6evYmEREqt0MVr+YGyzQnq2JqtAAho+eRNRC0umrtmJSrdC5vML4oOCT5bwxnkld4TczuiI+a 85Ss3c/AtZE65Poy+luk9hYStgtTcDFzOjC4TPDDREywXWxz11wzAh0d2eHQEfgzYagaVOnye I9MadSlQcmNUaKz9m2DOR9iBZ403GNbOkHMXLlqHLOacYAMCf4e+L1sZF1kGCnNk+cn/zE5Qk 880X6Pq1zvAJmAaWdLCUE8CzCurdNng2820P2ktTU8TJua/nd0v8zybMS+CrfPf9qTExGcoLw IsP5nu/ypY7sLKWPxEkPHHm98e0P1dGjTXU3jL+ItHce0yCjQfaylT1OhWQ1ku5jSo8KXQuR1 lP9IBvMQTrA9IrsT0K/9+cd/9YQ5wGTAYvV9OMfh2LtPeSTMK1dGASYx13zbLsz6rzv4Zjt8g cGRO3MK4wZSkucYwne95TxbE9pqgqc+SNBW5aaT7A4xtG/7/tiJn1pRqJLZaFMdrsrqZUVZXU ypfTCbr8RMRKO/tNVw6qNrnvQ2IbTQ3R4XYjtCrS9Q9ZwzUOzt6gTyDB4RkFFZtCgqMyR/ktI cMePYCUIQ+/nizzYN X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean Provide unit tests for the syslog logging driver. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass Reviewed-by: Simon Glass --- v5: no change v4: provide more comments move uts and expected to a common structure expect 'uboot:' not 'uboot[1]:' in syslog message v3: new patch --- test/log/Makefile | 4 + test/log/syslog_test.c | 280 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 284 insertions(+) create mode 100644 test/log/syslog_test.c -- 2.25.0 diff --git a/test/log/Makefile b/test/log/Makefile index 98178f5e2b..4c92550f6e 100644 --- a/test/log/Makefile +++ b/test/log/Makefile @@ -8,6 +8,10 @@ ifdef CONFIG_UT_LOG obj-y += test-main.o +ifdef CONFIG_SANDBOX +obj-$(CONFIG_LOG_SYSLOG) += syslog_test.o +endif + ifndef CONFIG_LOG obj-$(CONFIG_CONSOLE_RECORD) += nolog_test.o endif diff --git a/test/log/syslog_test.c b/test/log/syslog_test.c new file mode 100644 index 0000000000..6ca5760eac --- /dev/null +++ b/test/log/syslog_test.c @@ -0,0 +1,280 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2020, Heinrich Schuchardt + * + * Logging function tests for CONFIG_LOG_SYSLOG=y. + * + * Invoke the test with: ./u-boot -d arch/sandbox/dts/test.dtb + */ + +/* Override CONFIG_LOG_MAX_LEVEL */ +#define LOG_DEBUG + +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +/** + * struct sb_log_env - private data for sandbox ethernet driver + * + * This structure is used for the private data of the sandbox ethernet + * driver. + * + * @expected: string expected to be written by the syslog driver + * @uts: unit test state + */ +struct sb_log_env { + const char *expected; + struct unit_test_state *uts; +}; + +/** + * sb_log_tx_handler() - transmit callback function + * + * This callback function is invoked when a network package is sent using the + * sandbox Ethernet driver. The private data of the driver holds a sb_log_env + * structure with the unit test state and the expected UDP payload. + * + * The following checks are executed: + * + * * the Ethernet packet indicates a IP broadcast message + * * the IP header is for a local UDP broadcast message to port 514 + * * the UDP payload matches the expected string + * + * After testing the pointer to the expected string is set to NULL to signal + * that the callback function has been called. + * + * @dev: sandbox ethernet device + * @packet: Ethernet packet + * @len: length of Ethernet packet + * Return: 0 = success + */ +static int sb_log_tx_handler(struct udevice *dev, void *packet, + unsigned int len) +{ + struct eth_sandbox_priv *priv = dev_get_priv(dev); + struct sb_log_env *env = priv->priv; + /* uts is updated by the ut_assert* macros */ + struct unit_test_state *uts = env->uts; + char *buf = packet; + struct ethernet_hdr *eth_hdr = packet; + struct ip_udp_hdr *ip_udp_hdr; + + /* Check Ethernet header */ + ut_asserteq_mem(ð_hdr->et_dest, net_bcast_ethaddr, ARP_HLEN); + ut_asserteq(ntohs(eth_hdr->et_protlen), PROT_IP); + + /* Check IP header */ + buf += sizeof(struct ethernet_hdr); + ip_udp_hdr = (struct ip_udp_hdr *)buf; + ut_asserteq(ip_udp_hdr->ip_p, IPPROTO_UDP); + ut_asserteq(ip_udp_hdr->ip_dst.s_addr, 0xffffffff); + ut_asserteq(ntohs(ip_udp_hdr->udp_dst), 514); + ut_asserteq(UDP_HDR_SIZE + strlen(env->expected) + 1, + ntohs(ip_udp_hdr->udp_len)); + + /* Check payload */ + buf += sizeof(struct ip_udp_hdr); + ut_asserteq_mem(env->expected, buf, + ntohs(ip_udp_hdr->udp_len) - UDP_HDR_SIZE); + + /* Signal that the callback function has been executed */ + env->expected = NULL; + + return 0; +} + +/** + * syslog_test_log_err() - test log_err() function + * + * @uts: unit test state + * Return: 0 = success + */ +static int syslog_test_log_err(struct unit_test_state *uts) +{ + int old_log_level = gd->default_log_level; + struct sb_log_env env; + + gd->log_fmt = LOGF_DEFAULT; + gd->default_log_level = LOGL_INFO; + env_set("ethact", "eth@10002000"); + env_set("log_hostname", "sandbox"); + env.expected = "<3>sandbox uboot: syslog_test_log_err() " + "testing log_err\n"; + env.uts = uts; + sandbox_eth_set_tx_handler(0, sb_log_tx_handler); + /* Used by ut_assert macros in the tx_handler */ + sandbox_eth_set_priv(0, &env); + log_err("testing %s\n", "log_err"); + /* Check that the callback function was called */ + sandbox_eth_set_tx_handler(0, NULL); + gd->default_log_level = old_log_level; + + return 0; +} +LOG_TEST(syslog_test_log_err); + +/** + * syslog_test_log_warning() - test log_warning() function + * + * @uts: unit test state + * Return: 0 = success + */ +static int syslog_test_log_warning(struct unit_test_state *uts) +{ + int old_log_level = gd->default_log_level; + struct sb_log_env env; + + gd->log_fmt = LOGF_DEFAULT; + gd->default_log_level = LOGL_INFO; + env_set("ethact", "eth@10002000"); + env_set("log_hostname", "sandbox"); + env.expected = "<4>sandbox uboot: syslog_test_log_warning() " + "testing log_warning\n"; + env.uts = uts; + sandbox_eth_set_tx_handler(0, sb_log_tx_handler); + /* Used by ut_assert macros in the tx_handler */ + sandbox_eth_set_priv(0, &env); + log_warning("testing %s\n", "log_warning"); + sandbox_eth_set_tx_handler(0, NULL); + /* Check that the callback function was called */ + ut_assertnull(env.expected); + gd->default_log_level = old_log_level; + + return 0; +} +LOG_TEST(syslog_test_log_warning); + +/** + * syslog_test_log_notice() - test log_notice() function + * + * @uts: unit test state + * Return: 0 = success + */ +static int syslog_test_log_notice(struct unit_test_state *uts) +{ + int old_log_level = gd->default_log_level; + struct sb_log_env env; + + gd->log_fmt = LOGF_DEFAULT; + gd->default_log_level = LOGL_INFO; + env_set("ethact", "eth@10002000"); + env_set("log_hostname", "sandbox"); + env.expected = "<5>sandbox uboot: syslog_test_log_notice() " + "testing log_notice\n"; + env.uts = uts; + sandbox_eth_set_tx_handler(0, sb_log_tx_handler); + /* Used by ut_assert macros in the tx_handler */ + sandbox_eth_set_priv(0, &env); + log_notice("testing %s\n", "log_notice"); + sandbox_eth_set_tx_handler(0, NULL); + /* Check that the callback function was called */ + ut_assertnull(env.expected); + gd->default_log_level = old_log_level; + + return 0; +} +LOG_TEST(syslog_test_log_notice); + +/** + * syslog_test_log_info() - test log_info() function + * + * @uts: unit test state + * Return: 0 = success + */ +static int syslog_test_log_info(struct unit_test_state *uts) +{ + int old_log_level = gd->default_log_level; + struct sb_log_env env; + + gd->log_fmt = LOGF_DEFAULT; + gd->default_log_level = LOGL_INFO; + env_set("ethact", "eth@10002000"); + env_set("log_hostname", "sandbox"); + env.expected = "<6>sandbox uboot: syslog_test_log_info() " + "testing log_info\n"; + env.uts = uts; + sandbox_eth_set_tx_handler(0, sb_log_tx_handler); + /* Used by ut_assert macros in the tx_handler */ + sandbox_eth_set_priv(0, &env); + log_info("testing %s\n", "log_info"); + sandbox_eth_set_tx_handler(0, NULL); + /* Check that the callback function was called */ + ut_assertnull(env.expected); + gd->default_log_level = old_log_level; + + return 0; +} +LOG_TEST(syslog_test_log_info); + +/** + * syslog_test_log_debug() - test log_debug() function + * + * @uts: unit test state + * Return: 0 = success + */ +static int syslog_test_log_debug(struct unit_test_state *uts) +{ + int old_log_level = gd->default_log_level; + struct sb_log_env env; + + gd->log_fmt = LOGF_DEFAULT; + gd->default_log_level = LOGL_DEBUG; + env_set("ethact", "eth@10002000"); + env_set("log_hostname", "sandbox"); + env.expected = "<7>sandbox uboot: syslog_test_log_debug() " + "testing log_debug\n"; + env.uts = uts; + sandbox_eth_set_tx_handler(0, sb_log_tx_handler); + /* Used by ut_assert macros in the tx_handler */ + sandbox_eth_set_priv(0, &env); + log_debug("testing %s\n", "log_debug"); + sandbox_eth_set_tx_handler(0, NULL); + /* Check that the callback function was called */ + ut_assertnull(env.expected); + gd->default_log_level = old_log_level; + + return 0; +} +LOG_TEST(syslog_test_log_debug); + +/** + * syslog_test_log_nodebug() - test logging level filter + * + * Verify that log_debug() does not lead to a log message if the logging level + * is set to LOGL_INFO. + * + * @uts: unit test state + * Return: 0 = success + */ +static int syslog_test_log_nodebug(struct unit_test_state *uts) +{ + int old_log_level = gd->default_log_level; + struct sb_log_env env; + + gd->log_fmt = LOGF_DEFAULT; + gd->default_log_level = LOGL_INFO; + env_set("ethact", "eth@10002000"); + env_set("log_hostname", "sandbox"); + env.expected = "<7>sandbox uboot: syslog_test_log_nodebug() " + "testing log_debug\n"; + env.uts = uts; + sandbox_eth_set_tx_handler(0, sb_log_tx_handler); + /* Used by ut_assert macros in the tx_handler */ + sandbox_eth_set_priv(0, &env); + log_debug("testing %s\n", "log_debug"); + sandbox_eth_set_tx_handler(0, NULL); + /* Check that the callback function was not called */ + ut_assertnonnull(env.expected); + gd->default_log_level = old_log_level; + + return 0; +} +LOG_TEST(syslog_test_log_nodebug); From patchwork Wed Feb 26 20:48:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1245323 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=PZWzYbP2; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48SSZq5jlYz9sPK for ; Thu, 27 Feb 2020 07:49:07 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A43E080724; Wed, 26 Feb 2020 21:48:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="PZWzYbP2"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 56D7080671; Wed, 26 Feb 2020 21:48:32 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E088C8065D for ; Wed, 26 Feb 2020 21:48:27 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1582750106; bh=M9a2RaPNOqqjt61u2KQ/jVqTIhwqm4th00iRDtNYmTE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=PZWzYbP2FvxgOkErh6Bewz+AqNpMCnTUbH47YubPe34CzT8hgR22f7LUeubaPpbK0 GCE03Rbsa+TY0knbXGvGY2JkzgbMxbnLQTquVOqmO1qTBXBrOGM7ZEuSQcLZtCVqrh kE63EsdOG3v3o5kAE//lN7nz/yom0ass7hHW8tzQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1N9dsb-1jS2pz1lTx-015drs; Wed, 26 Feb 2020 21:48:26 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v5 6/6] configs: sandbox: enable LOG_SYSLOG Date: Wed, 26 Feb 2020 21:48:20 +0100 Message-Id: <20200226204820.17376-7-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200226204820.17376-1-xypron.glpk@gmx.de> References: <20200226204820.17376-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:POtn3dwBEEJwCWaBKewGoDCCrR2MVWksV0HDOhDU0ziFE8LwX7w S63d/w0tcEj1ooryX+4h9NbU0dslG3rDaGjsihZemF/mcKBguxWCpVKL5ifhb+GcrV3usx9 HUBa6HPJxyd1NPQmJmSGcH6wQKhHomJX8kHZnJZjh8IQdP50EV+98mxBKbtQzjIgKdvfBwH VfkOWTDEzlnMOft8DpTCw== X-UI-Out-Filterresults: notjunk:1; V03:K0:dBkoVZ/yUtM=:J6Y0Y4oycFERdQThsrGIoo B5dx+XUKNMCTuPNwuTmtbZ3mJlbuCBs+zfHjb+v6ZDly3W3Lur447DcA65/yvpM+aPvQVu2TX 1O3CG+JJO4EwIDz4RliMaDjn8CNghR2V5rZe1fM0ODmkuR7qGA3Tn4kV5fP8rSbqJI1C4iBXu 4tN5jN1Wg1WyR0bF2jFUAbRLkaQ/czHp3npM09dODf64HvYwZXZPd94s/Zelc7SWUEfqvKrLK jDUwGCatAIYzZd49uyFkCv39y0XiCiYGDRwiW93spIL0p+gX0aLm6keIYNwILaB16muactQJy ALxzjxdhmmJwH3C+dNrkzs8GSO7YqPUoLNtx9/cK5haNP48NEvEoZrOfW8Eafr21zlBBTZB3N UHV/P3iU2bN/dCYABSSNkASxtK9Lg4839dStTOV9CQJ2IavP2kqI+CcQva3/m31FouoW5/kyp KwCo5hVVLaEjUyJORBTfe3kMZ6RDzoA2q9nY2V+6lFXP2rLwu0Fjv+4nAx/cb6LpQ32rnX93j TGxp4kk8Lmz5TE7UPKALGxSY0VRx2ANMJvHluPIYaBwLjTeYOL20jgTPHWg7Thw4oc2WR4YMg Ea3Zrpp4/5a4FHdSYUevfS9saBllzONdX+Dzm2xR6lklbCidj2eGx7OQtpEoVJ1uHKm3yWlqm 0aPvWkr+853wRqTXpThajb5DuOCAw5HcGzHZqUOPyZqz3BqvrgTplhznIvx6jAkb0gIZ7RwPF BE4QTp0VeItDZDgJ4RsLLwUdZ/JzKLQCKxlH3ZxNZE1OiNxjvgozvN3DCsYmzH5DhwzhH9rym xMBTytKxDr+CDnyt9y6vJELdk1Ur3/2s0ueMsXe9hFN9uN+bmNtEzYDNOp9LU9AGZ1poBt4bQ x6C95YuInVxMYHEDV01AnY+DrnnWY7icR85HVyU08gnLM+So92n5IXoounTEia723V0+Yc/Y6 HhJ8pslROvt1tU/yX0HJcdCRF2OcpgajnaUVPUCsHQqCZ3Dq5aGHIixnET9DhOj6zoP/E89hn KnX20Qr0vqlls27LsZYif0MqgdHVbdUFzWe9Olxev2LzP2G3N89lyIUefAcycjRL61JFjzVHG 1er0SM0pt3d44OqnkuMh+/CM5LsdUCtXtGIM0+pnlKfSCS0cRzq2pInYUFMJOAHgQ84O3fAuR 8ImyM0h+VPbmExs37SlnHhwOieVldhBGlrhtE+Z5oEdBM5I/Tr7s2bhxZOpeKlkMbhqVO+jyr cjbYr90ZPiiS2hl+R X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean For testing purposes enable the syslog logging driver. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- v5: no change v4: no change --- configs/sandbox64_defconfig | 1 + configs/sandbox_defconfig | 1 + configs/sandbox_flattree_defconfig | 1 + 3 files changed, 3 insertions(+) -- 2.25.0 diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig index 941b1fd2c7..035900eb42 100644 --- a/configs/sandbox64_defconfig +++ b/configs/sandbox64_defconfig @@ -18,6 +18,7 @@ CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000 CONFIG_SILENT_CONSOLE=y CONFIG_PRE_CONSOLE_BUFFER=y CONFIG_LOG_MAX_LEVEL=6 +CONFIG_LOG_SYSLOG=y CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_CMD_CPU=y CONFIG_CMD_LICENSE=y diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index 7b02b8de7c..49610a2f76 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -19,6 +19,7 @@ CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000 CONFIG_SILENT_CONSOLE=y CONFIG_PRE_CONSOLE_BUFFER=y CONFIG_LOG_MAX_LEVEL=6 +CONFIG_LOG_SYSLOG=y CONFIG_LOG_ERROR_RETURN=y CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_ANDROID_AB=y diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig index 0049da3d48..22d54678e0 100644 --- a/configs/sandbox_flattree_defconfig +++ b/configs/sandbox_flattree_defconfig @@ -15,6 +15,7 @@ CONFIG_CONSOLE_RECORD=y CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000 CONFIG_SILENT_CONSOLE=y CONFIG_LOG_MAX_LEVEL=6 +CONFIG_LOG_SYSLOG=y CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_CMD_CPU=y CONFIG_CMD_LICENSE=y