diff --git a/smoke_test/generate_bin_test b/smoke_test/generate_bin_test
index 00038d9de397bd89251577cf205c7d5ae0145953..3e60db2a8ba9d6326c33799f56111138b47242b2 100755
--- a/smoke_test/generate_bin_test
+++ b/smoke_test/generate_bin_test
@@ -14,14 +14,14 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 ' > $TESTCASE_DIR/bintest
 
 IFS_orig=$IFS
diff --git a/smoke_test/output_dir/anaconda/5.1.0-Python3.6-gcc5 b/smoke_test/output_dir/anaconda/5.1.0-Python3.6-gcc5
new file mode 100644
index 0000000000000000000000000000000000000000..8fcfabdcdd11cbe45d8dfd7904f9c173e44634b3
--- /dev/null
+++ b/smoke_test/output_dir/anaconda/5.1.0-Python3.6-gcc5
@@ -0,0 +1 @@
+anaconda Command line client (version 1.6.9)
diff --git a/smoke_test/output_dir/gcc/4.9.3 b/smoke_test/output_dir/gcc/4.9.3
new file mode 100644
index 0000000000000000000000000000000000000000..4a88085389346543e4f16d8f6fe8796e32337b06
--- /dev/null
+++ b/smoke_test/output_dir/gcc/4.9.3
@@ -0,0 +1,5 @@
+gcc (GCC) 4.9.3
+Copyright (C) 2015 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
diff --git a/smoke_test/output_dir/gcc/5.4.0 b/smoke_test/output_dir/gcc/5.4.0
new file mode 100644
index 0000000000000000000000000000000000000000..992dafa3e64f98433a957067deda8630f0084711
--- /dev/null
+++ b/smoke_test/output_dir/gcc/5.4.0
@@ -0,0 +1,5 @@
+gcc (GCC) 5.4.0
+Copyright (C) 2015 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
diff --git a/smoke_test/output_dir/gcc/8.1.0 b/smoke_test/output_dir/gcc/8.1.0
new file mode 100644
index 0000000000000000000000000000000000000000..e36598d113122ff39334a811670ae72df25e4834
--- /dev/null
+++ b/smoke_test/output_dir/gcc/8.1.0
@@ -0,0 +1,5 @@
+gcc (GCC) 8.1.0
+Copyright (C) 2018 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
diff --git a/smoke_test/output_dir/java/1.8.0_77 b/smoke_test/output_dir/java/1.8.0_77
new file mode 100644
index 0000000000000000000000000000000000000000..b35c6a061e64f1772cabd5bd2c0bb3bd890ad6b8
--- /dev/null
+++ b/smoke_test/output_dir/java/1.8.0_77
@@ -0,0 +1,3 @@
+Unrecognized option: --version
+Error: Could not create the Java Virtual Machine.
+Error: A fatal exception has occurred. Program will exit.
diff --git a/smoke_test/output_dir/libjpeg-turbo/1.4.2 b/smoke_test/output_dir/libjpeg-turbo/1.4.2
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smoke_test/output_dir/openblas/0.2.20 b/smoke_test/output_dir/openblas/0.2.20
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smoke_test/output_dir/openmpi/1.10.7-mlx b/smoke_test/output_dir/openmpi/1.10.7-mlx
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smoke_test/output_dir/report.txt b/smoke_test/output_dir/report.txt
new file mode 100644
index 0000000000000000000000000000000000000000..89fa1fefaca034c5edb0389e6994a108bc4f8dd1
--- /dev/null
+++ b/smoke_test/output_dir/report.txt
@@ -0,0 +1,11 @@
+
+libjpeg-turbo 1.4.2 return non-zero exitcode 1 for testcase ./tests/libjpeg-turbo/bashcmd
+virtualgl 2.5.0 return non-zero exitcode 1 for testcase ./tests/virtualgl/bashcmd
+tigervnc 1.8.0 return non-zero exitcode 1 for testcase ./tests/tigervnc/bashcmd
+java 1.8.0_77 return non-zero exitcode 1 for testcase ./tests/java/bintest
+openblas 0.2.20 return non-zero exitcode 127 for testcase ./tests/openblas/bashcmd
+Summary
+Failed: 5
+Success 13
+No tests found: 0
+Failing because not enough tests succeeded
diff --git a/smoke_test/output_dir/tigervnc/1.8.0 b/smoke_test/output_dir/tigervnc/1.8.0
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smoke_test/output_dir/virtualgl/2.5.0 b/smoke_test/output_dir/virtualgl/2.5.0
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smoke_test/smoke_test b/smoke_test/smoke_test
index be4a92ffc008d657197c41f5bebcea47ce46460e..bf0589cc155f733cc473cd99d981f721c1be3cfe 100755
--- a/smoke_test/smoke_test
+++ b/smoke_test/smoke_test
@@ -5,10 +5,10 @@ OUTPUT_DIR=${1:-output_dir}
 
 
 # select top 50 most used module by default
