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