2009-12-24 18:36:01 +00:00
#! /bin/bash
2009-09-14 01:07:32 +00:00
2021-03-20 04:29:18 +00:00
echo ${ top_srcdir }
echo ${ top_builddir }
2020-12-06 05:51:46 +00:00
2022-06-04 18:05:39 +00:00
printf '#Date:\t20\x800-2-02\n0\n' | run_cap_test \
env TEST_COMMENT = "short timestamp" ${ lnav_test } -n
2022-06-04 22:31:48 +00:00
printf '000\n000\n#Fields: 0\n0\n#Fields: 0\n0' | run_cap_test \
env TEST_COMMENT = "invalid w3c log" ${ lnav_test } -n
2022-05-24 04:41:50 +00:00
cat > rollover_in.0 <<EOF
2600/2 0 00:00:00 0:
00:2 0 00:00:00 0:
00:2 0 00:00:00 0:
EOF
touch -t 200711030923 rollover_in.0
run_cap_test env TEST_COMMENT = "invalid date rollover" ${ lnav_test } -n rollover_in.0
printf '#Fields: 0\tcs-bytes\n#Fields: 0\n\t0 #\n0' | run_cap_test \
env TEST_COMMENT = "w3c with dupe #Fields" ${ lnav_test } -n
printf '#Fields: \xf9\t)\n0\n' | run_cap_test \
env TEST_COMMENT = "garbage w3c fields #1" ${ lnav_test } -n
2022-05-23 05:45:06 +00:00
run_cap_test env TEST_COMMENT = "w3c with bad header" ${ lnav_test } -n <<EOF
#Fields: 0 time
00:00
#Date:
EOF
printf '\x2b0\x1b[a' | run_cap_test \
env TEST_COMMENT = "log line with an ansi escape" ${ lnav_test } -n
2022-04-30 20:05:42 +00:00
run_cap_test ${ lnav_test } -n \
-c ';SELECT * FROM logline' \
${ test_dir } /logfile_block.1
2022-03-31 15:59:19 +00:00
run_test ${ lnav_test } -d /tmp/lnav.err -n -w logfile_stdin.0.log \
-c ':shexec sleep 1 && touch -t 200711030923 logfile_stdin.0.log' <<EOF
2013-06-06T19:13:20.123 Hi
EOF
check_output "piping to stdin is not working?" <<EOF
2013-06-06T19:13:20.123 Hi
EOF
2021-11-05 22:13:16 +00:00
if test x" ${ TSHARK_CMD } " != x"" ; then
2022-03-05 05:42:55 +00:00
run_test env TZ = UTC ${ lnav_test } -n ${ test_dir } /dhcp.pcapng
2021-11-05 22:13:16 +00:00
check_output "pcap file is not recognized" <<EOF
2022-03-05 05:42:55 +00:00
2004-12-05T19:16:24.317 0.0.0.0 → 255.255.255.255 DHCP 314 DHCP Discover - Transaction ID 0x3d1d
2004-12-05T19:16:24.317 192.168.0.1 → 192.168.0.10 DHCP 342 DHCP Offer - Transaction ID 0x3d1d
2004-12-05T19:16:24.387 0.0.0.0 → 255.255.255.255 DHCP 314 DHCP Request - Transaction ID 0x3d1e
2004-12-05T19:16:24.387 192.168.0.1 → 192.168.0.10 DHCP 342 DHCP ACK - Transaction ID 0x3d1e
2021-11-05 22:13:16 +00:00
EOF
run_test ${ lnav_test } -n ${ test_dir } /dhcp-trunc.pcapng
check_error_output "truncated pcap file is not recognized" <<EOF
error: unable to open file: { test_dir} /dhcp-trunc.pcapng -- tshark: The file "{test_dir}/dhcp-trunc.pcapng" appears to have been cut short in the middle of a packet.
EOF
fi
2020-12-07 23:21:33 +00:00
2020-12-06 05:51:46 +00:00
cp ${ srcdir } /logfile_syslog.0 truncfile.0
chmod u+w truncfile.0
run_test ${ lnav_test } -d /tmp/lnav.err -n \
-c ";update syslog_log set log_mark = 1 where log_line = 1" \
-c ":write-to truncfile.0" \
-c ":goto 1" \
truncfile.0
check_output "truncated log file not detected" <<EOF
Nov 3 09:23:38 veridian automount[ 16442] : attempting to mount entry /auto/opt
EOF
2018-11-16 15:32:07 +00:00
if locale -a | grep fr_FR; then
2020-09-04 05:13:21 +00:00
cp ${ srcdir } /logfile_syslog_fr.0 logfile_syslog_fr_test.0
touch -t 200711030923 logfile_syslog_fr_test.0
2018-11-16 15:32:07 +00:00
run_test env LC_ALL = fr_FR.UTF-8 ${ lnav_test } -n \
-c ";SELECT log_time FROM syslog_log" \
-c ":write-csv-to -" \
2020-09-04 05:13:21 +00:00
logfile_syslog_fr_test.0
2018-08-22 04:43:32 +00:00
2018-11-16 15:32:07 +00:00
check_output "french locale is not recognized" <<EOF
2018-08-22 04:43:32 +00:00
log_time
2007-08-19 11:08:37.000
EOF
2018-11-16 15:32:07 +00:00
fi
2018-08-22 04:43:32 +00:00
2020-10-29 04:17:57 +00:00
if test x" ${ LIBARCHIVE_LIBS } " != x"" ; then
2021-01-23 21:00:51 +00:00
run_test env TMPDIR = tmp ${ lnav_test } -n \
-c ':config /tuning/archive-manager/min-free-space -1' \
${ srcdir } /logfile_syslog.0
check_error_output "invalid min-free-space allowed?" <<EOF
2022-04-12 23:07:13 +00:00
✘ error: “-1” is not a valid value for option “/tuning/archive-manager/min-free-space”
reason: value must be greater than or equal to 0
--> input:1
= help: Property Synopsis
/tuning/archive-manager/min-free-space <bytes>
Description
The minimum free space, in bytes, to maintain when unpacking archives
2021-01-23 21:00:51 +00:00
EOF
rm -rf tmp/lnav-*
2021-01-11 06:04:55 +00:00
if test x" ${ XZ_CMD } " != x"" ; then
${ XZ_CMD } -z -c ${ srcdir } /logfile_syslog.1 > logfile_syslog.1.xz
run_test env TMPDIR = tmp ${ lnav_test } -n \
2021-01-23 21:00:51 +00:00
-c ':config /tuning/archive-manager/min-free-space 1125899906842624' \
2021-01-17 06:23:20 +00:00
-c ':config /tuning/archive-manager/cache-ttl 1d' \
2021-01-23 21:00:51 +00:00
${ srcdir } /logfile_syslog.0
run_test env TMPDIR = tmp ${ lnav_test } -d /tmp/lnav.err -n \
logfile_syslog.1.xz
2021-05-16 05:39:18 +00:00
sed -e "s|lnav-user-[0-9]*-work|lnav-user-NNN-work|g" \
2021-01-23 21:00:51 +00:00
-e "s|arc-[0-9a-z]*-logfile|arc-NNN-logfile|g" \
-e "s|space on disk \(.*\) is|space on disk (NNN) is|g" \
-e " s| ${ builddir } ||g " \
` test_err_filename` > test_logfile.big.out
mv test_logfile.big.out ` test_err_filename`
check_error_output "decompression worked?" <<EOF
2022-04-12 23:07:13 +00:00
✘ error: unable to open file: /logfile_syslog.1.xz
reason: available space on disk ( NNN) is below the minimum-free threshold ( 1.0PB) . Unable to unpack 'logfile_syslog.1.xz' to 'tmp/lnav-user-NNN-work/archives/arc-NNN-logfile_syslog.1.xz'
2021-01-23 21:00:51 +00:00
EOF
run_test env TMPDIR = tmp ${ lnav_test } -n \
-c ':config /tuning/archive-manager/min-free-space 33554432' \
${ srcdir } /logfile_syslog.0
run_test env TMPDIR = tmp ${ lnav_test } -n \
2021-01-11 06:04:55 +00:00
logfile_syslog.1.xz
check_output "decompression not working" <<EOF
Dec 3 09:23:38 veridian automount[ 7998] : lookup( file) : lookup for foobar failed
Dec 3 09:23:38 veridian automount[ 16442] : attempting to mount entry /auto/opt
Dec 3 09:23:38 veridian automount[ 7999] : lookup( file) : lookup for opt failed
Jan 3 09:47:02 veridian sudo: timstack : TTY = pts/6 ; PWD = /auto/wstimstack/rpms/lbuild/test ; USER = root ; COMMAND = /usr/bin/tail /var/log/messages
EOF
fi
2021-03-20 04:29:18 +00:00
tar cfz ${ builddir } /test-logs.tgz -C ${ top_srcdir } test/logfile_access_log.0 test/logfile_access_log.1 test/logfile_empty.0 -C ${ builddir } /.. src/lnav
2020-11-01 05:19:41 +00:00
dd if = test-logs.tgz of = test-logs-trunc.tgz bs = 4096 count = 20
2020-10-29 04:17:57 +00:00
mkdir -p tmp
2021-01-17 06:23:20 +00:00
run_test env TMPDIR = tmp ${ lnav_test } \
-c ':config /tuning/archive-manager/cache-ttl 1d' \
-n test-logs.tgz
2020-10-29 04:17:57 +00:00
check_output "archive not unpacked" <<EOF
192.168.202.254 - - [ 20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
192.168.202.254 - - [ 20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
192.168.202.254 - - [ 20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
10.112.81.15 - - [ 15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-"
EOF
2021-05-16 05:39:18 +00:00
if ! test -f tmp/*/archives/*-test-logs.tgz/test/logfile_access_log.0; then
2020-10-29 04:17:57 +00:00
echo "archived file not unpacked"
exit 1
fi
2021-05-16 05:39:18 +00:00
if test -w tmp/*/archives/*-test-logs.tgz/test/logfile_access_log.0; then
2020-10-29 04:17:57 +00:00
echo "archived file is writable"
exit 1
fi
2020-10-29 04:18:57 +00:00
2021-01-17 06:23:20 +00:00
env TMPDIR = tmp ${ lnav_test } -d /tmp/lnav.err \
-c ':config /tuning/archive-manager/cache-ttl 0d' \
-n -q ${ srcdir } /logfile_syslog.0
2021-05-16 05:39:18 +00:00
if test -f tmp/lnav*/archives/*-test-logs.tgz/test/logfile_access_log.0; then
2021-01-17 06:23:20 +00:00
echo "archive cache not deleted?"
exit 1
fi
run_test env TMPDIR = tmp ${ lnav_test } -n\
2020-11-25 22:47:39 +00:00
-c ';SELECT view_name, basename(filepath), visible FROM lnav_view_files' \
2020-10-29 04:18:57 +00:00
test-logs.tgz
check_output "archive files not loaded correctly" <<EOF
2020-11-25 22:47:39 +00:00
view_name basename( filepath) visible
log logfile_access_log.0 1
log logfile_access_log.1 1
2020-11-01 05:19:41 +00:00
EOF
run_test env TMPDIR = tmp ${ lnav_test } -n \
test-logs-trunc.tgz
2022-04-12 23:07:13 +00:00
sed -e " s| ${ builddir } ||g " ` test_err_filename` | head -2 \
2020-11-01 05:19:41 +00:00
> test_logfile.trunc.out
mv test_logfile.trunc.out ` test_err_filename`
check_error_output "truncated tgz not reported correctly" <<EOF
2022-04-12 23:07:13 +00:00
✘ error: unable to open file: /test-logs-trunc.tgz
reason: failed to extract 'src/lnav' from archive '/test-logs-trunc.tgz' -- truncated gzip input
2020-11-01 05:19:41 +00:00
EOF
mkdir -p rotmp
chmod ugo-w rotmp
run_test env TMPDIR = rotmp ${ lnav_test } -n test-logs.tgz
2021-05-16 05:39:18 +00:00
sed -e "s|lnav-user-[0-9]*-work|lnav-user-NNN-work|g" \
2021-08-29 05:14:24 +00:00
-e 's|log\.0 -- .*|log\.0 -- ...|g' \
2020-11-17 18:04:23 +00:00
-e "s|arc-[0-9a-z]*-test|arc-NNN-test|g" \
2020-11-01 05:19:41 +00:00
-e " s| ${ builddir } ||g " \
2022-04-12 23:07:13 +00:00
` test_err_filename` | head -2 \
2020-11-01 05:19:41 +00:00
> test_logfile.rotmp.out
2021-05-16 05:39:18 +00:00
cp test_logfile.rotmp.out ` test_err_filename`
2020-11-01 05:19:41 +00:00
check_error_output "archive not unpacked" <<EOF
2022-04-12 23:07:13 +00:00
✘ error: unable to open file: /test-logs.tgz
reason: unable to create directory: rotmp/lnav-user-NNN-work/archives -- Permission denied
2020-10-29 04:18:57 +00:00
EOF
2020-10-29 04:17:57 +00:00
fi
2015-11-15 06:17:59 +00:00
touch unreadable.log
chmod ugo-r unreadable.log
run_test ${ lnav_test } -n unreadable.log
2022-04-12 23:07:13 +00:00
sed -e "s|/.*/unreadable.log|unreadable.log|g" ` test_err_filename` | head -3 \
2019-09-10 12:39:34 +00:00
> test_logfile.unreadable.out
2015-11-15 06:17:59 +00:00
2019-09-10 12:39:34 +00:00
mv test_logfile.unreadable.out ` test_err_filename`
2015-11-15 06:17:59 +00:00
check_error_output "able to read an unreadable log file?" <<EOF
2022-07-17 14:47:53 +00:00
✘ error: file exists, but is not readable: unreadable.log
2022-04-12 23:07:13 +00:00
reason: Permission denied
2015-11-15 06:17:59 +00:00
EOF
run_test ${ lnav_test } -n 'unreadable.*'
check_output "unreadable file was not skipped" <<EOF
EOF
2009-09-14 01:07:32 +00:00
run_test ./drive_logfile -f syslog_log ${ srcdir } /logfile_syslog.0
on_error_fail_with "Didn't infer syslog log format?"
run_test ./drive_logfile -f tcsh_history ${ srcdir } /logfile_tcsh_history.0
on_error_fail_with "Didn't infer tcsh-history log format?"
run_test ./drive_logfile -f access_log ${ srcdir } /logfile_access_log.0
on_error_fail_with "Didn't infer access_log log format?"
2010-01-24 20:25:34 +00:00
run_test ./drive_logfile -f strace_log ${ srcdir } /logfile_strace_log.0
on_error_fail_with "Didn't infer strace_log log format?"
2015-04-05 14:12:20 +00:00
run_test ./drive_logfile -f zblued_log ${ srcdir } /logfile_blued.0
on_error_fail_with "Didn't infer blued_log that collides with syslog?"
2017-04-23 14:11:21 +00:00
run_test ./drive_logfile -f bro_http_log ${ srcdir } /logfile_bro_http.log.0
on_error_fail_with "Didn't infer bro_http_log log format?"
run_test ./drive_logfile -f bro_conn_log ${ srcdir } /logfile_bro_conn.log.0
on_error_fail_with "Didn't infer bro_conn_log log format?"
2020-12-19 06:35:23 +00:00
run_test ./drive_logfile -f w3c_log ${ srcdir } /logfile_w3c.0
2020-12-06 05:51:46 +00:00
2020-12-19 06:35:23 +00:00
on_error_fail_with "Didn't infer w3c_log log format?"
2020-12-06 05:51:46 +00:00
2009-09-14 01:07:32 +00:00
run_test ./drive_logfile ${ srcdir } /logfile_empty.0
on_error_fail_with "Didn't handle empty log?"
2020-12-06 05:51:46 +00:00
2020-12-19 06:35:23 +00:00
run_test ./drive_logfile -t -f w3c_log ${ srcdir } /logfile_w3c.2
2020-12-06 05:51:46 +00:00
check_output "w3c timestamp interpreted incorrectly?" <<EOF
Oct 09 16:44:49 2000 -- 000
Oct 09 16:44:49 2000 -- 000
Oct 09 16:48:05 2000 -- 000
Oct 09 16:48:17 2000 -- 000
Oct 09 16:48:24 2000 -- 000
Oct 09 16:48:35 2000 -- 000
Oct 09 16:48:41 2000 -- 000
Oct 09 16:48:41 2000 -- 000
Oct 09 16:48:41 2000 -- 000
Oct 09 16:48:41 2000 -- 000
Oct 09 16:48:44 2000 -- 000
Oct 10 16:44:49 2000 -- 000
Oct 10 16:44:49 2000 -- 000
Oct 10 16:48:05 2000 -- 000
EOF
2020-12-19 06:35:23 +00:00
run_test ./drive_logfile -t -f w3c_log ${ srcdir } /logfile_w3c.4
2020-12-06 05:51:46 +00:00
check_output "quoted w3c timestamp interpreted incorrectly?" <<EOF
Jun 28 07:26:35 2017 -- 000
Jun 26 18:21:17 2017 -- 000
EOF
2020-09-04 05:13:21 +00:00
cp ${ srcdir } /logfile_syslog.0 logfile_syslog_test.0
touch -t 200711030923 logfile_syslog_test.0
run_test ./drive_logfile -t -f syslog_log logfile_syslog_test.0
2009-09-14 01:07:32 +00:00
check_output "Syslog timestamp interpreted incorrectly?" <<EOF
Nov 03 09:23:38 2007 -- 000
Nov 03 09:23:38 2007 -- 000
Nov 03 09:23:38 2007 -- 000
Nov 03 09:47:02 2007 -- 000
EOF
2014-03-15 11:40:58 +00:00
touch -t 200711030923 ${ srcdir } /logfile_syslog.1
2009-09-14 01:07:32 +00:00
run_test ./drive_logfile -t -f syslog_log ${ srcdir } /logfile_syslog.1
check_output "Syslog timestamp interpreted incorrectly for year end?" <<EOF
Dec 03 09:23:38 2006 -- 000
Dec 03 09:23:38 2006 -- 000
Dec 03 09:23:38 2006 -- 000
Jan 03 09:47:02 2007 -- 000
EOF
2016-05-03 13:43:00 +00:00
touch -t 200711030000 ${ srcdir } /logfile_rollover.0
run_test ./drive_logfile -t -f generic_log ${ srcdir } /logfile_rollover.0
check_output "Generic timestamp interpreted incorrectly for day rollover?" <<EOF
Nov 02 00:00:00 2007 -- 000
Nov 02 01:00:00 2007 -- 000
Nov 02 02:00:00 2007 -- 000
Nov 02 03:00:00 2007 -- 000
Nov 03 00:00:00 2007 -- 000
Nov 03 00:01:00 2007 -- 000
EOF
2014-03-15 11:40:58 +00:00
gzip -c ${ srcdir } /logfile_syslog.1 > logfile_syslog.1.gz
run_test ./drive_logfile -t -f syslog_log logfile_syslog.1.gz
check_output "Syslog timestamp incorrect for gzipped file?" <<EOF
Dec 03 09:23:38 2006 -- 000
Dec 03 09:23:38 2006 -- 000
Dec 03 09:23:38 2006 -- 000
Jan 03 09:47:02 2007 -- 000
EOF
2015-04-01 23:55:09 +00:00
if [ " $BZIP2_SUPPORT " -eq 1 ] && [ x" $BZIP2_CMD " != x"" ] ; then
2014-03-15 11:40:58 +00:00
$BZIP2_CMD -z -c " ${ srcdir } /logfile_syslog.1 " > logfile_syslog.1.bz2
touch -t 200711030923 logfile_syslog.1.bz2
run_test ./drive_logfile -t -f syslog_log logfile_syslog.1.bz2
check_output "bzip2 file not loaded?" <<EOF
Dec 03 09:23:38 2006 -- 000
Dec 03 09:23:38 2006 -- 000
Dec 03 09:23:38 2006 -- 000
Jan 03 09:47:02 2007 -- 000
EOF
fi
2014-04-07 14:18:58 +00:00
touch -t 201404061109 ${ srcdir } /logfile_tcf.1
2014-04-07 05:11:04 +00:00
run_test ./drive_logfile -t -f tcf_log ${ srcdir } /logfile_tcf.1
check_output "TCF timestamp interpreted incorrectly for hour wrap?" <<EOF
2014-04-07 14:30:15 +00:00
Apr 06 09:59:47 2014 -- 191
Apr 06 10:30:11 2014 -- 474
Apr 06 11:01:11 2014 -- 475
2014-04-07 05:11:04 +00:00
EOF
2022-04-04 16:14:57 +00:00
run_test ${ lnav_test } -n ${ srcdir } /logfile_tcf.1
check_output "timestamps with no dates are not rewritten?" <<EOF
2022-04-06 19:23:07 +00:00
TCF 2014-04-06 09:59:47.191000: Server-Properties: { "Name" :"TCF Protocol Logger" ,"OSName" :"Linux 3.2.0-60-generic" ,"UserName" :"xavier" ,"AgentID" :"1fde3dd1-d4be-4f79-8090-6f8d212f03bf" ,"TransportName" :"TCP" ,"Proxy" :"" ,"ValueAdd" :"1" ,"Port" :"1534" }
TCF 2014-04-06 10:30:11.474000: 0: ---> C 2 RunControl getChildren null <eom>
2022-04-04 16:14:57 +00:00
TCF 2014-04-06 11:01:11.475000: 0: <--- R 2 [ "P1" ] <eom>
EOF
2014-03-15 11:49:37 +00:00
# The TCSH format converts to local time, so we need to specify a TZ
export TZ = "UTC"
2009-09-14 01:07:32 +00:00
run_test ./drive_logfile -t -f tcsh_history ${ srcdir } /logfile_tcsh_history.0
check_output "TCSH timestamp interpreted incorrectly?" <<EOF
2014-03-15 11:49:37 +00:00
Nov 02 17:59:26 2006 -- 000
Nov 02 17:59:26 2006 -- 000
Nov 02 17:59:45 2006 -- 000
Nov 02 17:59:45 2006 -- 000
2009-09-14 01:07:32 +00:00
EOF
run_test ./drive_logfile -t -f access_log ${ srcdir } /logfile_access_log.0
check_output "access_log timestamp interpreted incorrectly?" <<EOF
Jul 20 22:59:26 2009 -- 000
Jul 20 22:59:29 2009 -- 000
Jul 20 22:59:29 2009 -- 000
EOF
2016-04-03 03:58:20 +00:00
run_test ./drive_logfile -t -f generic_log ${ srcdir } /logfile_tai64n.0
check_output "tai64n timestamps interpreted incorrectly?" <<EOF
Sep 22 03:31:05 2005 -- 997
Sep 22 03:31:05 2005 -- 997
Sep 22 03:31:06 2005 -- 210
Sep 22 03:31:06 2005 -- 210
Sep 22 03:31:07 2005 -- 714
Sep 22 03:31:07 2005 -- 714
Sep 22 03:31:07 2005 -- 715
Sep 22 03:31:07 2005 -- 715
Sep 22 03:31:07 2005 -- 954
Sep 22 03:31:07 2005 -- 954
EOF
2014-03-15 11:40:58 +00:00
touch -t 200711030923 ${ srcdir } /logfile_strace_log.0
2010-01-24 20:25:34 +00:00
run_test ./drive_logfile -t -f strace_log ${ srcdir } /logfile_strace_log.0
check_output "strace_log timestamp interpreted incorrectly?" <<EOF
2014-03-15 11:40:58 +00:00
Nov 03 08:09:33 2007 -- 814
Nov 03 08:09:33 2007 -- 815
Nov 03 08:09:33 2007 -- 815
Nov 03 08:09:33 2007 -- 815
Nov 03 08:09:33 2007 -- 816
Nov 03 08:09:33 2007 -- 816
Nov 03 08:09:33 2007 -- 816
Nov 03 08:09:33 2007 -- 816
Nov 03 08:09:33 2007 -- 816
2010-01-24 20:25:34 +00:00
EOF
2015-04-11 05:55:57 +00:00
run_test ./drive_logfile -t -f epoch_log ${ srcdir } /logfile_epoch.0
check_output "epoch_log timestamp interpreted incorrectly?" <<EOF
Apr 10 02:58:07 2015 -- 123
Apr 10 02:58:07 2015 -- 456
EOF
2015-09-14 15:56:42 +00:00
2016-11-22 16:38:45 +00:00
run_test ./drive_logfile -t -f epoch_log ${ srcdir } /logfile_epoch.1
2016-11-22 17:48:05 +00:00
check_error_output "epoch" <<EOF
EOF
2016-11-22 16:38:45 +00:00
check_output "epoch_log timestamp interpreted incorrectly?" <<EOF
Apr 09 19:58:07 2015 -- 123
Apr 09 19:58:07 2015 -- 456
EOF
2015-09-14 15:56:42 +00:00
touch -t 201509130923 ${ srcdir } /logfile_syslog_with_mixed_times.0
run_test ./drive_logfile -t -f syslog_log ${ srcdir } /logfile_syslog_with_mixed_times.0
check_output "syslog_log with mixed times interpreted incorrectly?" <<EOF
Sep 13 00:58:45 2015 -- 000
Sep 13 00:59:30 2015 -- 000
Sep 13 01:23:54 2015 -- 000
Sep 13 03:12:04 2015 -- 000
Sep 13 03:12:04 2015 -- 000
Sep 13 03:12:04 2015 -- 000
Sep 13 03:12:04 2015 -- 000
Sep 13 03:12:58 2015 -- 000
Sep 13 03:46:03 2015 -- 000
Sep 13 03:46:03 2015 -- 000
Sep 13 03:46:03 2015 -- 000
Sep 13 03:46:03 2015 -- 000
Sep 13 03:46:03 2015 -- 000
EOF
2009-09-14 01:07:32 +00:00
##
run_test ./drive_logfile -v -f syslog_log ${ srcdir } /logfile_syslog.0
check_output "Syslog level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
error 0x0
info 0x0
error 0x0
info 0x0
2009-09-14 01:07:32 +00:00
EOF
run_test ./drive_logfile -v -f tcsh_history ${ srcdir } /logfile_tcsh_history.0
check_output "TCSH level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
info 0x0
info 0x80
info 0x0
info 0x80
2009-09-14 01:07:32 +00:00
EOF
run_test ./drive_logfile -v -f access_log ${ srcdir } /logfile_access_log.0
check_output "access_log level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
info 0x0
error 0x0
info 0x0
2009-09-14 01:07:32 +00:00
EOF
2010-01-24 20:25:34 +00:00
run_test ./drive_logfile -v -f strace_log ${ srcdir } /logfile_strace_log.0
check_output "strace_log level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
info 0x0
info 0x0
info 0x0
error 0x0
info 0x0
error 0x0
info 0x0
info 0x0
info 0x0
2010-01-24 20:25:34 +00:00
EOF
2012-07-03 19:01:09 +00:00
run_test ./drive_logfile -t -f generic_log ${ srcdir } /logfile_generic.0
check_output "generic_log timestamp interpreted incorrectly?" <<EOF
Jul 02 10:22:40 2012 -- 672
2014-10-30 03:05:33 +00:00
Oct 08 16:56:38 2014 -- 344
2012-07-03 19:01:09 +00:00
EOF
2021-07-13 17:40:24 +00:00
run_test ./drive_logfile -t -f generic_log ${ srcdir } /logfile_generic.3
check_output "generic_log timestamp interpreted incorrectly?" <<EOF
Jul 02 10:22:40 2012 -- 672
Oct 08 16:56:38 2014 -- 344
EOF
2012-07-03 19:01:09 +00:00
run_test ./drive_logfile -v -f generic_log ${ srcdir } /logfile_generic.0
check_output "generic_log level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
debug 0x0
warning 0x0
2012-07-03 19:01:09 +00:00
EOF
2013-05-18 00:44:55 +00:00
2015-05-02 03:52:00 +00:00
run_test ./drive_logfile -v -f generic_log ${ srcdir } /logfile_generic.1
2015-05-17 12:15:41 +00:00
check_output "generic_log (1) level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
info 0x0
error 0x0
2015-05-02 03:52:00 +00:00
EOF
2015-05-17 12:15:41 +00:00
run_test ./drive_logfile -v -f generic_log ${ srcdir } /logfile_generic.2
check_output "generic_log (2) level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
error 0x0
error 0x0
2015-05-17 12:15:41 +00:00
EOF
2014-03-15 11:40:58 +00:00
touch -t 200711030923 ${ srcdir } /logfile_glog.0
2013-05-18 00:44:55 +00:00
run_test ./drive_logfile -t -f glog_log ${ srcdir } /logfile_glog.0
check_output "glog_log timestamp interpreted incorrectly?" <<EOF
May 17 15:04:22 2007 -- 619
May 17 15:04:22 2007 -- 619
May 17 15:04:22 2007 -- 619
May 17 15:04:22 2007 -- 619
May 17 15:04:22 2007 -- 619
May 17 15:04:22 2007 -- 619
May 17 15:04:22 2007 -- 619
EOF
run_test ./drive_logfile -v -f glog_log ${ srcdir } /logfile_glog.0
check_output "glog_log level interpreted incorrectly?" <<EOF
2018-10-17 14:03:33 +00:00
error 0x0
info 0x0
info 0x0
warning 0x0
info 0x0
info 0x0
error 0x0
2013-05-18 00:44:55 +00:00
EOF
2014-04-18 12:17:24 +00:00
2021-10-03 06:17:33 +00:00
run_test ./drive_logfile -t -f logfmt_log ${ srcdir } /logfile_logfmt.0
check_output "logfmt_log time interpreted incorrectly?" <<EOF
Sep 15 21:17:10 2021 -- 220
Sep 15 21:17:11 2021 -- 674
Sep 15 21:17:11 2021 -- 678
Sep 15 21:17:11 2021 -- 679
Sep 15 21:18:20 2021 -- 335
EOF
run_test ./drive_logfile -v -f logfmt_log ${ srcdir } /logfile_logfmt.0
check_output "logfmt_log level interpreted incorrectly?" <<EOF
error 0x0
warning 0x0
info 0x0
info 0x0
error 0x0
EOF
2021-05-26 05:27:09 +00:00
run_test ${ lnav_test } -d /tmp/lnav.err -nt -w logfile_stdin.log <<EOF
Hi
EOF
2015-04-02 13:49:16 +00:00
check_output "piping to stdin is not working?" <<EOF
2013-06-06T19:13:20.123 Hi
2013-06-06T19:13:20.123 ---- END-OF-STDIN ----
EOF
2015-07-11 23:32:48 +00:00
2021-05-26 05:27:09 +00:00
run_test ${ lnav_test } -C ${ test_dir } /logfile_bad_access_log.0
2015-07-11 23:32:48 +00:00
2021-06-07 15:59:24 +00:00
sed -ibak -e "s|/.*/logfile_bad_access_log.0|logfile_bad_access_log.0|g" ` test_err_filename`
2015-07-11 23:32:48 +00:00
check_error_output "bad access_log line not found?" <<EOF
2022-04-12 23:07:13 +00:00
error:logfile_bad_access_log.0:1:line did not match format /access_log/regex/std
2015-07-20 13:33:52 +00:00
error:logfile_bad_access_log.0:1: line -- 192.168.202.254 [ 20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
error:logfile_bad_access_log.0:1:partial match -- 192.168.202.254
2015-07-11 23:32:48 +00:00
EOF
2016-11-21 19:34:12 +00:00
2020-12-06 05:51:46 +00:00
run_test ${ lnav_test } -n -I ${ test_dir } ${ srcdir } /logfile_w3c.2
check_output "metadata lines not ignored?" <<EOF
16:44:49 1.1.1.1 [ 2] USER anonymous 331
16:44:49 1.1.1.1 [ 2] PASS - 230
16:48:05 1.1.1.1 [ 2] QUIT - 226
16:48:17 1.1.1.1 [ 3] USER anonymous 331
16:48:24 1.1.1.1 [ 3] PASS user@domain.com 230
16:48:35 1.1.1.1 [ 3] sent /user/test.c 226
16:48:41 1.1.1.1 [ 3] created readme.txt 226
16:48:41 1.1.1.1 [ 3] created fileid.diz 226
16:48:41 1.1.1.1 [ 3] created names.dll 226
16:48:41 1.1.1.1 [ 3] created TEST.EXE 226
16:48:44 1.1.1.1 [ 3] QUIT - 226
16:44:49 1.1.1.1 [ 2] USER anonymous 331
16:44:49 1.1.1.1 [ 2] PASS - 230
16:48:05 1.1.1.1 [ 2] QUIT - 226
EOF
run_test ${ lnav_test } -n -I ${ test_dir } ${ srcdir } /logfile_w3c.6
check_output "unicode in w3c not working?" <<EOF
2015-01-13 00:32:17 100.79.192.81 GET /robots.txt - 80 - 157.55.39.146 ÄÖÜäöü\ß ßßMözillä/5.0+( compatible; +bingbot/2.0; ++http://www.bing.com/bingbot.htm) - 404 0 2 1405 242 283
EOF
2016-11-21 19:34:12 +00:00
run_test ${ lnav_test } -n -I ${ test_dir } ${ srcdir } /logfile_epoch.0
check_output "rewriting machine-oriented timestamp didn't work?" <<EOF
2015-04-10 02:58:07.123000 Hello, World!
2015-04-10 02:58:07.456000 Goodbye, World!
EOF
2016-11-23 14:41:22 +00:00
2018-10-12 14:46:18 +00:00
run_test ${ lnav_test } -n -I ${ test_dir } ${ srcdir } /logfile_crlf.0
check_output "CR-LF line-endings not handled?" <<EOF
2012-07-02 10:22:40,672:DEBUG:foo bar baz
2014-10-08 16:56:38,344:WARN:foo bar baz
EOF
2019-03-13 23:37:41 +00:00
run_test ${ lnav_test } -n -I ${ test_dir } \
-c ';SELECT count(*) FROM haproxy_log' \
${ srcdir } /logfile_haproxy.0
check_output "multi-pattern logs don't work?" <<EOF
count( *)
17
EOF
2019-05-17 14:42:05 +00:00
run_test ${ lnav_test } -n \
${ srcdir } /logfile_syslog_with_header.0
check_output "multi-pattern logs don't work?" <<EOF
Header1: abc
Header2: def
Nov 3 09:23:38 veridian automount[ 7998] : lookup( file) : lookup for foobar failed
Nov 3 09:23:38 veridian automount[ 16442] : attempting to mount entry /auto/opt
Nov 3 09:23:38 veridian automount[ 7999] : lookup( file) : lookup for opt failed
Nov 3 09:47:02 veridian sudo: timstack : TTY = pts/6 ; PWD = /auto/wstimstack/rpms/lbuild/test ; USER = root ; COMMAND = /usr/bin/tail /var/log/messages
EOF
run_test ${ lnav_test } -n \
${ srcdir } /logfile_generic_with_header.0
check_output "multi-pattern logs don't work?" <<EOF
Header1: abc
Header2: def
2012-07-02 10:22:40,672:DEBUG:foo bar baz
2014-10-08 16:56:38,344:WARN:foo bar baz
EOF
2016-11-23 14:41:22 +00:00
# XXX get this working...
# run_test ${lnav_test} -n -I ${test_dir} <(cat ${srcdir}/logfile_access_log.0)
#
# check_output "opening a FIFO didn't work?" <<EOF
# 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
# EOF