This doesn't need bash. SH is more portable
[freeradius.git] / src / tests / runtests.sh
index cb13ea5..cc403c6 100755 (executable)
@@ -1,17 +1,14 @@
-#!/bin/bash
+#!/bin/sh
 
-PORT=12340
-HOME_PORT=12350
+: ${BIN_PATH=./}
+: ${PORT=12340}
+: ${HOME_PORT=12350}
+: ${SECRET=testing123}
 
 rm -f verbose.log
 RCODE=0
 
-rm -rf .cache
-mkdir .cache
-
-#
-#  Bootstrap the tests
-#
+echo "Running tests:"
 for NAME in $@
 do
   TOTAL=`grep TESTS $NAME | sed 's/.*TESTS//'`
@@ -30,36 +27,22 @@ do
     echo "Test-Name = \"$BASE\"," >> .request
     echo 'Test-Number = ' $NUMBER >> .request
 
-    mv .request .cache/$BASE:$NUMBER
-  done
-done
-
-echo "Running tests..."
-
-(cd .cache;ls -1  > ../.foo)
-rm -f .bar
-for x in `cat .foo`
-do
-   echo "-f .cache/$x" >> .bar
-done
-
-../main/radclient `cat .bar` -xFd . 127.0.0.1:$PORT auth testing123 > radclient.log 2>&1
-
-for x in `cat .foo`
-do
-  RESULT=`egrep ^\\.cache/$x radclient.log | sed 's/.* //'`
-  if [ "$RESULT" = "2" ]; then
-      echo "$x : Success"
+    rm ./radclient.log > /dev/null 2>&1
+    $BIN_PATH/radclient -f .request -xF -D ./ 127.0.0.1:$PORT auth $SECRET 1> ./radclient.log
+    if [ "$?" = "0" ]; then
+      echo "${BASE}_${NUMBER} : Success"
     else
-      echo "$x : FAILED"
+      echo "${BASE}_${NUMBER} : FAILED"
+      cat ./radclient.log
       RCODE=1
-  fi
+    fi
+  done
 done
 
 
 if [ "$RCODE" = "0" ]
 then
-    rm -f radiusd.log radclient.log 
+    rm -f radiusd.log radclient.log
     echo "All tests succeeded"
 else
     echo "See radclient.log for more details"