tests: start.sh: fix logs/current symlink creation

Since 3bdc651a62, start.sh creates the logs/current symlink even if
LOGDIR was set in the environment, as is the case when using run-all.sh.
However, run-all.sh and start.sh use a separate 'date' invocation so the
resulting string may be different. Usually it is the same because the
two invocations immediately follow each other, *except* if run-all.sh
also does a build. In addition, if the user sets LOGDIR to something
else, the symlink is completely bogus.

Fix this by not relying on the 'date' invocation for creating the
symlink. Instead, use the basename of LOGDIR. To keep things consistent
with current behavior, only create the symlink if LOGDIR points to a
subdirectory of DIR/logs.

The following use cases now work reliably:
* run-all.sh with or without the -B option;
* manually calling start.sh followed by run-tests.py without setting
  LOGDIR.
* manually calling start.sh with LOGDIR set to a subdirectory of logs
  and calling run-tests.py without --logdir option (which makes it
  default to logs/current).
* run-all.sh with LOGDIR set to a subdirectory of logs.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Arnout Vandecappelle (Essensium/Mind) 2019-01-09 13:34:11 +01:00 committed by Jouni Malinen
parent cbf25808b9
commit 222ff97bc3

View file

@ -8,9 +8,9 @@ HAPD_AS=$DIR/../../hostapd/hostapd
HAPDCLI=$DIR/../../hostapd/hostapd_cli HAPDCLI=$DIR/../../hostapd/hostapd_cli
WLANTEST=$DIR/../../wlantest/wlantest WLANTEST=$DIR/../../wlantest/wlantest
HLR_AUC_GW=$DIR/../../hostapd/hlr_auc_gw HLR_AUC_GW=$DIR/../../hostapd/hlr_auc_gw
DATE="$(date +%s)"
if [ -z "$LOGDIR" ] ; then if [ -z "$LOGDIR" ] ; then
DATE="$(date +%s)"
LOGDIR="$DIR/logs/$DATE" LOGDIR="$DIR/logs/$DATE"
mkdir -p $LOGDIR mkdir -p $LOGDIR
else else
@ -51,9 +51,10 @@ else
fi fi
fi fi
if test -w "$DIR/logs" ; then LOGBASEDIR="$( cd "$(dirname "$LOGDIR")" && pwd )"
rm -rf $DIR/logs/current if test "$LOGBASEDIR" = "$DIR/logs" -a -w "$LOGBASEDIR" ; then
ln -sf $DATE $DIR/logs/current rm -rf "$LOGBASEDIR/current"
ln -sf "$(basename "$LOGDIR")" "$LOGBASEDIR/current"
fi fi
if groups | tr ' ' "\n" | grep -q ^admin$; then if groups | tr ' ' "\n" | grep -q ^admin$; then