diff --git a/tests/by-util/test_dmesg.rs b/tests/by-util/test_dmesg.rs new file mode 100644 index 0000000..095fb61 --- /dev/null +++ b/tests/by-util/test_dmesg.rs @@ -0,0 +1,21 @@ +// This file is part of the uutils coreutils package. +// +// For the full copyright and license information, please view the LICENSE +// file that was distributed with this source code. +use crate::common::util::TestScenario; + +#[test] +fn test_invalid_arg() { + new_ucmd!().arg("--definitely-invalid").fails().code_is(1); +} + +#[test] +fn test_kmsg_json() { + new_ucmd!() + .arg("--kmsg-file") + .arg("kmsg.input") + .arg("--json") + .run() + .no_stderr() + .stdout_is_fixture("test_kmsg_json.expected"); +} diff --git a/tests/fixtures/dmesg/kmsg.input b/tests/fixtures/dmesg/kmsg.input new file mode 100644 index 0000000..a6468dc Binary files /dev/null and b/tests/fixtures/dmesg/kmsg.input differ diff --git a/tests/fixtures/dmesg/test_kmsg_json.expected b/tests/fixtures/dmesg/test_kmsg_json.expected new file mode 100644 index 0000000..fda2510 --- /dev/null +++ b/tests/fixtures/dmesg/test_kmsg_json.expected @@ -0,0 +1,645 @@ +{ + "dmesg": [ + { + "pri": 32, + "time": 0.000000, + "msg": "LOG_EMERG LOG_AUTH" + },{ + "pri": 80, + "time": 1000.000000, + "msg": "LOG_EMERG LOG_AUTHPRIV" + },{ + "pri": 72, + "time": 2000.000000, + "msg": "LOG_EMERG LOG_CRON" + },{ + "pri": 24, + "time": 3000.000000, + "msg": "LOG_EMERG LOG_DAEMON" + },{ + "pri": 88, + "time": 4000.000000, + "msg": "LOG_EMERG LOG_FTP" + },{ + "pri": 0, + "time": 5000.000000, + "msg": "LOG_EMERG LOG_KERN" + },{ + "pri": 128, + "time": 6000.000000, + "msg": "LOG_EMERG LOG_LOCAL0" + },{ + "pri": 136, + "time": 7000.000000, + "msg": "LOG_EMERG LOG_LOCAL1" + },{ + "pri": 144, + "time": 8000.000000, + "msg": "LOG_EMERG LOG_LOCAL2" + },{ + "pri": 152, + "time": 9000.000000, + "msg": "LOG_EMERG LOG_LOCAL3" + },{ + "pri": 160, + "time": 10000.000000, + "msg": "LOG_EMERG LOG_LOCAL4" + },{ + "pri": 168, + "time": 11000.000000, + "msg": "LOG_EMERG LOG_LOCAL5" + },{ + "pri": 176, + "time": 12000.000000, + "msg": "LOG_EMERG LOG_LOCAL6" + },{ + "pri": 184, + "time": 13000.000000, + "msg": "LOG_EMERG LOG_LOCAL7" + },{ + "pri": 48, + "time": 14000.000000, + "msg": "LOG_EMERG LOG_LPR" + },{ + "pri": 16, + "time": 15000.000000, + "msg": "LOG_EMERG LOG_MAIL" + },{ + "pri": 56, + "time": 16000.000000, + "msg": "LOG_EMERG LOG_NEWS" + },{ + "pri": 40, + "time": 17000.000000, + "msg": "LOG_EMERG LOG_SYSLOG" + },{ + "pri": 8, + "time": 18000.000000, + "msg": "LOG_EMERG LOG_USER" + },{ + "pri": 64, + "time": 19000.000000, + "msg": "LOG_EMERG LOG_UUCP" + },{ + "pri": 33, + "time": 20000.000000, + "msg": "LOG_ALERT LOG_AUTH" + },{ + "pri": 81, + "time": 21000.000000, + "msg": "LOG_ALERT LOG_AUTHPRIV" + },{ + "pri": 73, + "time": 22000.000000, + "msg": "LOG_ALERT LOG_CRON" + },{ + "pri": 25, + "time": 23000.000000, + "msg": "LOG_ALERT LOG_DAEMON" + },{ + "pri": 89, + "time": 24000.000000, + "msg": "LOG_ALERT LOG_FTP" + },{ + "pri": 1, + "time": 25000.000000, + "msg": "LOG_ALERT LOG_KERN" + },{ + "pri": 129, + "time": 26000.000000, + "msg": "LOG_ALERT LOG_LOCAL0" + },{ + "pri": 137, + "time": 27000.000000, + "msg": "LOG_ALERT LOG_LOCAL1" + },{ + "pri": 145, + "time": 28000.000000, + "msg": "LOG_ALERT LOG_LOCAL2" + },{ + "pri": 153, + "time": 29000.000000, + "msg": "LOG_ALERT LOG_LOCAL3" + },{ + "pri": 161, + "time": 30000.000000, + "msg": "LOG_ALERT LOG_LOCAL4" + },{ + "pri": 169, + "time": 31000.000000, + "msg": "LOG_ALERT LOG_LOCAL5" + },{ + "pri": 177, + "time": 32000.000000, + "msg": "LOG_ALERT LOG_LOCAL6" + },{ + "pri": 185, + "time": 33000.000000, + "msg": "LOG_ALERT LOG_LOCAL7" + },{ + "pri": 49, + "time": 34000.000000, + "msg": "LOG_ALERT LOG_LPR" + },{ + "pri": 17, + "time": 35000.000000, + "msg": "LOG_ALERT LOG_MAIL" + },{ + "pri": 57, + "time": 36000.000000, + "msg": "LOG_ALERT LOG_NEWS" + },{ + "pri": 41, + "time": 37000.000000, + "msg": "LOG_ALERT LOG_SYSLOG" + },{ + "pri": 9, + "time": 38000.000000, + "msg": "LOG_ALERT LOG_USER" + },{ + "pri": 65, + "time": 39000.000000, + "msg": "LOG_ALERT LOG_UUCP" + },{ + "pri": 34, + "time": 40000.000000, + "msg": "LOG_CRIT LOG_AUTH" + },{ + "pri": 82, + "time": 41000.000000, + "msg": "LOG_CRIT LOG_AUTHPRIV" + },{ + "pri": 74, + "time": 42000.000000, + "msg": "LOG_CRIT LOG_CRON" + },{ + "pri": 26, + "time": 43000.000000, + "msg": "LOG_CRIT LOG_DAEMON" + },{ + "pri": 90, + "time": 44000.000000, + "msg": "LOG_CRIT LOG_FTP" + },{ + "pri": 2, + "time": 45000.000000, + "msg": "LOG_CRIT LOG_KERN" + },{ + "pri": 130, + "time": 46000.000000, + "msg": "LOG_CRIT LOG_LOCAL0" + },{ + "pri": 138, + "time": 47000.000000, + "msg": "LOG_CRIT LOG_LOCAL1" + },{ + "pri": 146, + "time": 48000.000000, + "msg": "LOG_CRIT LOG_LOCAL2" + },{ + "pri": 154, + "time": 49000.000000, + "msg": "LOG_CRIT LOG_LOCAL3" + },{ + "pri": 162, + "time": 50000.000000, + "msg": "LOG_CRIT LOG_LOCAL4" + },{ + "pri": 170, + "time": 51000.000000, + "msg": "LOG_CRIT LOG_LOCAL5" + },{ + "pri": 178, + "time": 52000.000000, + "msg": "LOG_CRIT LOG_LOCAL6" + },{ + "pri": 186, + "time": 53000.000000, + "msg": "LOG_CRIT LOG_LOCAL7" + },{ + "pri": 50, + "time": 54000.000000, + "msg": "LOG_CRIT LOG_LPR" + },{ + "pri": 18, + "time": 55000.000000, + "msg": "LOG_CRIT LOG_MAIL" + },{ + "pri": 58, + "time": 56000.000000, + "msg": "LOG_CRIT LOG_NEWS" + },{ + "pri": 42, + "time": 57000.000000, + "msg": "LOG_CRIT LOG_SYSLOG" + },{ + "pri": 10, + "time": 58000.000000, + "msg": "LOG_CRIT LOG_USER" + },{ + "pri": 66, + "time": 59000.000000, + "msg": "LOG_CRIT LOG_UUCP" + },{ + "pri": 35, + "time": 60000.000000, + "msg": "LOG_ERR LOG_AUTH" + },{ + "pri": 83, + "time": 61000.000000, + "msg": "LOG_ERR LOG_AUTHPRIV" + },{ + "pri": 75, + "time": 62000.000000, + "msg": "LOG_ERR LOG_CRON" + },{ + "pri": 27, + "time": 63000.000000, + "msg": "LOG_ERR LOG_DAEMON" + },{ + "pri": 91, + "time": 64000.000000, + "msg": "LOG_ERR LOG_FTP" + },{ + "pri": 3, + "time": 65000.000000, + "msg": "LOG_ERR LOG_KERN" + },{ + "pri": 131, + "time": 66000.000000, + "msg": "LOG_ERR LOG_LOCAL0" + },{ + "pri": 139, + "time": 67000.000000, + "msg": "LOG_ERR LOG_LOCAL1" + },{ + "pri": 147, + "time": 68000.000000, + "msg": "LOG_ERR LOG_LOCAL2" + },{ + "pri": 155, + "time": 69000.000000, + "msg": "LOG_ERR LOG_LOCAL3" + },{ + "pri": 163, + "time": 70000.000000, + "msg": "LOG_ERR LOG_LOCAL4" + },{ + "pri": 171, + "time": 71000.000000, + "msg": "LOG_ERR LOG_LOCAL5" + },{ + "pri": 179, + "time": 72000.000000, + "msg": "LOG_ERR LOG_LOCAL6" + },{ + "pri": 187, + "time": 73000.000000, + "msg": "LOG_ERR LOG_LOCAL7" + },{ + "pri": 51, + "time": 74000.000000, + "msg": "LOG_ERR LOG_LPR" + },{ + "pri": 19, + "time": 75000.000000, + "msg": "LOG_ERR LOG_MAIL" + },{ + "pri": 59, + "time": 76000.000000, + "msg": "LOG_ERR LOG_NEWS" + },{ + "pri": 43, + "time": 77000.000000, + "msg": "LOG_ERR LOG_SYSLOG" + },{ + "pri": 11, + "time": 78000.000000, + "msg": "LOG_ERR LOG_USER" + },{ + "pri": 67, + "time": 79000.000000, + "msg": "LOG_ERR LOG_UUCP" + },{ + "pri": 36, + "time": 80000.000000, + "msg": "LOG_WARNING LOG_AUTH" + },{ + "pri": 84, + "time": 81000.000000, + "msg": "LOG_WARNING LOG_AUTHPRIV" + },{ + "pri": 76, + "time": 82000.000000, + "msg": "LOG_WARNING LOG_CRON" + },{ + "pri": 28, + "time": 83000.000000, + "msg": "LOG_WARNING LOG_DAEMON" + },{ + "pri": 92, + "time": 84000.000000, + "msg": "LOG_WARNING LOG_FTP" + },{ + "pri": 4, + "time": 85000.000000, + "msg": "LOG_WARNING LOG_KERN" + },{ + "pri": 132, + "time": 86000.000000, + "msg": "LOG_WARNING LOG_LOCAL0" + },{ + "pri": 140, + "time": 87000.000000, + "msg": "LOG_WARNING LOG_LOCAL1" + },{ + "pri": 148, + "time": 88000.000000, + "msg": "LOG_WARNING LOG_LOCAL2" + },{ + "pri": 156, + "time": 89000.000000, + "msg": "LOG_WARNING LOG_LOCAL3" + },{ + "pri": 164, + "time": 90000.000000, + "msg": "LOG_WARNING LOG_LOCAL4" + },{ + "pri": 172, + "time": 91000.000000, + "msg": "LOG_WARNING LOG_LOCAL5" + },{ + "pri": 180, + "time": 92000.000000, + "msg": "LOG_WARNING LOG_LOCAL6" + },{ + "pri": 188, + "time": 93000.000000, + "msg": "LOG_WARNING LOG_LOCAL7" + },{ + "pri": 52, + "time": 94000.000000, + "msg": "LOG_WARNING LOG_LPR" + },{ + "pri": 20, + "time": 95000.000000, + "msg": "LOG_WARNING LOG_MAIL" + },{ + "pri": 60, + "time": 96000.000000, + "msg": "LOG_WARNING LOG_NEWS" + },{ + "pri": 44, + "time": 97000.000000, + "msg": "LOG_WARNING LOG_SYSLOG" + },{ + "pri": 12, + "time": 98000.000000, + "msg": "LOG_WARNING LOG_USER" + },{ + "pri": 68, + "time": 99000.000000, + "msg": "LOG_WARNING LOG_UUCP" + },{ + "pri": 37, + "time": 100000.000000, + "msg": "LOG_NOTICE LOG_AUTH" + },{ + "pri": 85, + "time": 101000.000000, + "msg": "LOG_NOTICE LOG_AUTHPRIV" + },{ + "pri": 77, + "time": 102000.000000, + "msg": "LOG_NOTICE LOG_CRON" + },{ + "pri": 29, + "time": 103000.000000, + "msg": "LOG_NOTICE LOG_DAEMON" + },{ + "pri": 93, + "time": 104000.000000, + "msg": "LOG_NOTICE LOG_FTP" + },{ + "pri": 5, + "time": 105000.000000, + "msg": "LOG_NOTICE LOG_KERN" + },{ + "pri": 133, + "time": 106000.000000, + "msg": "LOG_NOTICE LOG_LOCAL0" + },{ + "pri": 141, + "time": 107000.000000, + "msg": "LOG_NOTICE LOG_LOCAL1" + },{ + "pri": 149, + "time": 108000.000000, + "msg": "LOG_NOTICE LOG_LOCAL2" + },{ + "pri": 157, + "time": 109000.000000, + "msg": "LOG_NOTICE LOG_LOCAL3" + },{ + "pri": 165, + "time": 110000.000000, + "msg": "LOG_NOTICE LOG_LOCAL4" + },{ + "pri": 173, + "time": 111000.000000, + "msg": "LOG_NOTICE LOG_LOCAL5" + },{ + "pri": 181, + "time": 112000.000000, + "msg": "LOG_NOTICE LOG_LOCAL6" + },{ + "pri": 189, + "time": 113000.000000, + "msg": "LOG_NOTICE LOG_LOCAL7" + },{ + "pri": 53, + "time": 114000.000000, + "msg": "LOG_NOTICE LOG_LPR" + },{ + "pri": 21, + "time": 115000.000000, + "msg": "LOG_NOTICE LOG_MAIL" + },{ + "pri": 61, + "time": 116000.000000, + "msg": "LOG_NOTICE LOG_NEWS" + },{ + "pri": 45, + "time": 117000.000000, + "msg": "LOG_NOTICE LOG_SYSLOG" + },{ + "pri": 13, + "time": 118000.000000, + "msg": "LOG_NOTICE LOG_USER" + },{ + "pri": 69, + "time": 119000.000000, + "msg": "LOG_NOTICE LOG_UUCP" + },{ + "pri": 38, + "time": 120000.000000, + "msg": "LOG_INFO LOG_AUTH" + },{ + "pri": 86, + "time": 121000.000000, + "msg": "LOG_INFO LOG_AUTHPRIV" + },{ + "pri": 78, + "time": 122000.000000, + "msg": "LOG_INFO LOG_CRON" + },{ + "pri": 30, + "time": 123000.000000, + "msg": "LOG_INFO LOG_DAEMON" + },{ + "pri": 94, + "time": 124000.000000, + "msg": "LOG_INFO LOG_FTP" + },{ + "pri": 6, + "time": 125000.000000, + "msg": "LOG_INFO LOG_KERN" + },{ + "pri": 134, + "time": 126000.000000, + "msg": "LOG_INFO LOG_LOCAL0" + },{ + "pri": 142, + "time": 127000.000000, + "msg": "LOG_INFO LOG_LOCAL1" + },{ + "pri": 150, + "time": 128000.000000, + "msg": "LOG_INFO LOG_LOCAL2" + },{ + "pri": 158, + "time": 129000.000000, + "msg": "LOG_INFO LOG_LOCAL3" + },{ + "pri": 166, + "time": 130000.000000, + "msg": "LOG_INFO LOG_LOCAL4" + },{ + "pri": 174, + "time": 131000.000000, + "msg": "LOG_INFO LOG_LOCAL5" + },{ + "pri": 182, + "time": 132000.000000, + "msg": "LOG_INFO LOG_LOCAL6" + },{ + "pri": 190, + "time": 133000.000000, + "msg": "LOG_INFO LOG_LOCAL7" + },{ + "pri": 54, + "time": 134000.000000, + "msg": "LOG_INFO LOG_LPR" + },{ + "pri": 22, + "time": 135000.000000, + "msg": "LOG_INFO LOG_MAIL" + },{ + "pri": 62, + "time": 136000.000000, + "msg": "LOG_INFO LOG_NEWS" + },{ + "pri": 46, + "time": 137000.000000, + "msg": "LOG_INFO LOG_SYSLOG" + },{ + "pri": 14, + "time": 138000.000000, + "msg": "LOG_INFO LOG_USER" + },{ + "pri": 70, + "time": 139000.000000, + "msg": "LOG_INFO LOG_UUCP" + },{ + "pri": 39, + "time": 140000.000000, + "msg": "LOG_DEBUG LOG_AUTH" + },{ + "pri": 87, + "time": 141000.000000, + "msg": "LOG_DEBUG LOG_AUTHPRIV" + },{ + "pri": 79, + "time": 142000.000000, + "msg": "LOG_DEBUG LOG_CRON" + },{ + "pri": 31, + "time": 143000.000000, + "msg": "LOG_DEBUG LOG_DAEMON" + },{ + "pri": 95, + "time": 144000.000000, + "msg": "LOG_DEBUG LOG_FTP" + },{ + "pri": 7, + "time": 145000.000000, + "msg": "LOG_DEBUG LOG_KERN" + },{ + "pri": 135, + "time": 146000.000000, + "msg": "LOG_DEBUG LOG_LOCAL0" + },{ + "pri": 143, + "time": 147000.000000, + "msg": "LOG_DEBUG LOG_LOCAL1" + },{ + "pri": 151, + "time": 148000.000000, + "msg": "LOG_DEBUG LOG_LOCAL2" + },{ + "pri": 159, + "time": 149000.000000, + "msg": "LOG_DEBUG LOG_LOCAL3" + },{ + "pri": 167, + "time": 150000.000000, + "msg": "LOG_DEBUG LOG_LOCAL4" + },{ + "pri": 175, + "time": 151000.000000, + "msg": "LOG_DEBUG LOG_LOCAL5" + },{ + "pri": 183, + "time": 152000.000000, + "msg": "LOG_DEBUG LOG_LOCAL6" + },{ + "pri": 191, + "time": 153000.000000, + "msg": "LOG_DEBUG LOG_LOCAL7" + },{ + "pri": 55, + "time": 154000.000000, + "msg": "LOG_DEBUG LOG_LPR" + },{ + "pri": 23, + "time": 155000.000000, + "msg": "LOG_DEBUG LOG_MAIL" + },{ + "pri": 63, + "time": 156000.000000, + "msg": "LOG_DEBUG LOG_NEWS" + },{ + "pri": 47, + "time": 157000.000000, + "msg": "LOG_DEBUG LOG_SYSLOG" + },{ + "pri": 15, + "time": 158000.000000, + "msg": "LOG_DEBUG LOG_USER" + },{ + "pri": 71, + "time": 159000.000000, + "msg": "LOG_DEBUG LOG_UUCP" + } + ] +} diff --git a/tests/tests.rs b/tests/tests.rs index 64cfc84..4532383 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -32,3 +32,7 @@ mod test_setsid; #[cfg(feature = "last")] #[path = "by-util/test_last.rs"] mod test_last; + +#[cfg(feature = "dmesg")] +#[path = "by-util/test_dmesg.rs"] +mod test_dmesg;