From: Stefan Schubert Date: Tue, 30 Jan 2024 17:04:58 +0000 (+0100) Subject: creating lastlog2 database in the tests X-Git-Tag: v2.42-start~535^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a46d1739cdf9569b02ec76bef71aa462fc2cfd4d;p=thirdparty%2Futil-linux.git creating lastlog2 database in the tests --- diff --git a/login-utils/lslogins.c b/login-utils/lslogins.c index 1a954bd54..c6958a464 100644 --- a/login-utils/lslogins.c +++ b/login-utils/lslogins.c @@ -1738,7 +1738,15 @@ int main(int argc, char *argv[]) ctl->time_mode = parse_time_mode(optarg); break; case 'V': - print_version(EXIT_SUCCESS); + { + static const char *features[] = { +#ifdef HAVE_LIBLASTLOG2 + "lastlog2", +#endif + NULL + }; + print_version_with_features(EXIT_SUCCESS, features); + } case 'Z': { #ifdef HAVE_LIBSELINUX diff --git a/tests/ts/lslogins/checkuser b/tests/ts/lslogins/checkuser index b04f824b5..9da3ac734 100755 --- a/tests/ts/lslogins/checkuser +++ b/tests/ts/lslogins/checkuser @@ -10,23 +10,31 @@ ts_check_test_command "$TS_CMD_LSLOGINS" # # lslogin # -$TS_CMD_LSLOGINS --help|grep "\--lastlog2" >/dev/null -if [ $? -eq 0 ]; then - # tests for lastlog2 environment - $TS_CMD_LSLOGINS -L --lastlog2="${0%/*}/lastlog2.db" root |grep "test-tty" >/dev/null - if [ $? -ne 0 ]; then - ts_die "Cannot find test-tty for user root in lastlog2.db" - fi - $TS_CMD_LSLOGINS -L --lastlog2="${0%/*}/lastlog2.db" root |grep "test-host" >/dev/null - if [ $? -ne 0 ]; then - ts_die "Cannot find test-host for user root in lastlog2.db" - fi - $TS_CMD_LSLOGINS -L --lastlog2="${0%/*}/lastlog2.db" root |grep "Jan29/16:45" >/dev/null - if [ $? -ne 0 ]; then - echo `$TS_CMD_LSLOGINS -L --lastlog2="${0%/*}/lastlog2.db" root` >> $TS_OUTPUT - ts_die "Cannot find correct last login Jan29/16:45 for user root in lastlog2.db" - fi +$TS_CMD_LSLOGINS --version|grep "lastlog2" >/dev/null +if [ $? -ne 0 ]; then + ts_skip "lastlog2 not supported" fi +sqlite3 $TS_SELF/lastlog2.db < $TS_SELF/create_db.sql + +# tests for lastlog2 environment +$TS_CMD_LSLOGINS -L --lastlog2="${TS_SELF}/lastlog2.db" root |grep "test-tty" >/dev/null +if [ $? -ne 0 ]; then + rm $TS_SELF/lastlog2.db + ts_die "Cannot find test-tty for user root in lastlog2.db" +fi +$TS_CMD_LSLOGINS -L --lastlog2="${TS_SELF}/lastlog2.db" root |grep "test-host" >/dev/null +if [ $? -ne 0 ]; then + rm $TS_SELF/lastlog2.db + ts_die "Cannot find test-host for user root in lastlog2.db" +fi +$TS_CMD_LSLOGINS -L --lastlog2="${TS_SELF}/lastlog2.db" root |grep "Jan29/16:45" >/dev/null +if [ $? -ne 0 ]; then + echo `$TS_CMD_LSLOGINS -L --lastlog2="${TS_SELF}/lastlog2.db" root` >> $TS_OUTPUT + rm $TS_SELF/lastlog2.db + ts_die "Cannot find correct last login Jan29/16:45 for user root in lastlog2.db" +fi + +rm $TS_SELF/lastlog2.db ts_finalize diff --git a/tests/ts/lslogins/create_db.sql b/tests/ts/lslogins/create_db.sql new file mode 100644 index 000000000..c8a9e5a3e --- /dev/null +++ b/tests/ts/lslogins/create_db.sql @@ -0,0 +1,9 @@ +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; +CREATE TABLE Lastlog2(Name TEXT PRIMARY KEY, Time INTEGER, TTY TEXT, RemoteHost TEXT, Service TEXT); +INSERT INTO Lastlog2 VALUES('user1',1706543115,'test-tty','localhost','test'); +INSERT INTO Lastlog2 VALUES('user2',0,NULL,NULL,NULL); +INSERT INTO Lastlog2 VALUES('user3',1706543115,NULL,NULL,NULL); +INSERT INTO Lastlog2 VALUES('root',1706543115,'test-tty','test-host',NULL); +INSERT INTO Lastlog2 VALUES('user5',1706543115,NULL,'localhost',NULL); +COMMIT; \ No newline at end of file diff --git a/tests/ts/lslogins/lastlog2.db b/tests/ts/lslogins/lastlog2.db deleted file mode 100644 index 289430842..000000000 Binary files a/tests/ts/lslogins/lastlog2.db and /dev/null differ