From c46c890d0241972cee10260f071f65b4beedf92c Mon Sep 17 00:00:00 2001 From: Nathan Cutler Date: Thu, 19 Jul 2018 17:59:04 +0200 Subject: [PATCH] qa: add test that builds example librados programs Fixes: http://tracker.ceph.com/issues/15100 Signed-off-by: Nathan Cutler --- .../all/librados_hello_world.yaml | 20 ++++++ qa/workunits/rados/test_librados_build.sh | 64 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml create mode 100755 qa/workunits/rados/test_librados_build.sh diff --git a/qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml b/qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml new file mode 100644 index 0000000000000..f77f5bbf4d6cd --- /dev/null +++ b/qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml @@ -0,0 +1,20 @@ +roles: +- [mon.a, mds.a, mgr.x, osd.0, osd.1, client.0] +overrides: + ceph: + log-whitelist: + - \(POOL_APP_NOT_ENABLED\) +tasks: +- install: + extra_packages: + deb: + - libradosstriper-dev + - librados-dev + rpm: + - libradosstriper-devel + - librados-devel +- ceph: +- workunit: + clients: + all: + - rados/test_librados_build.sh diff --git a/qa/workunits/rados/test_librados_build.sh b/qa/workunits/rados/test_librados_build.sh new file mode 100755 index 0000000000000..43ded25b2036e --- /dev/null +++ b/qa/workunits/rados/test_librados_build.sh @@ -0,0 +1,64 @@ +#!/bin/bash -ex +# +# Compile and run a librados application outside of the ceph build system, so +# that we can be sure librados.h[pp] is still usable and hasn't accidentally +# started depending on internal headers. +# +# The script assumes all dependencies - e.g. curl, make, gcc, librados headers, +# libradosstriper headers, boost headers, etc. - are already installed. +# + +trap cleanup EXIT + +SOURCES="hello_radosstriper.cc +hello_world_c.c +hello_world.cc +Makefile +" +BINARIES_TO_RUN="hello_world_c +hello_world_cpp +" +BINARIES="${BINARIES_TO_RUN}hello_radosstriper_cpp +" +DL_PREFIX="http://git.ceph.com/?p=ceph.git;a=blob_plain;f=examples/librados/" +#DL_PREFIX="https://raw.githubusercontent.com/ceph/ceph/master/examples/librados/" +DESTDIR=$(pwd) + +function cleanup () { + for f in $BINARIES$SOURCES ; do + rm -f "${DESTDIR}/$f" + done +} + +function get_sources () { + for s in $SOURCES ; do + curl --progress-bar --output $s ${DL_PREFIX}$s + done +} + +function check_sources () { + for s in $SOURCES ; do + test -f $s + done +} + +function check_binaries () { + for b in $BINARIES ; do + file $b + test -f $b + done +} + +function run_binaries () { + for b in $BINARIES_TO_RUN ; do + ./$b -c /etc/ceph/ceph.conf + done +} + +pushd $DESTDIR +get_sources +check_sources +make all-system +check_binaries +run_binaries +popd -- 2.39.5