initial code repo
[stor4nfv.git] / src / ceph / qa / workunits / rados / test_envlibrados_for_rocksdb.sh
diff --git a/src/ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh b/src/ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh
new file mode 100755 (executable)
index 0000000..94580c2
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/bash -ex
+############################################
+#                      Helper functions
+############################################
+function install() {
+    for package in "$@" ; do
+        install_one $package
+    done
+    return 0
+}
+
+function install_one() {
+    case $(lsb_release -si) in
+        Ubuntu|Debian|Devuan)
+            sudo apt-get install -y --force-yes "$@"
+            ;;
+        CentOS|Fedora|RedHatEnterpriseServer)
+            sudo yum install -y "$@"
+            ;;
+        *SUSE*)
+            sudo zypper --non-interactive install "$@"
+            ;;
+        *)
+            echo "$(lsb_release -si) is unknown, $@ will have to be installed manually."
+            ;;
+    esac
+}
+############################################
+#                      Install required tools
+############################################
+echo "Install required tools"
+install git automake
+
+CURRENT_PATH=`pwd`
+
+############################################
+#                      Compile&Start RocksDB
+############################################
+# install prerequisites
+# for rocksdb
+case $(lsb_release -si) in
+       Ubuntu|Debian|Devuan)
+               install g++-4.7 libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev librados-dev
+               ;;
+       CentOS|Fedora|RedHatEnterpriseServer)
+               install gcc-c++.x86_64 gflags-devel snappy-devel zlib zlib-devel bzip2 bzip2-devel librados2-devel.x86_64
+               ;;
+       *)
+        echo "$(lsb_release -si) is unknown, $@ will have to be installed manually."
+        ;;
+esac
+
+# # gflags
+# sudo yum install gflags-devel
+# 
+# wget https://github.com/schuhschuh/gflags/archive/master.zip
+# unzip master.zip
+# cd gflags-master
+# mkdir build && cd build
+# export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
+# make && make install
+
+# # snappy-devel
+
+
+echo "Compile rocksdb"
+if [ -e rocksdb ]; then
+       rm -fr rocksdb
+fi
+git clone https://github.com/facebook/rocksdb.git --depth 1
+
+# compile code
+cd rocksdb
+make env_librados_test ROCKSDB_USE_LIBRADOS=1 -j8
+
+echo "Copy ceph.conf"
+# prepare ceph.conf
+mkdir -p ../ceph/src/
+if [ -f "/etc/ceph/ceph.conf" ]; then
+    cp /etc/ceph/ceph.conf ../ceph/src/
+elif [ -f "/etc/ceph/ceph/ceph.conf" ]; then
+       cp /etc/ceph/ceph/ceph.conf ../ceph/src/
+else 
+       echo "/etc/ceph/ceph/ceph.conf doesn't exist"
+fi
+
+echo "Run EnvLibrados test"
+# run test
+if [ -f "../ceph/src/ceph.conf" ]
+       then
+       cp env_librados_test ~/cephtest/archive
+       ./env_librados_test
+else 
+       echo "../ceph/src/ceph.conf doesn't exist"
+fi
+cd ${CURRENT_PATH}