]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/test/pmem/common.sh
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / test / pmem / common.sh
CommitLineData
11fdf7f2
TL
1# Prints error message and return error code, closes vhost app and remove
2# pmem pool file
3# input: error message, error code
f67539c2 4function error() {
11fdf7f2
TL
5 local error_code=${2:-1}
6 echo "==========="
7 echo -e "ERROR: $1"
8 echo "error code: $error_code"
9 echo "==========="
f67539c2 10 vhost_kill 0
11fdf7f2
TL
11 pmem_clean_pool_file
12 return $error_code
13}
14
15# check if there is pool file & remove it
16# input: path to pool file
f67539c2
TL
17# default: $default_pool_file
18function pmem_clean_pool_file() {
19 local pool_file=${1:-$default_pool_file}
11fdf7f2
TL
20
21 if [ -f $pool_file ]; then
22 echo "Deleting old pool_file"
23 rm $pool_file
24 fi
25}
26
27# create new pmem file
28# input: path to pool file, size in MB, block_size
f67539c2
TL
29# default: $default_pool_file 32 512
30function pmem_create_pool_file() {
31 local pool_file=${1:-$default_pool_file}
11fdf7f2
TL
32 local size=${2:-32}
33 local block_size=${3:-512}
34
35 pmem_clean_pool_file $pool_file
36 echo "Creating new pool file"
f67539c2 37 if ! $rpc_py bdev_pmem_create_pool $pool_file $size $block_size; then
11fdf7f2
TL
38 error "Creating pool_file failed!"
39 fi
40
41 if [ ! -f $pool_file ]; then
42 error "Creating pool_file failed!"
43 fi
44}
45
f67539c2
TL
46function pmem_unmount_ramspace() {
47 if [ -d "$testdir/ramspace" ]; then
48 if mount | grep -q "$testdir/ramspace"; then
49 umount $testdir/ramspace
11fdf7f2
TL
50 fi
51
f67539c2 52 rm -rf $testdir/ramspace
11fdf7f2
TL
53 fi
54}
55
f67539c2 56function pmem_print_tc_name() {
11fdf7f2
TL
57 echo ""
58 echo "==============================================================="
59 echo "Now running: $1"
60 echo "==============================================================="
61}
62
f67539c2 63function vhost_start() {
11fdf7f2
TL
64 local vhost_pid
65
f67539c2 66 $SPDK_BIN_DIR/vhost &
11fdf7f2
TL
67
68 vhost_pid=$!
f67539c2 69 echo $vhost_pid > $testdir/vhost.pid
11fdf7f2
TL
70 waitforlisten $vhost_pid
71}
72
f67539c2
TL
73function vhost_kill() {
74 local vhost_pid_file="$testdir/vhost.pid"
75 local vhost_pid
76 vhost_pid="$(cat $vhost_pid_file)"
11fdf7f2 77
f67539c2 78 if [[ ! -f $vhost_pid_file ]]; then
11fdf7f2
TL
79 echo -e "ERROR: No vhost pid file found!"
80 return 1
81 fi
82
83 if ! kill -s INT $vhost_pid; then
84 echo -e "ERROR: Failed to exit vhost / invalid pid!"
85 rm $vhost_pid_file
86 return 1
87 fi
88
89 sleep 1
90 rm $vhost_pid_file
91}