integration.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. set -e
  3. PID_FILE=cassandra.pid
  4. STARTUP_LOG=startup.log
  5. ARCHIVE_BASE_URL=http://archive.apache.org/dist/cassandra
  6. for v in 2.0.6 2.0.7
  7. do
  8. TARBALL=apache-cassandra-$v-bin.tar.gz
  9. CASSANDRA_DIR=apache-cassandra-$v
  10. curl -L -O $ARCHIVE_BASE_URL/$v/$TARBALL
  11. if [ ! -f $CASSANDRA_DIR/bin/cassandra ]
  12. then
  13. tar xzf $TARBALL
  14. fi
  15. CASSANDRA_LOG_DIR=`pwd`/v${v}/log/cassandra
  16. CASSANDRA_LOG=$CASSANDRA_LOG_DIR/system.log
  17. mkdir -p $CASSANDRA_LOG_DIR
  18. : >$CASSANDRA_LOG # create an empty log file
  19. sed -i -e 's?/var?'`pwd`/v${v}'?' $CASSANDRA_DIR/conf/cassandra.yaml
  20. sed -i -e 's?/var?'`pwd`/v${v}'?' $CASSANDRA_DIR/conf/log4j-server.properties
  21. echo "Booting Cassandra ${v}, waiting for CQL listener to start ...."
  22. $CASSANDRA_DIR/bin/cassandra -p $PID_FILE &> $STARTUP_LOG
  23. { tail -n +1 -f $CASSANDRA_LOG & } | sed -n '/Starting listening for CQL clients/q'
  24. PID=$(<"$PID_FILE")
  25. echo "Cassandra ${v} running (PID ${PID}), about to run test suite ...."
  26. go test -v ./...
  27. echo "Test suite passed against Cassandra ${v}, killing server instance (PID ${PID})"
  28. kill -9 $PID
  29. rm $PID_FILE
  30. done