test.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/bash
  2. rm -rf files-* conf-* md5-*
  3. extraopts=""
  4. p=$(pwd)
  5. go build genfiles.go
  6. go build md5r.go
  7. echo "Setting up (keys)..."
  8. i1=$(syncthing --home conf-1 2>&1 | awk '/My ID/ {print $7}')
  9. echo $i1
  10. i2=$(syncthing --home conf-2 2>&1 | awk '/My ID/ {print $7}')
  11. echo $i2
  12. i3=$(syncthing --home conf-3 2>&1 | awk '/My ID/ {print $7}')
  13. echo $i3
  14. echo "Setting up (files)..."
  15. for i in 1 2 3 ; do
  16. cat >conf-$i/syncthing.ini <<EOT
  17. [repository]
  18. dir = $p/files-$i
  19. [nodes]
  20. $i1 = 127.0.0.1:22001
  21. $i2 = 127.0.0.1:22002
  22. $i3 = 127.0.0.1:22003
  23. [settings]
  24. gui-enabled = false
  25. listen-address = :2200$i
  26. EOT
  27. mkdir files-$i
  28. pushd files-$i >/dev/null
  29. ../genfiles -maxexp 21 -files 400
  30. touch empty-$i
  31. ../md5r > ../md5-$i
  32. popd >/dev/null
  33. done
  34. echo "Starting..."
  35. for i in 1 2 3 ; do
  36. sleep 1
  37. syncthing --home conf-$i $extraopts &
  38. done
  39. cat md5-* | sort > md5-tot
  40. while true ; do
  41. read
  42. echo Verifying...
  43. conv=0
  44. for i in 1 2 3 ; do
  45. pushd files-$i >/dev/null
  46. ../md5r | sort > ../md5-$i
  47. popd >/dev/null
  48. if ! cmp md5-$i md5-tot >/dev/null ; then
  49. echo $i unconverged
  50. else
  51. conv=$((conv + 1))
  52. echo $i converged
  53. fi
  54. done
  55. if [[ $conv == 3 ]] ; then
  56. kill %1
  57. kill %2
  58. kill %3
  59. exit
  60. fi
  61. done