tests: check script options work as expected
Options --flush and --timing remain unchecked, as I do not have an idea how to check them reliably. Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
d9f50441e1
commit
6a40c65f81
|
@ -9,6 +9,11 @@ endif
|
|||
if HAVE_UTEMPTER
|
||||
script_LDADD += -lutempter
|
||||
endif
|
||||
|
||||
check_PROGRAMS += test_script
|
||||
test_script_SOURCES = $(script_SOURCES)
|
||||
test_script_LDADD = $(script_LDADD)
|
||||
test_script_CFLAGS = -DTEST_SCRIPT $(logger_CFLAGS)
|
||||
endif # BUILD_SCRIPT
|
||||
|
||||
if BUILD_SCRIPTREPLAY
|
||||
|
|
|
@ -123,6 +123,23 @@ sigset_t block_mask, unblock_mask;
|
|||
int die;
|
||||
int resized;
|
||||
|
||||
/*
|
||||
* For tests we want to be able to control time output
|
||||
*/
|
||||
#ifdef TEST_SCRIPT
|
||||
static inline time_t script_time(time_t *t)
|
||||
{
|
||||
const char *str = getenv("SCRIPT_TEST_SECOND_SINCE_EPOCH");
|
||||
time_t sec;
|
||||
|
||||
if (str && sscanf(str, "%ld", &sec) == 1)
|
||||
return sec;
|
||||
return time(t);
|
||||
}
|
||||
#else /* !TEST_SCRIPT */
|
||||
# define script_time(x) time(x)
|
||||
#endif
|
||||
|
||||
static void
|
||||
die_if_link(char *fn) {
|
||||
struct stat s;
|
||||
|
@ -446,7 +463,7 @@ dooutput(void) {
|
|||
timingfd = fdopen(STDERR_FILENO, "w");
|
||||
|
||||
if (!qflg) {
|
||||
time_t tvec = time((time_t *)NULL);
|
||||
time_t tvec = script_time((time_t *)NULL);
|
||||
my_strftime(obuf, sizeof obuf, "%c\n", localtime(&tvec));
|
||||
fprintf(fscript, _("Script started on %s"), obuf);
|
||||
}
|
||||
|
@ -588,7 +605,7 @@ done(void) {
|
|||
if (fscript) {
|
||||
if (!qflg) {
|
||||
char buf[BUFSIZ];
|
||||
tvec = time((time_t *)NULL);
|
||||
tvec = script_time((time_t *)NULL);
|
||||
my_strftime(buf, sizeof buf, "%c\n", localtime(&tvec));
|
||||
fprintf(fscript, _("\nScript done on %s"), buf);
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ TS_HELPER_MD5="$top_builddir/test_md5"
|
|||
TS_HELPER_MORE=${TS_HELPER_MORE-"$top_builddir/test_more"}
|
||||
TS_HELPER_PARTITIONS="$top_builddir/sample-partitions"
|
||||
TS_HELPER_PATHS="$top_builddir/test_pathnames"
|
||||
TS_HELPER_SCRIPT="$top_builddir/test_script"
|
||||
TS_HELPER_SIGRECEIVE="$top_builddir/test_sigreceive"
|
||||
TS_HELPER_STRUTILS="$top_builddir/test_strutils"
|
||||
TS_HELPER_SYSINFO="$top_builddir/test_sysinfo"
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
Script started on Sun May 24 17:43:18 2015
|
||||
append1
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
append2
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
|
@ -0,0 +1,14 @@
|
|||
test_script: output file `typescript' is a link
|
||||
Use --force if you really want to use it.
|
||||
Program not started.
|
||||
1
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
with force
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
0
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
not typescript
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
0
|
|
@ -0,0 +1,4 @@
|
|||
Script started on Sun May 24 17:43:18 2015
|
||||
quiet1
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
quiet2
|
|
@ -0,0 +1,16 @@
|
|||
Script started on Sun May 24 17:43:18 2015
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
0
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
0
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
42
|
||||
Script started on Sun May 24 17:43:18 2015
|
||||
|
||||
Script done on Sun May 24 17:43:18 2015
|
||||
127
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This file is part of util-linux.
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This file is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
TS_TOPDIR="${0%/*}/../.."
|
||||
TS_DESC="options"
|
||||
|
||||
. $TS_TOPDIR/functions.sh
|
||||
ts_init "$*"
|
||||
|
||||
export SCRIPT_TEST_SECOND_SINCE_EPOCH=1432489398
|
||||
export TZ="GMT"
|
||||
|
||||
ts_check_test_command "$TS_HELPER_SCRIPT"
|
||||
|
||||
ts_init_subtest "append"
|
||||
$TS_HELPER_SCRIPT --command "echo append1" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
$TS_HELPER_SCRIPT --append -c "echo append2" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
ts_finalize_subtest
|
||||
|
||||
ts_init_subtest "force"
|
||||
ln -s $TS_OUTPUT typescript
|
||||
$TS_HELPER_SCRIPT --command "echo no force" </dev/null >/dev/null 2>> $TS_OUTPUT
|
||||
echo $? >> $TS_OUTPUT
|
||||
$TS_HELPER_SCRIPT -a --force --command "echo with force" </dev/null >/dev/null
|
||||
echo $? >> $TS_OUTPUT
|
||||
rm -f typescript
|
||||
ln -s $TS_OUTPUT tpircsepyt
|
||||
$TS_HELPER_SCRIPT -a --command "echo not typescript" tpircsepyt </dev/null >/dev/null
|
||||
echo $? >> $TS_OUTPUT
|
||||
rm -f tpircsepyt
|
||||
ts_finalize_subtest
|
||||
|
||||
ts_init_subtest "quiet"
|
||||
$TS_HELPER_SCRIPT --quiet --command "echo quiet1" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
$TS_HELPER_SCRIPT -a -q --command "echo quiet2" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
ts_finalize_subtest
|
||||
|
||||
ts_init_subtest "return"
|
||||
$TS_HELPER_SCRIPT --command "exit 1" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
echo $? >> $TS_OUTPUT
|
||||
$TS_HELPER_SCRIPT -a --command "exit 0" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
echo $? >> $TS_OUTPUT
|
||||
$TS_HELPER_SCRIPT -e --append -c "exit 42" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
echo $? >> $TS_OUTPUT
|
||||
$TS_HELPER_SCRIPT --return --append -c "exit 127" $TS_OUTPUT </dev/null >/dev/null 2>&1
|
||||
echo $? >> $TS_OUTPUT
|
||||
ts_finalize_subtest
|
||||
|
||||
ts_finalize
|
Loading…
Reference in New Issue