- rename
[oweals/gnunet.git] / src / scalarproduct / test_scalarproduct.sh
index 81bd9c2ec0495266c8ec5a25da17b3b38f453981..eed9de30fe41cedf3c8d5559da1708917353a978 100755 (executable)
@@ -1,31 +1,45 @@
 #!/bin/bash
-
-CFGA="-c ./test_scalarproduct_alice.conf"
-CFGB="-c ./test_scalarproduct_bob.conf"
-                                       #can't use ` directly
-SESSIONDATA="-k AAAA -e 10,10,10"
-EXPECTED="2C0"
-
-gnunet-arm -s $CFGA
-sleep 2
-gnunet-arm -s $CFGB
-sleep 2
-
-IDB=`gnunet-peerinfo -s $CFGB | awk -F "\x60" '{print $2}' | awk -F "'" '{print $1}'`
-
-gnunet-scalarproduct $CFGB $SESSIONDATA
-
-RESULT=`gnunet-scalarproduct $CFGA $SESSIONDATA -p $IDB`
-
-gnunet-arm -e $CFGA &
-gnunet-arm -e $CFGB &
-
+# compute a simple scalar product
+# payload for this test:
+INPUTALICE="-k CCC -e 'AB,10;RO,3;FL,3;LOL,-1;'"
+INPUTBOB="-k CCC -e 'BC,-20000;RO,1000;FL,100;LOL,24;'"
+
+# necessary to make the testing prefix deterministic, so we can access the config files
+PREFIX=/tmp/test-scalarproduct`date +%H%M%S`
+
+# where can we find the peers config files?
+CFGALICE="-c $PREFIX/0/config"
+CFGBOB="-c $PREFIX/1/config"
+
+# launch two peers in line topology non-interactively
+#
+# interactive mode would terminate the test immediately
+# because the rest of the script is already in stdin,
+# thus redirecting stdin does not suffice)
+#GNUNET_LOG='scalarproduct;;;;DEBUG'
+GNUNET_TESTING_PREFIX=$PREFIX ../testbed/gnunet-testbed-profiler -n -c test_scalarproduct.conf -p 2 &
+PID=$!
+# sleep 1 is too short on most systems, 2 works on most, 5 seems to be safe
+sleep 5
+
+# get bob's peer ID, necessary for alice
+PEERIDBOB=`gnunet-peerinfo -qs $CFGBOB`
+
+#GNUNET_LOG=';;;;DEBUG'
+gnunet-scalarproduct $CFGBOB $INPUTBOB &
+GNUNET_LOG=';;;;DEBUG'
+RESULT=`gnunet-scalarproduct $CFGALICE $INPUTALICE -p $PEERIDBOB`
+
+# terminate the testbed
+kill $PID
+
+EXPECTED="0CCC"
 if [ "$RESULT" == "$EXPECTED" ]
 then
-  echo "OK"
-  exit 0
+       echo "OK"
+       exit 0
 else
-  echo "Result $RESULT NOTOK"
-  exit 1
+       echo "Result $RESULT NOTOK"
+       exit 1
 fi