From: Alan Somers Date: Tue, 3 Oct 2017 15:56:32 +0000 (-0600) Subject: blkdev: move test_get_blkdev_size to test_get_blkdev_props X-Git-Tag: v14.1.0~1135^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2fa3845d8f843f61ad687f50ed5bbcd161f894fe;p=ceph.git blkdev: move test_get_blkdev_size to test_get_blkdev_props Also, enhance blkdev test program to show more properties than just size Signed-off-by: Alan Somers --- diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 4592520bad2e..49ae77e2ac5b 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -448,10 +448,10 @@ if(${WITH_CEPHFS}) endif(${WITH_CEPHFS}) if(HAVE_BLKID) - add_executable(ceph_test_get_blkdev_size - test_get_blkdev_size.cc + add_executable(ceph_test_get_blkdev_props + test_get_blkdev_props.cc ) - target_link_libraries(ceph_test_get_blkdev_size + target_link_libraries(ceph_test_get_blkdev_props ceph-common pthread ${EXTRALIBS} diff --git a/src/test/test_get_blkdev_props.cc b/src/test/test_get_blkdev_props.cc new file mode 100644 index 000000000000..1d165697ceca --- /dev/null +++ b/src/test/test_get_blkdev_props.cc @@ -0,0 +1,93 @@ +#include +#include +#include +#include +#include +#include +#include +#include "include/uuid.h" +#include "common/blkdev.h" + +#define BUFSIZE 80 + +int main(int argc, char **argv) +{ + int fd, ret; + int64_t size; + bool discard_support; + bool nvme; + bool rotational; + char device[BUFSIZE]; + char partition[BUFSIZE]; + char dev[BUFSIZE]; + char model[BUFSIZE]; + char serial[BUFSIZE]; + char device[BUFSIZE]; + char partition[BUFSIZE]; + + if (argc != 2) { + fprintf(stderr, "usage: %s \n", argv[0]); + return -1; + } + + fd = open(argv[1], O_RDONLY); + if (fd < 0) { + perror("open"); + return -1; + } + + if ((ret = get_block_device_size(fd, &size)) < 0) { + fprintf(stderr, "get_block_device_size: %s\n", strerror(-ret)); + return -1; + } + + if ((ret = get_device_by_fd(fd, partition, device, BUFSIZE)) < 0) { + fprintf(stderr, "get_device_by_fd: %s\n", strerror(-ret)); + return -1; + } + + discard_support = block_device_support_discard(device); + + nvme = block_device_is_nvme(device); + + rotational = block_device_is_rotational(device); + + if ((ret = block_device_dev(device, dev, BUFSIZE)) < 0) { + fprintf(stderr, "block_device_dev: %s\n", strerror(-ret)); + return -1; + } + + if ((ret = blkdev.get_device_by_fd(partition, device, BUFSIZE)) < 0) { + fprintf(stderr, "get_device_by_fd: %s\n", strerror(-ret)); + return -1; + } + + ret = blkdev.block_device_model(model, BUFSIZE); + if (ret == -ENOENT) { + snprintf(model, BUFSIZE, "unknown"); + } else if (ret < 0) { + fprintf(stderr, "block_device_model: %s\n", strerror(-ret)); + return -1; + } + + ret = block_device_serial(device, serial, BUFSIZE); + if (ret == -ENOENT) { + snprintf(serial, BUFSIZE, "unknown"); + } else if (ret < 0) { + fprintf(stderr, "block_device_serial: %s\n", strerror(-ret)); + return -1; + } + + fprintf(stdout, "Size:\t\t%" PRId64 "\n", size); + fprintf(stdout, "Discard:\t%s\n", + discard_support ? "supported" : "not supported"); + fprintf(stdout, "NVME:\t\t%s\n", nvme ? "yes" : "no"); + fprintf(stdout, "Rotational:\t%s\n", rotational ? "yes" : "no"); + fprintf(stdout, "Dev:\t\t%s\n", dev); + fprintf(stdout, "Device:\t\t%s\n", device); + fprintf(stdout, "Partition:\t%s\n", partition); + fprintf(stdout, "Model:\t\t%s\n", model); + fprintf(stdout, "Serial:\t\t%s\n", serial); + + return 0; +} diff --git a/src/test/test_get_blkdev_size.cc b/src/test/test_get_blkdev_size.cc deleted file mode 100644 index db19c79cca97..000000000000 --- a/src/test/test_get_blkdev_size.cc +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include "include/uuid.h" -#include "common/blkdev.h" - -int main(int argc, char **argv) -{ - int fd, ret; - int64_t size; - - if (argc != 2) { - fprintf(stderr, "usage: %s \n", argv[0]); - return -1; - } - - fd = open(argv[1], O_RDONLY); - if (fd < 0) { - perror("open"); - return -1; - } - - ret = get_block_device_size(fd, &size); - if (ret < 0) { - fprintf(stderr, "get_block_device_size: %s\n", strerror(-ret)); - return -1; - } - - fprintf(stdout, "%" PRId64, size); - - return 0; -}