--- Revision None +++ Revision 333366616534 @@ -0,0 +1,97 @@ +#!/bin/sh -ex + +cd /tmp +TESTDIR=couchdb-upgrade-1.0-to-1.1 +mkdir -p $TESTDIR +cd $TESTDIR + +mkdir -p src +mkdir -p 1.0 +mkdir -p 1.1 + +cd src + +if [ ! -d couchdb ]; then + git clone git://git.apache.org/couchdb.git --depth=1 +fi + +cd couchdb + +# build 1.0.x +git checkout 1.0.x +./bootstrap +./configure --prefix=/tmp/$TESTDIR/1.0 +make -j4 +make install + +# build 1.1.x +git checkout 1.1.x +./bootstrap +./configure --prefix=/tmp/$TESTDIR/1.1 +make -j4 +make install + +cd ../.. +cd 1.0 + +# launch 1.0 +echo "[couchdb]" > llocal.ini +echo "delayed_commits=false" >> llocal.ini +echo "" >> llocal.ini +./bin/couchdb -b -a llocal.ini + +cd .. +cd 1.1 + +# launch 1.1 +echo "[couchdb]" > llocal.ini +echo "delayed_commits=false" >> llocal.ini +echo "[httpd]" >> llocal.ini +echo "port=5985" >> llocal.ini +echo "" >> llocal.ini +./bin/couchdb -b -a llocal.ini + +sleep 2 +cd .. + +# create test db in 1.0 + +COUCH10=http://127.0.0.1:5984 +curl -X PUT $COUCH10/test-db +curl -X PUT $COUCH10/test-db/test-doc/attachment.txt \ + -H "Content-Type: text/plain" \ + -d "My Hovercraft is full of eels" +RESULT=`curl $COUCH10/test-db/test-doc/attachment.txt` +if [ "$RESULT" = "My Hovercraft is full of eels" ]; then + echo "PASS SETUP" +else + echo "FAIL SETUP" +fi + +# copy test db to 1.1 +cp 1.0/var/lib/couchdb/test-db.couch 1.1/var/lib/couchdb/test-db.couch + +# compact with 1.1 +COUCH11=http://127.0.0.1:5985 +curl -X POST $COUCH11/test-db/_compact -H "Content-Type: application/json" + +# validate test db + +RESULT=`curl $COUCH11/test-db/test-doc/attachment.txt` +if [ "$RESULT" = "My Hovercraft is full of eels" ]; then + echo "PASS SETUP" +else + echo "FAIL VALIDATION" +fi + + +# shutdown couches + +cd /tmp/$TESTDIR + +cd 1.0 +./bin/couchdb -d + +cd .. +cd 1.1 +./bin/couchdb -d