]> git.proxmox.com Git - ceph.git/blob - ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh
import quincy beta 17.1.0
[ceph.git] / ceph / qa / workunits / rados / test_envlibrados_for_rocksdb.sh
1 #!/usr/bin/env bash
2 set -ex
3
4 ############################################
5 # Helper functions
6 ############################################
7 source $(dirname $0)/../ceph-helpers-root.sh
8
9 ############################################
10 # Install required tools
11 ############################################
12 echo "Install required tools"
13
14 CURRENT_PATH=`pwd`
15
16 ############################################
17 # Compile&Start RocksDB
18 ############################################
19 # install prerequisites
20 # for rocksdb
21 case $(distro_id) in
22 ubuntu|debian|devuan|softiron)
23 install git g++ libsnappy-dev zlib1g-dev libbz2-dev libradospp-dev cmake
24 ;;
25 centos|fedora|rhel)
26 case $(distro_id) in
27 rhel)
28 # RHEL needs CRB repo for snappy-devel
29 sudo subscription-manager repos --enable "codeready-builder-for-rhel-8-x86_64-rpms"
30 ;;
31 esac
32 install git gcc-c++.x86_64 snappy-devel zlib zlib-devel bzip2 bzip2-devel libradospp-devel.x86_64 cmake libarchive-3.3.3
33 ;;
34 opensuse*|suse|sles)
35 install git gcc-c++ snappy-devel zlib-devel libbz2-devel libradospp-devel
36 ;;
37 *)
38 echo "$(distro_id) is unknown, $@ will have to be installed manually."
39 ;;
40 esac
41
42 # # gflags
43 # sudo yum install gflags-devel
44 #
45 # wget https://github.com/schuhschuh/gflags/archive/master.zip
46 # unzip master.zip
47 # cd gflags-master
48 # mkdir build && cd build
49 # export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
50 # make && make install
51
52 # # snappy-devel
53
54
55 echo "Compile rocksdb"
56 if [ -e rocksdb ]; then
57 rm -fr rocksdb
58 fi
59
60 pushd $(dirname /home/ubuntu/cephtest/clone.client.0/qa/workunits/rados/bash.sh)/../../../
61 git submodule update --init src/rocksdb
62 popd
63 git clone $(dirname /home/ubuntu/cephtest/clone.client.0/qa/workunits/rados/bash.sh)/../../../src/rocksdb rocksdb
64
65 # compile code
66 cd rocksdb
67 if type cmake3 > /dev/null 2>&1 ; then
68 CMAKE=cmake3
69 else
70 CMAKE=cmake
71 fi
72
73 [ -z "$BUILD_DIR" ] && BUILD_DIR=build
74 mkdir ${BUILD_DIR} && cd ${BUILD_DIR} && ${CMAKE} -DCMAKE_BUILD_TYPE=Debug -DWITH_TESTS=ON -DWITH_LIBRADOS=ON -DWITH_SNAPPY=ON -DWITH_GFLAGS=OFF -DFAIL_ON_WARNINGS=OFF ..
75 make rocksdb_env_librados_test -j8
76
77 echo "Copy ceph.conf"
78 # prepare ceph.conf
79 mkdir -p ../ceph/src/
80 if [ -f "/etc/ceph/ceph.conf" ]; then
81 cp /etc/ceph/ceph.conf ../ceph/src/
82 elif [ -f "/etc/ceph/ceph/ceph.conf" ]; then
83 cp /etc/ceph/ceph/ceph.conf ../ceph/src/
84 else
85 echo "/etc/ceph/ceph/ceph.conf doesn't exist"
86 fi
87
88 echo "Run EnvLibrados test"
89 # run test
90 if [ -f "../ceph/src/ceph.conf" ]
91 then
92 cp env_librados_test ~/cephtest/archive
93 ./env_librados_test
94 else
95 echo "../ceph/src/ceph.conf doesn't exist"
96 fi
97 cd ${CURRENT_PATH}