From 4219474fcbfa223faab864ee6ba85bfaf68c117a Mon Sep 17 00:00:00 2001
From: grev <grev>
Date: Sat, 6 Dec 2008 00:56:52 +0000
Subject: [PATCH] b=17661 i=Brian run mpi tests as MPI_USER

---
 lustre/tests/cfg/ncli.sh             |  4 ++--
 lustre/tests/mdsrate-create-large.sh | 12 ++++--------
 lustre/tests/mdsrate-create-small.sh | 14 ++++++--------
 lustre/tests/mdsrate-lookup-1dir.sh  |  9 +++------
 lustre/tests/mdsrate-stat-large.sh   |  7 +++----
 lustre/tests/mdsrate-stat-small.sh   |  7 +++----
 lustre/tests/test-framework.sh       | 18 +++++++++++++++++-
 7 files changed, 38 insertions(+), 33 deletions(-)

diff --git a/lustre/tests/cfg/ncli.sh b/lustre/tests/cfg/ncli.sh
index 907775e739..c583c5ff89 100644
--- a/lustre/tests/cfg/ncli.sh
+++ b/lustre/tests/cfg/ncli.sh
@@ -13,5 +13,5 @@ init_clients_lists
 
 MPIBIN=${MPIBIN:-/testsuite/tests/`arch`/bin}
 export PATH=:$PATH:$MPIBIN
-MPIRUN=$(which mpirun)
-
+MPIRUN=$(which mpirun) || true
+MPI_USER=${MPI_USER:-mpiuser}
diff --git a/lustre/tests/mdsrate-create-large.sh b/lustre/tests/mdsrate-create-large.sh
index f36b0fe7b1..00ad3992c4 100644
--- a/lustre/tests/mdsrate-create-large.sh
+++ b/lustre/tests/mdsrate-create-large.sh
@@ -49,8 +49,7 @@ else
     COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
                         --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
     echo "+ ${COMMAND}"
-    $MPIRUN -np 1 -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
 	[ -f $LOG ] && cat $LOG
@@ -66,8 +65,7 @@ else
     COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink --time ${TIME_PERIOD}
                  --nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
     echo "+ ${COMMAND}"
-    $MPIRUN -np 1 -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
  
     if [ ${PIPESTATUS[0]} != 0 ]; then
 	[ -f $LOG ] && cat $LOG
@@ -87,8 +85,7 @@ else
     COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
                         --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
     echo "+ ${COMMAND}"
-   $MPIRUN -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
 	[ -f $LOG ] && cat $LOG
@@ -103,8 +100,7 @@ else
     COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink --time ${TIME_PERIOD}
                   --nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
     echo "+ ${COMMAND}"
-    $MPIRUN -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
 	[ -f $LOG ] && cat $LOG
diff --git a/lustre/tests/mdsrate-create-small.sh b/lustre/tests/mdsrate-create-small.sh
index 397b9c92e1..0f42e5d8f3 100644
--- a/lustre/tests/mdsrate-create-small.sh
+++ b/lustre/tests/mdsrate-create-small.sh
@@ -61,8 +61,7 @@ else
         COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
                             --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
         echo "+ ${COMMAND}"
-        $MPIRUN -np 1 -machinefile ${MACHINEFILE} \
-            ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+        mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
         if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
@@ -81,8 +80,7 @@ else
         COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink --time ${TIME_PERIOD}
                      --nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
         echo "+ ${COMMAND}"
-        $MPIRUN -np 1 -machinefile ${MACHINEFILE} \
-            ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+        mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
         if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
@@ -106,8 +104,8 @@ else
         COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
                             --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
         echo "+ ${COMMAND}"
