From 3dc73b8edf33a1c42fcd4c5f9794c1e2e6fe6554 Mon Sep 17 00:00:00 2001
From: Enol Fernandez <enolfc@ifca.unican.es>
Date: Mon, 9 Dec 2013 08:51:12 +0100
Subject: [PATCH] Added testing for host order.

---
 tests/run_tests.sh      | 12 ++++++------
 tests/test_lsf.sh       |  6 +++++-
 tests/test_pbs.sh       |  8 ++++++--
 tests/test_scheduler.sh | 24 ++++++++++++++++++++++++
 tests/test_sge.sh       |  6 +++++-
 tests/test_slurm.sh     |  8 ++++++--
 6 files changed, 52 insertions(+), 12 deletions(-)

diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index e4f33f6..8f9dd61 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -30,12 +30,12 @@ REMOVE_MY_SHUNIT=0
 
 # tests to run
 RUN_UNIT_TESTS=1
-RUN_BASIC_TESTS=0
-RUN_HOOK_TESTS=0
-RUN_NP_TESTS=0
-RUN_SCH_TESTS=0
-RUN_FSDETECT_TESTS=0
-RUN_AFFINITY_TESTS=0
+RUN_BASIC_TESTS=1
+RUN_HOOK_TESTS=1
+RUN_NP_TESTS=1
+RUN_SCH_TESTS=1
+RUN_FSDETECT_TESTS=1
+RUN_AFFINITY_TESTS=1
 # if running these tests, ensure you have proper environment loaded!
 RUN_OMP_TESTS=0
 RUN_MPICH2_TESTS=0
diff --git a/tests/test_lsf.sh b/tests/test_lsf.sh
index 8d79dbf..9cd230d 100755
--- a/tests/test_lsf.sh
+++ b/tests/test_lsf.sh
@@ -18,7 +18,7 @@ setUp () {
     unset I2G_MPI_PER_NODE
     export MPI_START_SHARED_FS=1
     export MPI_START_DUMMY_SCHEDULER=0
-    export LSB_HOSTS="host1 host1 host2 host2 host3 host3 host3 host3"
+    export LSB_HOSTS="host2 host2 host1 host1 host3 host3 host3 host3"
 }
 
 tearDown () {
@@ -45,4 +45,8 @@ testNPAndPnode() {
     count_app_np_pnode "lsf"
 }
 
+testHostOrder() {
+    check_host_order
+}
+
 . $SHUNIT2
diff --git a/tests/test_pbs.sh b/tests/test_pbs.sh
index 063a4ae..54738f6 100755
--- a/tests/test_pbs.sh
+++ b/tests/test_pbs.sh
@@ -20,10 +20,10 @@ setUp () {
     export MPI_START_DUMMY_SCHEDULER=0
     export PBS_NODEFILE=`$MYMKTEMP`
     cat > $PBS_NODEFILE << EOF
-host1
-host1
 host2
 host2
+host1
+host1
 host3
 host3
 host3
@@ -56,4 +56,8 @@ testNPAndPnode() {
     count_app_np_pnode "pbs"
 }
 
+testHostOrder() {
+    check_host_order
+}
+
 . $SHUNIT2
diff --git a/tests/test_scheduler.sh b/tests/test_scheduler.sh
index feb0114..57ebca2 100755
--- a/tests/test_scheduler.sh
+++ b/tests/test_scheduler.sh
@@ -133,3 +133,27 @@ EOF
     unset I2G_MPI_PER_NODE
     rm -f $I2G_MPI_APPLICATION
 }
+
+check_host_order () {
+    export I2G_MPI_APPLICATION=`$MYMKTEMP`
+    cat > $I2G_MPI_APPLICATION << EOF
+#!/bin/sh
+for h in \`cat \${MPI_START_MACHINEFILE}\`; do
+    echo -n \$h
+done
+echo -n ";" 
+for h in \`cat \${MPI_START_HOSTFILE}\`; do
+    echo -n \$h
+done
+exit 0
+EOF
+    chmod +x $I2G_MPI_APPLICATION
+    output=`$I2G_MPI_START 2> /dev/null`
+    st=$?
+    repeatedhosts=`echo $output | cut -f1 -d";"`
+    hosts=`echo $output | cut -f2 -d";"`
+    assertEquals "host2host2host1host1host3host3host3host3" "$repeatedhosts"
+    assertEquals "host2host1host3" "$hosts"
+    rm -f $I2G_MPI_APPLICATION
+}
+
diff --git a/tests/test_sge.sh b/tests/test_sge.sh
index ae34adf..f1d164f 100755
--- a/tests/test_sge.sh
+++ b/tests/test_sge.sh
@@ -20,8 +20,8 @@ setUp () {
     export MPI_START_DUMMY_SCHEDULER=0
     export PE_HOSTFILE=`$MYMKTEMP`
     cat > $PE_HOSTFILE << EOF
-host1 2
 host2 2
+host1 2
 host3 4
 EOF
 }
@@ -51,4 +51,8 @@ testNPAndPnode() {
     count_app_np_pnode "sge"
 }
 
+testHostOrder() {
+    check_host_order
+}
+
 . $SHUNIT2
diff --git a/tests/test_slurm.sh b/tests/test_slurm.sh
index f6bb3ef..cbd7fe9 100755
--- a/tests/test_slurm.sh
+++ b/tests/test_slurm.sh
@@ -21,10 +21,10 @@ setUp () {
     MYTMPDIR=`$MYMKTEMP -d`
     export SLURM_JOB_NODELIST=$MYTMPDIR/nodes
     cat > $SLURM_JOB_NODELIST << EOF
-host1
-host1
 host2
 host2
+host1
+host1
 host3
 host3
 host3
@@ -79,4 +79,8 @@ testNPAndPnode() {
     count_app_np_pnode "slurm"
 }
 
+testHostOrder() {
+    check_host_order
+}
+
 . $SHUNIT2
-- 
GitLab