-NUM_MODULE=${2:-50}
+NUM_MODULE=${2:-10}
 
 declare -i TIMELIMIT
-BINTEST=false
+BINTEST=true
 TIMELIMIT=10
 TESTCASE_DIR='./tests'
 REPORT=$OUTPUT_DIR/'report.txt'
@@ -42,9 +42,8 @@ for i in $(head -n $NUM_MODULE $USAGE_REPORT); do
         echo "No testcase for $m found"  | tee -a $REPORT
 	num_notest+=1
     else
-        ALL_EXEC=$(ls -X $TESTCASE_DIR/$name)
-        for i in ${ALL_EXEC}; do
-            t_case=$TESTCASE_DIR/$name/$i 
+        ALL_EXEC=$(find $TESTCASE_DIR/$name -maxdepth 1 -executable -type f)
+        for t_case in ${ALL_EXEC}; do
             if [ $i ==  'bintest' ] && ! $BINTEST;then break;fi
             timeout $TIMELIMIT $t_case $ver &> $OUTPUT_DIR/$name/$ver 
             exitcode=$?
diff --git a/smoke_test/tests/anaconda/bintest b/smoke_test/tests/anaconda/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/anaconda/bintest
+++ b/smoke_test/tests/anaconda/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/atlas/bintest b/smoke_test/tests/atlas/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/atlas/bintest
+++ b/smoke_test/tests/atlas/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/bedtools/bintest b/smoke_test/tests/bedtools/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/bedtools/bintest
+++ b/smoke_test/tests/bedtools/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/bintest b/smoke_test/tests/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100644
--- a/smoke_test/tests/bintest
+++ b/smoke_test/tests/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/bismark/bintest b/smoke_test/tests/bismark/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/bismark/bintest
+++ b/smoke_test/tests/bismark/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/bowtie2/bintest b/smoke_test/tests/bowtie2/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/bowtie2/bintest
+++ b/smoke_test/tests/bowtie2/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/cuda/bintest b/smoke_test/tests/cuda/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/cuda/bintest
+++ b/smoke_test/tests/cuda/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/cutadapt/bintest b/smoke_test/tests/cutadapt/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/cutadapt/bintest
+++ b/smoke_test/tests/cutadapt/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/deeptools/bintest b/smoke_test/tests/deeptools/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/deeptools/bintest
+++ b/smoke_test/tests/deeptools/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/fastqc/bintest b/smoke_test/tests/fastqc/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/fastqc/bintest
+++ b/smoke_test/tests/fastqc/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/fftw/bintest b/smoke_test/tests/fftw/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/fftw/bintest
+++ b/smoke_test/tests/fftw/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/fsl/bintest b/smoke_test/tests/fsl/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/fsl/bintest
+++ b/smoke_test/tests/fsl/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/gcc/bintest b/smoke_test/tests/gcc/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/gcc/bintest
+++ b/smoke_test/tests/gcc/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/geos/bintest b/smoke_test/tests/geos/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/geos/bintest
+++ b/smoke_test/tests/geos/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/gmp/bintest b/smoke_test/tests/gmp/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/gmp/bintest
+++ b/smoke_test/tests/gmp/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/gsl/bintest b/smoke_test/tests/gsl/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/gsl/bintest
+++ b/smoke_test/tests/gsl/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/hdf5/bintest b/smoke_test/tests/hdf5/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/hdf5/bintest
+++ b/smoke_test/tests/hdf5/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/htseq/bintest b/smoke_test/tests/htseq/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/htseq/bintest
+++ b/smoke_test/tests/htseq/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/htslib/bintest b/smoke_test/tests/htslib/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/htslib/bintest
+++ b/smoke_test/tests/htslib/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/java/bintest b/smoke_test/tests/java/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/java/bintest
+++ b/smoke_test/tests/java/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/lapack/bintest b/smoke_test/tests/lapack/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/lapack/bintest
+++ b/smoke_test/tests/lapack/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/libjpeg-turbo/bintest b/smoke_test/tests/libjpeg-turbo/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/libjpeg-turbo/bintest
+++ b/smoke_test/tests/libjpeg-turbo/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/libtiff/bintest b/smoke_test/tests/libtiff/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/libtiff/bintest
+++ b/smoke_test/tests/libtiff/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/mpfr/bintest b/smoke_test/tests/mpfr/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/mpfr/bintest
+++ b/smoke_test/tests/mpfr/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/openblas/bashcmd b/smoke_test/tests/openblas/bashcmd
index 72eef8d76ee610002e45b94d0777efca1ae29729..33072f00f648d4f04f1bab3a767ebf9b03269f4c 100755
--- a/smoke_test/tests/openblas/bashcmd
+++ b/smoke_test/tests/openblas/bashcmd
@@ -1,8 +1,8 @@
 #!/bin/bash
 #https://github.com/xianyi/OpenBLAS/wiki/User-Manual#code-examples
 gcc test_cblas_dgemm.c -o test_cblas_open $CPPFLAGS $LDFLAGS -lopenblas