-        $MPIRUN -np $((${NUM_CLIENTS}*THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
-            ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+        mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
+            ${COMMAND} | tee ${LOG}
         if [ ${PIPESTATUS[0]} != 0 ]; then
             [ -f $LOG ] && cat $LOG
             error "mpirun ... mdsrate ... failed, aborting"
@@ -125,8 +123,8 @@ else
         COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink --time ${TIME_PERIOD}
                       --nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
         echo "+ ${COMMAND}"
-        $MPIRUN -np $((${NUM_CLIENTS}*THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
-            ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+        mpi_run -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) -machinefile ${MACHINEFILE} \
+            ${COMMAND} | tee ${LOG}
         if [ ${PIPESTATUS[0]} != 0 ]; then
             [ -f $LOG ] && cat $LOG
             error "mpirun ... mdsrate ... failed, aborting"
diff --git a/lustre/tests/mdsrate-lookup-1dir.sh b/lustre/tests/mdsrate-lookup-1dir.sh
index f48d35966b..9c4667429a 100644
--- a/lustre/tests/mdsrate-lookup-1dir.sh
+++ b/lustre/tests/mdsrate-lookup-1dir.sh
@@ -57,8 +57,7 @@ else
     COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod --dir ${TESTDIR}
                         --nfiles ${NUM_FILES} --filefmt 'f%%d'"
     echo "+" ${COMMAND}
-    $MPIRUN -np ${NUM_THREADS} -machinefile ${MACHINEFILE} \
-	   ${MPIRUN_OPTIONS} ${COMMAND} 2>&1 
+    mpi_run -np ${NUM_THREADS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1 
 
     # No lockup if error occurs on file creation, abort.
     [ ${PIPESTATUS[0]} != 0 ] && error "mpirun ... mdsrate ... file creation failed, aborting"
@@ -74,8 +73,7 @@ else
     log "===== $0 ### 1 NODE LOOKUPS ###"
     echo "Running lookups on 1 node(s)."
     echo "+" ${COMMAND}
-    $MPIRUN -np 1 -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
@@ -91,8 +89,7 @@ else
     log "===== $0 ### ${NUM_CLIENTS} NODES LOOKUPS ###"
     echo "Running lookups on ${NUM_CLIENTS} node(s)."
     echo "+" ${COMMAND}
-    $MPIRUN -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
diff --git a/lustre/tests/mdsrate-stat-large.sh b/lustre/tests/mdsrate-stat-large.sh
index f014b6f719..3620282581 100644
--- a/lustre/tests/mdsrate-stat-large.sh
+++ b/lustre/tests/mdsrate-stat-large.sh
@@ -64,8 +64,7 @@ else
         NUM_THREADS=$NUM_CLIENTS
     fi
 
-    $MPIRUN -np ${NUM_THREADS} -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} 2>&1
+    mpi_run -np ${NUM_THREADS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1
     [ ${PIPESTATUS[0]} != 0 ] && error "mpirun ... mdsrate ... file creation failed, aborting"
 
 fi
@@ -82,7 +81,7 @@ else
     echo "Running stats on 1 node(s)."
     echo "+" ${COMMAND}
 
-    $MPIRUN -np 1 -machinefile ${MACHINEFILE} ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
@@ -100,7 +99,7 @@ else
     echo "+" ${COMMAND}
 
     NUM_THREADS=$(get_node_count ${NODES_TO_USE//,/ })
-    $MPIRUN -np ${NUM_THREADS} -machinefile ${MACHINEFILE} ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np ${NUM_THREADS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
diff --git a/lustre/tests/mdsrate-stat-small.sh b/lustre/tests/mdsrate-stat-small.sh
index 26cd4cb66f..ddcd609bd6 100644
--- a/lustre/tests/mdsrate-stat-small.sh
+++ b/lustre/tests/mdsrate-stat-small.sh
@@ -64,8 +64,7 @@ else
         NUM_THREADS=$NUM_CLIENTS
     fi
 
-    $MPIRUN -np ${NUM_THREADS} -machinefile ${MACHINEFILE} \
-        ${MPIRUN_OPTIONS} ${COMMAND} 2>&1
+    mpi_run -np ${NUM_THREADS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1
     [ ${PIPESTATUS[0]} != 0 ] && error "Error running mdsrate, aborting..."
 
 fi
@@ -82,7 +81,7 @@ else
     echo "Running stats on 1 node(s)."
     echo "+" ${COMMAND}
 
-    $MPIRUN -np 1 -machinefile ${MACHINEFILE} ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
     
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
@@ -99,7 +98,7 @@ else
     echo "Running stats on ${NUM_CLIENTS} node(s)."
     echo "+" ${COMMAND}
 
-    $MPIRUN -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
+    mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && cat $LOG
diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh
index e479c5588a..96ce1c3760 100644
--- a/lustre/tests/test-framework.sh
+++ b/lustre/tests/test-framework.sh
@@ -1810,7 +1810,7 @@ check_rate() {
 
     # We need to use bc since the rate is a floating point number
     local RES=$(echo "${RATE} < ${TARGET_RATE}" | bc -l )
-    if [ ${RES} -eq 0 ]; then
+    if [ "${RES}" = 0 ]; then
         echo "Success: ${RATE} ${OP}s/sec met target rate" \
              "${TARGET_RATE} ${OP}s/sec for ${NUM_CLIENTS} client(s)."
         return 0
@@ -1884,3 +1884,19 @@ get_stripe_info() {
 	stripe_index=`awk '/obdidx/ {start = 1; getline; print $1; exit}' $tmp_file`
 	rm -f $tmp_file
 }
+
+mpi_run () {
+    local mpirun="$MPIRUN $MPIRUN_OPTIONS"
+    local command="$mpirun $@"
+
+    if [ "$MPI_USER" != root -a $mpirun ]; then
+        echo "+ chmod 0777 $MOUNT"
+        chmod 0777 $MOUNT
+        command="su $MPI_USER sh -c \"$command \""
+    fi
+
+    ls -ald $MOUNT
+    echo "+ $command"
+    eval $command
+}
+
-- 
GitLab