integration.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 1.2.18 2.0.9
  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. if [[ $v == 1.2.* ]]
  27. then
  28. go test -v ./... -proto 1
  29. else
  30. go test -v ./...
  31. fi
  32. echo "Test suite passed against Cassandra ${v}, killing server instance (PID ${PID})"
  33. kill -9 $PID
  34. rm $PID_FILE
  35. done