]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (lslogins) test --json output mode
authorChristian Goeschel Ndjomouo <cgoesc2@wgu.edu>
Sat, 11 Oct 2025 16:40:40 +0000 (12:40 -0400)
committerChristian Goeschel Ndjomouo <cgoesc2@wgu.edu>
Sat, 11 Oct 2025 22:25:45 +0000 (18:25 -0400)
Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
tests/expected/lslogins/json_mode [new file with mode: 0644]
tests/ts/lslogins/json_mode [new file with mode: 0755]

diff --git a/tests/expected/lslogins/json_mode b/tests/expected/lslogins/json_mode
new file mode 100644 (file)
index 0000000..5476b70
--- /dev/null
@@ -0,0 +1,10 @@
+{
+   "logins": [
+      {
+         "user": "root",
+         "last-login": "2024-01-29T15:45:15+00:00",
+         "last-tty": "test-tty",
+         "last-hostname": "test-host"
+      }
+   ]
+}
diff --git a/tests/ts/lslogins/json_mode b/tests/ts/lslogins/json_mode
new file mode 100755 (executable)
index 0000000..95a6aff
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+TS_TOPDIR="${0%/*}/../.."
+TS_DESC="test JSON output mode"
+
+. "$TS_TOPDIR"/functions.sh
+ts_init "$*"
+ts_check_prog sqlite3
+ts_check_test_command "$TS_CMD_LSLOGINS"
+
+$TS_CMD_LSLOGINS --version|grep "lastlog2" >/dev/null
+if [ $? -ne 0 ]; then
+    ts_skip "lastlog2 not supported"
+fi
+
+DB_FILE="$TS_OUTDIR/${TS_TESTNAME}.db"
+
+export TZ="GMT"
+sqlite3 "$DB_FILE" < $TS_SELF/create_db.sql
+
+# tests for lastlog2 environment
+$TS_CMD_LSLOGINS --lastlog-file=/dev/null \
+       --lastlog2-file="$DB_FILE" \
+       --wtmp-file=/dev/null \
+       --btmp-file=/dev/null \
+       --output USER,LAST-LOGIN,LAST-TTY,LAST-HOSTNAME \
+       --time-format iso \
+       --logins=root \
+        --json > "$TS_OUTPUT"
+
+rm $DB_FILE
+ts_finalize
\ No newline at end of file