-./test_cblas_open
-rm test_cblas_open
 gcc -o time_dgemm time_dgemm.c $CPPFLAGS $LDFLAGS -lopenblas
-./time_dgemm 10 10 10
-rm time_dgemm
+./test_cblas_open && ./time_dgemm 10 10 10
+EXITCODE=$?
+rm -f time_dgemm timeDGEMM.txt test_cblas_open
+exit $EXITCODE
diff --git a/smoke_test/tests/openblas/bintest b/smoke_test/tests/openblas/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/openblas/bintest
+++ b/smoke_test/tests/openblas/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/openblas/timeDGEMM.txt b/smoke_test/tests/openblas/timeDGEMM.txt
deleted file mode 100644
index 89632c3231f7d94d8696a340f6909b85c21f7c00..0000000000000000000000000000000000000000
--- a/smoke_test/tests/openblas/timeDGEMM.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-10x10x10	0.000032 s	62.500000 MFLOPS
-10x10x10	0.000041 s	48.780488 MFLOPS
diff --git a/smoke_test/tests/openmpi/bintest b/smoke_test/tests/openmpi/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/openmpi/bintest
+++ b/smoke_test/tests/openmpi/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/picard/bintest b/smoke_test/tests/picard/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/picard/bintest
+++ b/smoke_test/tests/picard/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/python/bintest b/smoke_test/tests/python/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/python/bintest
+++ b/smoke_test/tests/python/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/samtools/bintest b/smoke_test/tests/samtools/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/samtools/bintest
+++ b/smoke_test/tests/samtools/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/singularity/bintest b/smoke_test/tests/singularity/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/singularity/bintest
+++ b/smoke_test/tests/singularity/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/tigervnc/bintest b/smoke_test/tests/tigervnc/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/tigervnc/bintest
+++ b/smoke_test/tests/tigervnc/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/virtualgl/bintest b/smoke_test/tests/virtualgl/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/virtualgl/bintest
+++ b/smoke_test/tests/virtualgl/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi
 
diff --git a/smoke_test/tests/wxwidgets/bintest b/smoke_test/tests/wxwidgets/bintest
index 1820ef132bc6995b3c0b7308e456e262f29d4b16..7d0fbeed499a0e0705b5df0be492b421c4766b8d 100755
--- a/smoke_test/tests/wxwidgets/bintest
+++ b/smoke_test/tests/wxwidgets/bintest
@@ -4,12 +4,12 @@ ver=${1:-"default"}
 bin_dirs=$(module show $name/$ver 2>&1 | sed -n "s/.* PATH \(.*\)/\1/p")
 NAME_EXEC_EXIST=false
 for bin in $bin_dirs; do
-    for i in $(ls -X $bin); do
-        if [[ $i == $name ]]; then NAME_EXEC_EXIST=true;fi
+    for i in $(find $bin -maxdepth 1 -executable -type f ); do
+        if [[ $(basename $i) == $name ]]; then 
+            $i --version;
+            exit $?
+        fi
     done
 done
 
-if $NAME_EXEC_EXIST; then
-    $name --version
-fi