[lttng-dev] [PATCH] runtests: Make path of time binary configurable

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Thu Nov 15 00:00:17 EST 2012


* Simon Marchi (simon.marchi at polymtl.ca) wrote:
> I work on a platform that does not come with a time program. This patch
> makes it possible to specify the path of the time binary or not use it
> if none is available.
> 
> If the URCU_TEST_TIME_BIN environment variable exists and is executable,
> it is used. Otherwise it tries with /usr/bin/time, the most common
> location. If it is not there, the tests are ran without timing info.
> 
> Signed-off-by: Simon Marchi <simon.marchi at polymtl.ca>
> ---
>  tests/common.sh         |   13 +++++++++++++
>  tests/runtests-batch.sh |   15 +++++++++++++--
>  tests/runtests.sh       |   15 +++++++++++++--
>  3 files changed, 39 insertions(+), 4 deletions(-)
>  create mode 100755 tests/common.sh
> 
> diff --git a/tests/common.sh b/tests/common.sh
> new file mode 100755
> index 0000000..a321bf2
> --- /dev/null
> +++ b/tests/common.sh
> @@ -0,0 +1,13 @@
> +#!/bin/sh

If it is meant to be sourced from other files, then the #!/bin/sh header
is useless. Mainly because common.sh is useless when not sourced from
other scripts (useless indivitually).

> +#
> +# This file is meant to be sourced from other tests scripts.
> +#
> +
> +if [ -x "$URCU_TEST_TIME_BIN" ]; then
> +	test_time_bin="$URCU_TEST_TIME_BIN"

We use capital letters to represent "variables" (which are really
environment variables) in bash.

e.g.: test_time_bin -> TEST_TIME_BIN

Same for log_file and time_command.

Thanks,

Mathieu

> +elif [ -x "/usr/bin/time" ]; then
> +	test_time_bin="/usr/bin/time"
> +else
> +	test_time_bin=""
> +fi
> +
> diff --git a/tests/runtests-batch.sh b/tests/runtests-batch.sh
> index 6c2340d..222069c 100755
> --- a/tests/runtests-batch.sh
> +++ b/tests/runtests-batch.sh
> @@ -1,8 +1,19 @@
>  #!/bin/sh
>  
> +source "./common.sh"
> +
> +log_file="runall.detail.log"
> +
> +# Check if time bin is defined
> +if [ -n "$test_time_bin" ]; then
> +	time_command="$test_time_bin -a -o $log_file"
> +else
> +	time_command=""
> +fi
> +
>  #for a in test_urcu_gc test_urcu_gc_mb test_urcu_qsbr_gc; do
>  for a in test_urcu_gc; do
> -	echo "./${a} $*" | tee -a runall.detail.log
> -	/usr/bin/time -a -o runall.detail.log ./${a} $*
> +	echo "./${a} $*" | tee -a "$log_file"
> +	$time_command ./${a} $*
>  done
>  
> diff --git a/tests/runtests.sh b/tests/runtests.sh
> index 79e54df..b3d3dc2 100755
> --- a/tests/runtests.sh
> +++ b/tests/runtests.sh
> @@ -1,10 +1,21 @@
>  #!/bin/sh
>  
> +source "./common.sh"
> +
> +log_file="runall.detail.log"
> +
> +# Check if time bin is defined
> +if [ -n "$test_time_bin" ]; then
> +	time_command="$test_time_bin -a -o $log_file"
> +else
> +	time_command=""
> +fi
> +
>  for a in test_urcu_gc test_urcu_signal_gc test_urcu_mb_gc test_urcu_qsbr_gc \
>  	test_urcu_lgc test_urcu_signal_lgc test_urcu_mb_lgc test_urcu_qsbr_lgc \
>  	test_urcu test_urcu_signal test_urcu_mb test_urcu_qsbr \
>  	test_rwlock test_perthreadlock test_mutex; do
> -	echo "./${a} $*" | tee -a runall.detail.log
> -	/usr/bin/time -a -o runall.detail.log ./${a} $*
> +	echo "./${a} $*" | tee -a "$log_file"
> +	$time_command ./${a} $*
>  done
>  
> -- 
> 1.7.1
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list