[test-suite] r263533 - timeit: Add append-exitstatus switch
Matthias Braun via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 14 22:12:25 PDT 2016
Author: matze
Date: Tue Mar 15 00:12:24 2016
New Revision: 263533
URL: http://llvm.org/viewvc/llvm-project?rev=263533&view=rev
Log:
timeit: Add append-exitstatus switch
Appending the last line with "exit XXX" is usually done by RunSafely. I
added the same capability to timeit because that allows us to skip
RunSafely in the future and allows us to remove some delays in
remote-device settings (see the 'sleep 1's in RunSafely.sh).
Modified:
test-suite/trunk/tools/timeit.c
test-suite/trunk/tools/timeit.sh
Modified: test-suite/trunk/tools/timeit.c
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/tools/timeit.c?rev=263533&r1=263532&r2=263533&view=diff
==============================================================================
--- test-suite/trunk/tools/timeit.c (original)
+++ test-suite/trunk/tools/timeit.c Tue Mar 15 00:12:24 2016
@@ -71,6 +71,9 @@ static const char *g_target_redirect_std
/* \brief If non-zero, the path to redirect the target stderr to. */
static const char *g_target_redirect_stderr = 0;
+/* \brief If non-zero, append exit status at end of output file. */
+static int g_append_exitstats = 0;
+
/* @name Resource Limit Variables */
/* @{ */
@@ -217,6 +220,18 @@ static int monitor_child_process(pid_t p
fclose(fp);
}
+ if (g_append_exitstats && g_target_program) {
+ FILE *fp_stdout = fopen(g_target_redirect_stdout, "a");
+ if (!fp_stdout) {
+ perror("fopen");
+ return EXITCODE_MONITORING_FAILURE;
+ }
+ fprintf(fp_stdout, "exit %d\n", exit_status);
+ fclose(fp_stdout);
+ /* let timeit itself report success */
+ exit_status = 0;
+ }
+
return exit_status;
}
@@ -505,6 +520,11 @@ int main(int argc, char * const argv[])
continue;
}
+ if (streq(arg, "--append-exitstatus")) {
+ g_append_exitstats = 1;
+ continue;
+ }
+
if (streq(arg, "-c") || streq(arg, "--chdir")) {
if (i + 1 == argc) {
fprintf(stderr, "error: %s argument requires an option\n", arg);
Modified: test-suite/trunk/tools/timeit.sh
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/tools/timeit.sh?rev=263533&r1=263532&r2=263533&view=diff
==============================================================================
--- test-suite/trunk/tools/timeit.sh (original)
+++ test-suite/trunk/tools/timeit.sh Tue Mar 15 00:12:24 2016
@@ -6,6 +6,7 @@ INPUT=/dev/stdin
OUTPUT=/dev/stdout
ERRPUT=/dev/stderr
PERFSTAT=perfstats
+APPEND_STATUS=0
while [[ $1 = -* ]]; do
if [ $1 = "--summary" ]; then
@@ -20,6 +21,8 @@ while [[ $1 = -* ]]; do
OUTPUT=$2
elif [ $1 = "--chdir" ]; then
cd $2
+ elif [ $1 = "--append-exitstatus" ]; then
+ APPEND_STATUS=1
fi
shift 2
done
@@ -32,6 +35,9 @@ else
fi
EXITCODE=$?
+if [ "$APPEND_STATUS" = "1" ]; then
+ echo "exit $EXITCODE" >> $OUTPUT
+fi
echo exit $EXITCODE > $REPORT
awk -F' ' '{if ($2 == "task-clock") print "user",$1/1000; else if($2 =="seconds") print "real",$1;}' $PERFSTAT >> $REPORT
More information about the llvm-commits
mailing list