From patchwork Mon Feb 17 06:43:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1238986 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=R09jXyMR; 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 48LZFb4gzXz9sRN for ; Mon, 17 Feb 2020 17:43:47 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1BE3081291; Mon, 17 Feb 2020 07:43:31 +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="R09jXyMR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2052681297; Mon, 17 Feb 2020 07:43:26 +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.15.15]) (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 5CD548079C for ; Mon, 17 Feb 2020 07:43:22 +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=1581921801; bh=ttdrjKqG10LjpY1pXHYMO3zBHeuSMidl1b3C7XXWGNw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=R09jXyMRK8yBpEAzX+6jQ2TZAD1gV6nCko/H/zXFxJiJylLrfcMcJSxKv9RNRBAlf c15p28PK4NfBJ/C/Eem5Un5S0wYEmiaZjuDgbFl0xbiwFu8OhHz35oH8DFSSrNSe0W b2CT/WM7e3vKMzIX1GwI4Qvb1VdTM4Od/h8bsT7g= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MdvmO-1jdSdq3Vjy-00b5r2; Mon, 17 Feb 2020 07:43:20 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v4 1/6] log: correct CONFIG_LOG_TEST prerequisites Date: Mon, 17 Feb 2020 07:43:09 +0100 Message-Id: <20200217064314.67584-2-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200217064314.67584-1-xypron.glpk@gmx.de> References: <20200217064314.67584-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Q0/7rMBSZ1Hk2xkYJCMXB52ILPGrZP3SVFzUZb3APpaPadzLaX6 WBNBvRkl4lYMjtz6I+SSdNbCOHnGjfrLg+BwEPasaBPDcfEpuAm3Ob2hTwpRp/0Hhvv1a/4 1vL6GQRyHXt8KIOwfZj3QjV4C1A9NFkIPPpOSo9ibjD5PKysI+jeGY3EpH6Sbn/Vn1sgwg+ wKKWP7fE7iG1Wb2t2/cJg== X-UI-Out-Filterresults: notjunk:1; V03:K0:rUXc3ZZbElc=:OW0U6Csg9F2/rkVBgg370a DtjzCyEIeZUAVgvNqFp39FlDx3zVKGFnJzRQ3BsDqqd94q+tGCxLW6RNmUE+uDYd+YCtHYCz7 kOwrLcAQPB3pTabFaCcp/2fAFDC+jMksSoROV1NOf2gTDB8nKcjYP12kiiHDttfSAikdYSbrl Ju07utibPmUfDfPxoQHq2bjUBkjvPk8Nx4JeYiaPAxRyPAbQY+r1Rh36NiJ8Pl1u6Pms75oJF Ht060S1oSmEinDWRIqornkFEH3HVbuf7vdMLJDMD1ndWTwe4vhL9FvdIqjbpnTnfitF0W8PMd I5pjduU7wzbKlzCXbxkgMZwhWYSr0PbxM1a+Y9i7Z76MmEPUouqR2fORajzbPAEEXvghQHpxi UdbKzKP3w3nNCpZOtnh2CX7wwcmLZTtD2FlvchrMe/vgDwF0pmDW+B1xVFmDAETUa3Mzx9BwD etrHmFv/8O8FfgQCwLk+rDWBGLrfZ9Ki0HQjXFjvewuNnt8KaCUtt6jpN9Inl7Z6i7rRhGrBw tlQtHxemK4+HnEzlCZ0rA5VsWj+ggXZV6SsxEOHhnpzbKa0l8CFbTmAAnMyEwbL4g1vRcFtFH /rgtyT2vh3iUq1SgL28CGdVs/VPqBfuZl/2ZSZzTAa90mhY2pb5MWPzH2Xdj7eY5iGziY2Tpi wWgayK3aLEoLzAQCp9K5mMXgGsPLps2UWIhnA32VZbOg0fwowrjyTUqxj7l414C711bT3lBMO zZUZcLFgAdfSwabrOYjHwEieb3OfrfQnqw2FklyfGhq/8SqgynUH0Jv0MqNkHnPpMuy74V4XE AE3WpvVW+lZkDwnAljl57O4c/TUW+fUbN8qWBGMFN+1XiyGdCeh21luQUlPBYIm36Haqi5hW0 ZAdIKxyu98BpVchC8fmUr5CBa5zXe1fWyshIfCk+6zcmmEtQkx1yWaD4Z18cDS19avqbEtvWN tv3WxBO/g4n+BW8WEtzwHIDkPpWmWZh1ugo5RilH4tuzECRJscUcLLQJJZmhaevRVz9EyjQvy krRSOPQ6hxEWaevX9+mERsNywqycKTkVqA4f/uwU0aJ52tZp3Bne+NN4aoIJyVYnDHqR1onYv 8sTLASSDT5CEIA27auDJFTjs86k173H/uJL4oGXLv9hFR4jh6zf+g5oZJrXPJXPFuJAcTV5Vu 3MEzL7BKmMkxfkMwIvjQoX3vtLXTEHPcQV3wxPtkE40bcAD5Mq9xtNID4d9HMTjkNcSffvPIi QbYJF+ce2BE0qDTyB 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.1 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 --- 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 4bc3df4e1b..cfeb6ea648 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -775,7 +775,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 Mon Feb 17 06:43:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1238990 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=T9FWmbYo; 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 48LZGJ2qLdz9sRN for ; Mon, 17 Feb 2020 17:44:24 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8EA65812A9; Mon, 17 Feb 2020 07:43: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="T9FWmbYo"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0FB9081291; Mon, 17 Feb 2020 07:43:30 +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.15.15]) (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 834958120A for ; Mon, 17 Feb 2020 07:43:22 +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=1581921801; bh=SXD6aveMQ4mLuOSzopuKjy7bcYFRuoecW6mW8wLqdBA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=T9FWmbYocTycjhaViLLsofy7hqkpkLeMY1iW+rxnFBzlCBuNLroBGKGP1qB6hnGoF 8on4zhD7qeapBBNju30UXdc0ivYYWdfPxGed9t9nVbLTKIY0H6RWGlA6TF3P45ky3F sboGij36qvzOZPAPWzvRz0u0i++282c5M4ZcKyRc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MOiHl-1ip3ws0SSd-00QBeH; Mon, 17 Feb 2020 07:43:21 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v4 2/6] log: syslog driver Date: Mon, 17 Feb 2020 07:43:10 +0100 Message-Id: <20200217064314.67584-3-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200217064314.67584-1-xypron.glpk@gmx.de> References: <20200217064314.67584-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:AKjUo61zu5mmY7LLsN2Tguynwyzn0ob5L5D8W3e7tQogAppV5HK THrIs0lhjagZnKorxJysNWv5JI97BX3UnR+Y7JnOV2mLiqHj9jrgVPXGmHbF6x0E1jbtAjj Qtcs1WeGfQVaZa9wCXv5ZMUvd9whVWj5S/mzri78cfnydxTXCWIkVrumljfm1mf/QHL2hmf elDuFAV0Tmi2zRdqLNsGg== X-UI-Out-Filterresults: notjunk:1; V03:K0:ExwowALyP6c=:oVO8vSEIpBdm48BtWxEVe/ agXf2UdvkinJApnh33L9OJ8vh/i0Z6JH/BngEt2m+K4kchIVct78+bJXw4TzhIQ6tZpl+Kyf+ fUGu461/Cq1pXpPQj6d8NmeNFHSwpOahByMdjVSSmlbdrz0/vW74ChdsWIP48cSFii3IhvguR DSBQG4EdDACzr1+C/OiFYt90uVvSt2Q9ClCpFHqWaxp5yvgwCIH63UumwSzu5UpcfeLyd7nba BJfyPtCuFOCuYcT9HLWGQ7V2vvDLxvSscVv2dc/eHnHHwBNxKCaB4GXcMXvB9gCtoSnXJszYy jiqmnuh56aenoV39r2ZWpyNM6e6AkXpd+MFzvQIduNvVRZdUczdKYSKw0F6loYLpwbRwww6V+ zsvNuwSyTMnPs99sxC2sPc1JgwpK4OyIuNVKfhWSvWUuqoxr6t0+wBY2Vd3ONccTGVgyp9MG9 zB7MIQVjCMGkqjLJOJybXb2Aq25EFE87BvU53t6wuyRQ1mN7CUc4POGr0ocx56jqv01cXLkk5 J+IC0sl0sHGWfnEs8Elz3nWztj4oVqe20eDrDg0z/HKOULccox5lX8GJ5d6szEIfY/2jtzh3l MyyjflWaYzwhJhST3xT8ETnEtReyNd5iThuBiF7JLbWxw3J3ljmp65NQrsvvZFwHb3yDJ/sr4 8zfRf26bhiljdGDgZAdii1ncKcaprdYmTO+HHuI7Vl95fA4IyngUpFs+cQgpjlBWZKhmo85xa WGaEUDqpKQTqqQ8Hv0Ix1r5RNMz4VGFBIqhW2R7lGTxM43ZoaYMsz6OtUggsUym5haoF7JmVf nZStHoy+Zn0dvoU5r4JmyhS0muLlErLpjwrVMXhf7kdV43+MBQRtA/AUbyIoCbdXtVuufY8M+ udqlUv7rvF0y3bgsnv8bLrztud86gwd+K23nOd0qSjW214K9gu/Q7NGviAZOmqadFkdDYA8Oh Ci0EK0pQDa2+y9p0BQCUMRm0h56WNC5rri++0aemGv0dgBVjClSIsN8didKDzcLyPqY11qq/9 RXpXYN7z7HH6+v8y2w+SwBveYe6rKgcgoSOMlCEmh9mI33A3UwTqr1Q/LgsWZMKJuJrnZYODP PIrCUqNFd9fCjaxuw10p0GRpgl515CNlLbouiZcsDhxB4KDYK9OlEFf5zWtC/OQDxhrQKRfdx 2SpkMG7PCdjZ5Ug6KxZ30gY8wql2HmtsEiRcMCoUvEhsHf7uULgs/lhn3t880p3WFPJ4GPwC/ 9aTPVerA0MGHYSlBK 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.1 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 --- 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 82e4159bec..d630176e33 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -630,7 +630,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 cfeb6ea648..a2f60c010f 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -773,6 +773,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..bde3f024bd 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_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 Mon Feb 17 06:43:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1238987 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=fqv0Cspt; 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 48LZFj60QWz9sRG for ; Mon, 17 Feb 2020 17:43:53 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4E93C8129F; Mon, 17 Feb 2020 07:43: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="fqv0Cspt"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B4377812A4; Mon, 17 Feb 2020 07:43:28 +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.15.15]) (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 A75D78128F for ; Mon, 17 Feb 2020 07:43:22 +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=1581921801; bh=Mrop/ceO4G4lpPcv/h0gHSIar0UBrKv+s0zmwHXFoUg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=fqv0CsptUQ0YmDx4hjIsbTF7+I5LCsJCGCQRz0EUldYIlSZwlxIf86Awck5Q12V4X YHU9g38F/OUTDOpuR12iR2ebARfaCkqPbDm1XVBPnmt6rbdO6y6VtSdIjlV3g7L+9f BTMQRGwwFQ+7lnjDht9kx9hx+Evk98LXdv8VOCRY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1N3se2-1jU9X71aQC-00zjik; Mon, 17 Feb 2020 07:43:21 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v4 3/6] log: output for CONFIG_LOG=n Date: Mon, 17 Feb 2020 07:43:11 +0100 Message-Id: <20200217064314.67584-4-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200217064314.67584-1-xypron.glpk@gmx.de> References: <20200217064314.67584-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:nnozkGimfvQA90ZLNrgkyyR6rEdQOTVhpj34mKTlF0tnGaQxOGh 77bpWc7PUOgEBq5uNTsyufLh/d0M2UYZ7wVBaNUyjXO6Y5gtpPuCGIt5sUybAB35+98XFO5 PJKGAGBmQAst0yjoauqgJSNcx7f+U0qLz0uTyvveZh9f3dmi9SofyPl5CVh9VMOdrFSiQoc UAYYPC9SDG3MKIHS2r7mQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:Is11wkgL3q0=:9VTvtEF0XOZn1qWOS0tv/l DpP36KAQJ69Hcd6lp64kx2aZlEqTpmZHCcDzvYxGs9Ak8Xnl4KTgY+lAwE/ip+ay6rbu1yJ1y KexAIekHR1ECguFcb1lVFUMzWY+qMYXlC1MwwawvAksix2ihDQzRyOYhprMCj+fapDDGxU+YK vQRE8fs0/H6IStu8BWpmXXsihTWjfLvFhygwNyyekni2Dy7m6M2QPYdzM7PkarOE4EHGhrdvc L5SLHLbGqBD5K6oAUxz8l8+sI3kwh6ryNRJpiFAbv2kGUMwZc5VGMDUtZ3FObbSaXNR1rt27Z ndht1uwt+33dLcGycdPaiLDPCKf4bBh66fc53AyHK1GwBKivvGntAviE/wF87k5PKK8vRSA6h n8RzlP4Tcz/yxxUky8Ob9eBIbL1qPHbozDDTjtz8m/J8juyjamYFofquCli5Vz49FZVzuACWy oRKi7j3Snr1S2lJhOPXD6YgDkL6xBXslAOJovahoQiT+JldFQmw0CwXIF6JXQ7ozUQFK166Mb yBuhWbVYeBtdD3v3obz/uZXMGeGwNjHHYrTA1h5IvNxXWpqJfH1nkDwBxjKiv713yuWAZuSNw ez+fLqSN62tu/XoQwb8XMXhxF5hy2o5VJ2kBGOcGh3IFqzbUvMmXLwbPxJoPfYjEQhqUNzk0S 4mMcrNvUkH4ZBkKqeVpnv4C9gHz0cr4XPWy68h+OGbYQ8HXvhrj/X6QqW0ilr+EpN31nvYYAJ bCPEwM7iEkub7Wwv/yNaSrUC99PXpRztNktg62wB3fhsaB0HmVDdsHK46+5aeZfejjfGYIiL6 z8z1R2JaAoc6DQ/POHqy6h1B6kjhjBWv9sQfZ2oDw9UbZ+ZI/qX04Ktt9IVwaeBVjei5JSSlu 7Je6tIEhV7yYwCj0YWx8x90Erpi47CflweIcLoMWSBOrmyRG3YFm33tssTM/r2PNj7X5+nuZh 9XJQHEx9PPHbjqKqoKP5mBfV8F5OyWIyhUNkvbPpa+pic8q35sXNO1dUBklz2Ry8VzzuJW4Ho yvFF3ea7Jc8uxYAMB/QVsyLsN8Hmpur3ikIpSoug1aIFMdXSqOgDFFd5/KI6LhmgNm11VPI4Q /3x0EmKmMb8DWGYjAd/SOxWM3Bp7YV1T4t7vO6cSWFs9cl2JYxo7TPn7lbdhfnTf0xoJ5n4To nEAnZqcNxpRpAAmhMFb5a827R5zhMhUD+4zPL/HssF9pEERLj3qXaXOh1WLu3uIudYeObitlv Qkx2n2I71HS20Xy98 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.1 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 --- 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 Mon Feb 17 06:43:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1238991 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=ikuhpXyj; 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 48LZGW2jpWz9sRR for ; Mon, 17 Feb 2020 17:44:35 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DDB91812B3; Mon, 17 Feb 2020 07:43:44 +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="ikuhpXyj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C39718128F; Mon, 17 Feb 2020 07:43:30 +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.15.19]) (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 5355481293 for ; Mon, 17 Feb 2020 07:43:23 +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=1581921801; bh=ali3ds0kfekP04+V3D3NdaCOUJnjRLyYb8MJLIhJewQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=ikuhpXyjgQ4z1Lp10J2UjtEsGGOwibQqXXNGYwloZXBjhbgPv5cU79zpNvBlCJGV4 M8rfjCAsGboLzL5iKCrouellLvOv6QiCl5JZXxoFV4vaeIGgYeLdmnYLcLwYwc9MQp 8BPDPdp+2Ch7TJNkwURScIX8ByT6eTk8cJSIqomU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MdvmO-1jdSdr2iKE-00b5r2; Mon, 17 Feb 2020 07:43:21 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v4 4/6] test: log functions with CONFIG_LOG=n Date: Mon, 17 Feb 2020 07:43:12 +0100 Message-Id: <20200217064314.67584-5-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200217064314.67584-1-xypron.glpk@gmx.de> References: <20200217064314.67584-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:oLFzDaze+7645FmnbSRFzEGTnpLS2QblhkAfiQaW6H3hYdIrVIQ lOS12RdBwPywCn9BplQvMGtxLP/bsuX4FkJ+PFQLb1vc3OctD9NG8UzPPT8FMZzzMj21tmv 0MyKWm8/viW1XsfI7ll0TQuF05ats1dJRJt8hkWMCVmblx5hhyLt6po4Ii40/JEr6cLRKvm kQ8VoTSz5NplZBGXVK7Tg== X-UI-Out-Filterresults: notjunk:1; V03:K0:hu0OMFRo7L0=:bHCMbKUporUq2+YMzXEJ+2 VB9VgJGhD+EMhhcR3IMR6wzBVRCmIb4iXHE8OGnAH0xr6YWz+a/3ji47IYUOSXMXvrvsXMTM0 7oz3qumGTLufJ609rMuBdyLQ+EW4hILSFjVenLAcEtNhAAvWVCJySEAs7KAQD7GWnyDDbDW4X I0mrpAYcjPIJ9Z3Ocd1cYfwbsV+flpGa4tl0UR3JHcF+DUQUfAT7MWUTpw56XcVaX9yWpnTAv GCAnUq0IoPW3txuha9xtINJdDkasrVcHOKv8topEihsejjTOJyuFqfXpjt27OaVy19upU+nFN /SPzWXAtq68moj8kT+Sojhoo5tMb1ql6wOC+IfjZXkOs38is7LHWX+n4vphiGxaQKNa1uV4oS ht83bvlhTHCS7pyvsxiPgAc7C71PEWwmCay1qhFZWXs/a0nng2TuZtV4BZUn+rhgrlFY1P274 Q9Ag98iyK4Z7oFsRH0VLBAfWnVN1N+IgrhfsFjqHnS4Ns5Rr5BufSjfh295yBf4CvvJAs2Uta f0/444fCM7rQJo8t4RuVDCxH26hwESMYQQyMf9lD80N9V18MK7mp+yqj6ZINGt859mTvduPRw X/qXhKc4Y8bB7wynQ6zRt1gFHou4tFFZmGHLqOm0fcfis2fONLupHdHQimOiJj3c85/hQUqkw tCt3vkvV+7DaEgZuSRv6qBQT6QgDX+HnezWfzUfXd5qQ+o6Ix3EEaIC0acYHCs6zvSRruDaM/ 36tkauk6NOf+wxItd2vuIDbL5NCLYHd9tloZnD0uXz03R0OgTmjSvPDMQYHYOG35WNrRMekaa Wmj9e3VuEUqXG3+0DUUhijSf9WDOyGdKgZ3SPYPsPamZ9n/FT1WlpNZCaY6gUxgDKoTKA3Gd+ nMeC1SfO2qcsyDrI8nhL/zeC5E9jAOfw6zehA6rClh0QiPEfJlvRBcfwaWapC5WXpP/hKnrKg 3thWDdYdjfyJF8uYVntZOOD0/7pxU69ResO5L92qhhgTxt15nerg6LziYpmsS17pKvEEEa84u 22u0iD2q17pvGONlxCoSZ9VjIPxYUFhvlEu5BXCpSxKKSB1WBfEIZ1McMQJ6t6NmLO/ENPQkX 4KIN+KMYRPHXDdAnxPE/0NLkeYSUjXCUgBBTqXBzyO68lGYgPiAvDWumOtuqDIZkiM0Lwv1cP Dk8C1T3YoKYcLX/XgxBZ+3i9m4gVMb0oJeoOTx3cr/89bWrUej23eWyKsaWJRh98IbqCjqAm3 pqvgD3Tt8SWCbGHR/ 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.1 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 --- 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 d630176e33..ee80460fd7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -632,7 +632,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 Mon Feb 17 06:43:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1238989 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=bi1xa3MB; 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 48LZG50Kd5z9sRf for ; Mon, 17 Feb 2020 17:44:12 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8740F812A5; Mon, 17 Feb 2020 07:43: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="bi1xa3MB"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5DB2E8129D; Mon, 17 Feb 2020 07:43: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.15.18]) (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 4E6AC81291 for ; Mon, 17 Feb 2020 07:43:23 +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=1581921802; bh=B3Wpki5PiUZDkL2VOcTGVT/7Umrcqb9D9i7Da5w0ZA4=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=bi1xa3MBbfHzjIrr6EtTd0H1Ac/z68skTH6iawqqmTXR0p5Gi6WmZgBzzzLbSpqcR b+3TcCuv9kpNrXnVg8oDN3Hr9ksFEJ38qAWGI87nA5s+N5PCNXOyu2Z/1Vpy+7VIjn GeGvtaSbUP7Z0vf0p7Vyh1Fa9FB8+g3JH77reLuQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1N6KYl-1jWcVc3w4n-016dTv; Mon, 17 Feb 2020 07:43:22 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v4 5/6] test: log: test syslog logging driver Date: Mon, 17 Feb 2020 07:43:13 +0100 Message-Id: <20200217064314.67584-6-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200217064314.67584-1-xypron.glpk@gmx.de> References: <20200217064314.67584-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:nh7AEwoDh7AamkI7gYKXaZjklBoaXiujnrygbatzS+PlOGmMNrb CCENdjK9gOT3TIYGixQIkikyZIftIBXokjFILih34Ik+wISt5HuVCmtncotmfmX/DaxRbsL 2xV/ZJgkcgL4SuOHYsKxpIR9BtLNfcv/4s/f5LY1vl2bmHOLlGX2AlgSmQw0AzfxW3Lmpgn I+UjYT1YG2hAvfF04FHIA== X-UI-Out-Filterresults: notjunk:1; V03:K0:Z1G7zyxP5ek=:2Kh/MOZ6p2/eLVNSb00mPk IeRx6L2CZP1rvjzneML5layzY0lhQkTuvLx5xMimDb0t5zCoGdZMgy1gTNRGmJeg+qb80auQU BeAUa4lMekqK57GbXC82NAnHFp7fEz1lPpX+FRTJMloGDlZIEPp0acK+AcdX+bfx3u586ZPrR hO5/jt8GYW9WpXrOqLuBga2LrKCeX4ZSif3ZIaCktds/4OCz8gZDuSrI8dyMWOF4kKJXBurqo dnIPnnpEVGiMKVCOQucpY411njTpQCjIZc6TSEJW7OSqZQ/DeoIl633PZPai1UFTxfqXaO0/J 490gwDf8PuDNm6txwWyfhfo+yuny/kQZPxtxau/sn7/2YDWgwS7aiSRpMk0wSYFztCrIE9UJz BGi2ftHaZwVtloAN96tHK47eMc5dxPZlIhxMbNEE/3SIkNMg6Hoedo8V82Dw4sfHQFwAH/5mN Z8b013D4ma0id6rV74jDfugykMUDlPUDyKvPxhHS8Og2vxMeDkxEVIr8JrcGkH5e6rv605A50 fIE65d5xSqQBOl+liCkWSZ6nizc1IGh/tVpIdkXabuHkAb+XDextv8TAt0VN9NvjR8FHr6kFx PCkQmayPxJfsOu2qJrukIS/TWBNJp2dkgfWiy/B7ZDfUZ1J+45v8FgU/Phvf9Jz/tCeFtwyj7 nMGz2EjCcQ5pvTK6A/GC3NjS9YSTvZ8GueoDZJzLexIWsiGtw+2t7dDWf6i69oVCaSn2wqWTs vpDjzELX/BWgfp7oiPEJ5F12aHJu0Iy9EOBQO1RPE0dGbIxk1YDUQ9kP9stGb4USDBC8fOqg+ 0thWjlWVAdueGLqB7wFJhLoHx7XT77LKr4jAkZ3no4f1XOFlfMuKsIqu6uk6EVgYIx4V66RJk QHW2GDfvFb01ubPwCq7lrQZjUNw6hOVXmM/ofRYZ76CV5HXq8iNnR3VLq9gRx899qvCpm3TlA SWKsGFRKkyBq1iLjs6kGs9647cV7MQ15yJBBMbSqdOveuRgxFvNMdZMoN43xg0yLHjFsQ1Bbi R6RzZBh3jkr4E/dHxL9dz0Q1/X4B+nRepdn6vKawvjL2Y53c26LKJX7cI54FgJtXakeEBdO3k SL+kzcPud1DM/YZDG7fvBDswTSGyySheEP+p0OTgEA1EfhYKB5KOtE7PWilYpJ5azq6dprUHF bZS6AJopCsu0K9FFeTmogu35O0Ro1jQs5kXquXkBSQOV4zwR8mWYCvg5zAvt70dQtQcG+lQPZ NabIwNvs8fYXtTnp+ 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.1 at phobos.denx.de X-Virus-Status: Clean Provide unit tests for the syslog logging driver. Signed-off-by: Heinrich Schuchardt --- 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 Mon Feb 17 06:43:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1238988 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=Jd1On+Vr; 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 48LZFv1RVTz9sRk for ; Mon, 17 Feb 2020 17:44:03 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9152781293; Mon, 17 Feb 2020 07:43:35 +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="Jd1On+Vr"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E451A81299; Mon, 17 Feb 2020 07:43:28 +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.15.15]) (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 5D94C81295 for ; Mon, 17 Feb 2020 07:43:23 +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=1581921802; bh=pJ7kY9SQREB4WLKlIaVRJZ1ElWLCcgKEQZ3e3hrBKtg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=Jd1On+Vr550hDTD40JD7yZqDOg7GUkI+rkkrNE53n5vSlkenWhK+fauM2C53fnIZh 9QjpnrtyER/py4IEb3+VMnLfFMLFCynv2vQNVq9dGaR0bqH7GI4UESiA2v7qeB5VtO 1LQE6wGzTo0yKh+afN+eJFfLfSydDcdnXU2y1znI= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.119.33.160]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MNKhs-1ingu00pR4-00OoCe; Mon, 17 Feb 2020 07:43:22 +0100 From: Heinrich Schuchardt To: Simon Glass Cc: Bin Meng , Sean Anderson , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v4 6/6] configs: sandbox: enable LOG_SYSLOG Date: Mon, 17 Feb 2020 07:43:14 +0100 Message-Id: <20200217064314.67584-7-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200217064314.67584-1-xypron.glpk@gmx.de> References: <20200217064314.67584-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:R+dAMhnqGCE2G9LqJ65hcEUJuTJSujrKgeSi6l1V4uA2Tkai04x O270RTuYDM/SW1pdxRySTVeFpNzwF6F5pMsAb65QUyPh67WXzWn/9o4wUqDef3ht2YP4hoa QGpGFHZxDkHsvaGs7Ujo6hN4rIQTZkvKU1dum7LvXCikMHOQKqUp632Jf6nOJcGZeCRnzH7 j0VTh2ApToc4/7kQrrt3Q== X-UI-Out-Filterresults: notjunk:1; V03:K0:f2CKHV+0V2U=:k+KPf9zkOILYfiSPbxjMDt oamXLqyHKi8NT0roSMTkI1opPgmMdEll4NEPJgaMsjxKcuL8CUrmLu0pumFjQ5Njoug1mkJu4 tcGb7OYNBrNoJOqgMlzoxPE7FwAhp+yAhehB7ZfBnGl9OOWxza3O+/chqRVSsKb3m4Fkl2Gid zvEBHVcEuvdjgDkVRvDOe2TDJLfEoGxtIfIy0YaiTi/fWGhIbZ1bYKIIQPiINGHTWvohWkzdZ cjAhxlvhQat4R9Y/28GbCp8rUUbsvbtzkapV/ttyJLh6CH6cN7J/dhIUfjteI8QUW7Dd8o97h no0jY8zGAWeOOMQVTeUb9y3oBJo/VI6o5PK4VZmSLHZwZH+3L6QVBuvnYDKmLo+dcUuvXoMhE Hkxwzh8eOtHt21a/Bo3XIFYyHDB+A+2OUMRk2KFuT2qC0kwiqfpKIIuG1UenPK+nt+fmvZO+B mR3htPMNV20Q32QVTJUz1gcpQvt3oxc2qSBLLNfAPBOtZgWAVQAg73daffgWo847WrANtkX5s qKqoyk67rjebNyG46JetJqPmj6nI8s5a9xQTWK9fsad4Jo6YC6ncXcH/qHu8eGVOdfhdKfCx6 JCSwXcD+KWm026m49+actckCCFmLRH3bdKbqoKBEvjDvrF1m60LlKLSbXivr/0XJKFqAog09B Wn39MWCEVU56rg6X5Cd6bWyIJ6oi9gHP9syLJpGfyD0KmpdfitHWxhed84RoJdRIs+fHZUI0Q 2ANVuhUdwtn3mdCZzBsDtk5J8HnHgKQXq2SsvQDJa0aeGMK7a8o1A4n85tuOljknzEnmDDHGZ 8NgMA3OO/YYNQDt0Wp1RxLt00ES+5CgwemMtpb+4bhgkm0Q//0CQCrxD5n57BLSCZ16U+d/u6 HoRLOTbEwnRKI8vRAM4p4cqawU+Z0LxcatJ3aqGeU7mJnPfQOUAxftgeYcPkl/8GXic8TVwm+ 8QtnR1E9kA47qtdYbRj7Ai0kMtR9WiwTvskqdX5qlnt5vWowtxGwdPdv+0p2Ilcvm3ku5jnQy DoKyZ3ng5pkHmQ3dsPV3oNV9OqZ79XR8+Ct30QVOPi+knU+vA1co5x6ZQhMcDxtDaR5Ix62aL bpnEzQ4565DE0RqvYDWUGDcexIHJgU33vI/EfViHqqhlO0E8Xa2bcnQqSPx0rPi2gY7l022SE OVCfXQfZqqWNQHjGDY9c14HOObrCUUCCBXX37CQr904SdtymAl48ETxjWMbQOjCQsBJVN2kDs uqvvuXEpmfPBVQtTO 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.1 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 --- 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