summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2019-02-13 06:21:11 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2019-02-13 06:21:11 (GMT)
commit50a7ed337ce5bb10f9ad86ef02d580599e2101bf (patch)
tree0f85e47ef187b832d95f429a4c768b089f5debc7
parent3964f612eba8872d6fc8778f2523fd4bce47f649 (diff)
downloadhdf5-50a7ed337ce5bb10f9ad86ef02d580599e2101bf.zip
hdf5-50a7ed337ce5bb10f9ad86ef02d580599e2101bf.tar.gz
hdf5-50a7ed337ce5bb10f9ad86ef02d580599e2101bf.tar.bz2
* Added a script to run the RADOS examples in order.
* Updated BRANCH.txt with useful information about building and testing. * Makefile.am now installs everything you need as well as the test script.
-rw-r--r--BRANCH.txt55
-rw-r--r--examples/Makefile.am3
-rwxr-xr-xexamples/run_rados_examples.sh71
3 files changed, 118 insertions, 11 deletions
diff --git a/BRANCH.txt b/BRANCH.txt
index 2cbc975..57aa2da 100644
--- a/BRANCH.txt
+++ b/BRANCH.txt
@@ -1,15 +1,50 @@
-autotools_rework
+This branch is a copy of Neil's RADOS VOL connector branch.
+Very few changes have been made to the branch so it stays
+as a 'known good' version of the connector.
-The purpose of this branch is to make changes to the autotools files,
-particularly configure.ac. This will remove a lot of old cruft and update
-the input files. This effort was started in January 2015 and should be
-completed within the year.
+This is based off the ancient 'vol' branch and is wildy
+out of sync with develop. You will not be able to move
+the RADOS VOL connector built here to HDF5 1.12.0 without
+a lot of surgery. The rados_vol branch in this repository
+is kept in sync with develop and is probably the one
+you want for that.
-This branch tracks the trunk.
+Note that this is a dead branch, so no effort has been
+made to keep the MANIFEST sane, etc.
-Dana Robinson and Allen Byrne are the owners of this branch.
+************
+* BUILDING *
+************
-This branch should be closed when the bulk of the autotools work is
-complete and has been merged into the trunk and 1.8 branch. This
-work should be completed by mid-2015.
+The code for the RADOS VOL connector lies entirely in
+the H5VLrados* files in the src directory. The connector
+is built as a static part of the library.
+I build this branch on Ubuntu, with the system default
+librados-dev package and its dependencies installed. I use
+the autotools and the only thing I have to specify is the
+linker flags:
+
+LDFLAGS="-L/path/to/librados -lrados"
+
+YMMV, but the autotools do no librados hunting so you may
+need to specify things it can't figure out on its own.
+
+
+***********
+* TESTING *
+***********
+
+There are no tests for the RADOS VOL connector in the main
+library, so running 'make check' won't provide much
+information.
+
+Once the library has been built, you can run some smoke
+checks by running 'make install' and going to the
+share/hdf5_examples/c/ directory and running the
+run_rados_examples.sh script found there. That will
+create a small pool (or clear it out if it exists)
+and run all the example scripts in a sane order.
+
+*** YOU WILL NEED TO COPY YOUR ceph.conf FILE
+*** INTO THIS DIRECTORY FIRST!!!
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 323541f..ae0ac65 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -63,7 +63,8 @@ INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \
h5rados_file_create.c h5rados_file_open.c h5rados_group_create.c \
h5rados_group_open.c h5rados_dset_create.c \
h5rados_dset_open.c h5rados_dset_write.c h5rados_dset_read.c \
- h5rados_dset_wpartial.c h5rados_dset_rpartial.c
+ h5rados_dset_wpartial.c h5rados_dset_rpartial.c \
+ h5rados_example.h run_rados_examples.sh
diff --git a/examples/run_rados_examples.sh b/examples/run_rados_examples.sh
new file mode 100755
index 0000000..7782a56
--- /dev/null
+++ b/examples/run_rados_examples.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+# Build RADOS examples.
+# Assumes RADOS can be found in the usual location.
+echo "Building RADOS examples"
+../../../bin/h5pcc -o h5rados_file_create h5rados_file_create.c -lrados
+../../../bin/h5pcc -o h5rados_file_open h5rados_file_open.c -lrados
+../../../bin/h5pcc -o h5rados_dset_create h5rados_dset_create.c -lrados
+../../../bin/h5pcc -o h5rados_dset_open h5rados_dset_open.c -lrados
+../../../bin/h5pcc -o h5rados_group_create h5rados_group_create.c -lrados
+../../../bin/h5pcc -o h5rados_group_open h5rados_group_open.c -lrados
+../../../bin/h5pcc -o h5rados_dset_write h5rados_dset_write.c -lrados
+../../../bin/h5pcc -o h5rados_dset_read h5rados_dset_read.c -lrados
+
+../../../bin/h5pcc -o h5rados_dset_rpartial h5rados_dset_rpartial.c -lrados
+../../../bin/h5pcc -o h5rados_dset_wpartial h5rados_dset_wpartial.c -lrados
+echo "DONE"
+echo
+
+# Create the pool
+echo "Creating the test pool"
+echo "(Ceph makes it hard to delete pools, so we never do that"
+echo "and you may see a message that the pool already exists.)"
+ceph osd pool create mypool 128
+echo
+
+# Dump some Ceph info
+echo "Pool status at start of tests:"
+rados -p mypool ls
+echo
+
+# Clean out the test pool
+echo "Cleaning out the test pool"
+for i in $(rados -p mypool ls); do echo $i; rados -p mypool rm $i; done
+echo
+
+# Run the RADOS examples
+echo "Running RADOS examples"
+# File create/open
+echo "./h5rados_file_create testfile"
+mpiexec -n 2 ./h5rados_file_create testfile
+echo "./h5rados_file_open testfile"
+mpiexec -n 2 ./h5rados_file_open testfile
+# Dataset create/open
+echo "./h5rados_dset_create testfile testdset"
+mpiexec -n 2 ./h5rados_dset_create testfile testdset
+echo "./h5rados_dset_open testfile testdset"
+mpiexec -n 2 ./h5rados_dset_open testfile testdset
+# Group create/open
+echo "./h5rados_group_create testfile testgroup"
+mpiexec -n 2 ./h5rados_group_create testfile testgroup
+echo "./h5rados_group_open testfile testgroup"
+mpiexec -n 2 ./h5rados_group_open testfile testgroup
+# Dataset read/write
+echo "./h5rados_dset_write testfile testdset"
+mpiexec -n 2 ./h5rados_dset_write testfile testdset
+echo "./h5rados_dset_read testfile testdset"
+mpiexec -n 2 ./h5rados_dset_read testfile testdset
+# Dataset read/write (partial)
+echo "./h5rados_dset_wpartial testfile testdset"
+mpiexec -n 2 ./h5rados_dset_wpartial testfile testdset
+echo "./h5rados_dset_rpartial testfile testdset"
+mpiexec -n 2 ./h5rados_dset_rpartial testfile testdset
+echo
+
+
+# Dump the Ceph info again
+echo "Pool status at end of tests:"
+rados -p mypool ls
+echo
+