test_namestore_lookup.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/bash
  2. CONFIGURATION="test_namestore_api.conf"
  3. trap "gnunet-arm -e -c $CONFIGURATION" SIGINT
  4. LOCATION=$(which gnunet-config)
  5. if [ -z $LOCATION ]
  6. then
  7. LOCATION="gnunet-config"
  8. fi
  9. $LOCATION --version 1> /dev/null
  10. if test $? != 0
  11. then
  12. echo "GNUnet command line tools cannot be found, check environmental variables PATH and GNUNET_PREFIX"
  13. exit 77
  14. fi
  15. rm -rf `$LOCATION -c $CONFIGURATION -s PATHS -o GNUNET_HOME`
  16. TEST_IP_PLUS="127.0.0.1"
  17. TEST_RECORD_NAME_DNS="www3"
  18. which timeout &> /dev/null && DO_TIMEOUT="timeout 5"
  19. # start peer
  20. gnunet-arm -s -c $CONFIGURATION
  21. gnunet-identity -C testego -c $CONFIGURATION
  22. # Create a public record
  23. gnunet-namestore -p -z testego -a -n $TEST_RECORD_NAME_DNS -t A -V $TEST_IP_PLUS -e never -c $CONFIGURATION
  24. NAMESTORE_RES=$?
  25. # Lookup specific name
  26. OUTPUT=`gnunet-namestore -p -z testego -n $TEST_RECORD_NAME_DNS -D`
  27. FOUND_IP=false
  28. FOUND_NAME=false
  29. for LINE in $OUTPUT ;
  30. do
  31. if echo "$LINE" | grep -q "$TEST_RECORD_NAME_DNS"; then
  32. FOUND_NAME=true;
  33. #echo $FOUND_NAME
  34. fi
  35. if echo "$LINE" | grep -q "$TEST_IP_PLUS"; then
  36. FOUND_IP=true;
  37. #echo $FOUND_IP
  38. fi
  39. done
  40. # stop peer
  41. gnunet-identity -D testego -c $CONFIGURATION
  42. gnunet-arm -e -c $CONFIGURATION
  43. if [ $FOUND_NAME = true -a $FOUND_IP = true ]
  44. then
  45. echo "PASS: Lookup name in namestore"
  46. exit 0
  47. elif [ $FOUND_NAME = false ]
  48. then
  49. echo "FAIL: Lookup name in namestore: name not returned"
  50. exit 1
  51. elif [ $FOUND_IP = false ]
  52. then
  53. echo "FAIL: Lookup name in namestore: IP not returned"
  54. exit 1
  55. fi