From d4e16452c82fcf6a71292aa91f5d7424a31b7b0f Mon Sep 17 00:00:00 2001 From: Rajesh Joseph Date: Wed, 14 Sep 2016 06:08:39 +0530 Subject: tests: Enable all gfapi test cases > Change-Id: I32bfec4af91348d96dc3e81a9d5c9cad599f821b > Bug: 1358594 > Signed-off-by: Poornima G > Reviewed-on: http://review.gluster.org/14748 > NetBSD-regression: NetBSD Build System > CentOS-regression: Gluster Build System > Smoke: Gluster Build System > Reviewed-by: Raghavendra Talur Bug: 1375990 Change-Id: I87f6c7d20959e2d4bbe8c064767a9fed004e8c4a Signed-off-by: Rajesh Joseph Reviewed-on: http://review.gluster.org/15499 NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Smoke: Gluster Build System Reviewed-by: Raghavendra Talur --- tests/basic/gfapi/anonymous_fd.sh | 26 --- tests/basic/gfapi/anonymous_fd.t | 26 +++ tests/basic/gfapi/anonymous_fd_read_write.c | 10 +- tests/basic/gfapi/bug-1241104.c | 11 +- tests/basic/gfapi/bug-1241104.sh | 30 --- tests/basic/gfapi/bug-1241104.t | 30 +++ tests/basic/gfapi/bug1283983.c | 10 +- tests/basic/gfapi/bug1283983.sh | 6 +- tests/basic/gfapi/bug1291259.c | 13 +- tests/basic/gfapi/bug1291259.sh | 30 --- tests/basic/gfapi/bug1291259.t | 30 +++ tests/basic/gfapi/gfapi-dup.c | 10 +- tests/basic/gfapi/gfapi-dup.sh | 27 --- tests/basic/gfapi/gfapi-dup.t | 27 +++ tests/basic/gfapi/libgfapi-fini-hang.c | 16 +- tests/basic/gfapi/libgfapi-fini-hang.sh | 40 ---- tests/basic/gfapi/libgfapi-fini-hang.t | 40 ++++ tests/basic/gfapi/seek.c | 16 +- tests/basic/gfapi/upcall-cache-invalidate.c | 13 +- tests/basic/gfapi/upcall-cache-invalidate.sh | 37 --- tests/basic/gfapi/upcall-cache-invalidate.t | 37 +++ tests/bugs/ec/bug-1161886.c | 4 +- tests/bugs/ec/bug-1161886.t | 2 +- tests/bugs/gfapi/bug-1032894.t | 33 +++ tests/bugs/gfapi/bug-1093594.c | 317 ++++++++++++++++++++++++++ tests/bugs/gfapi/bug-1093594.t | 20 ++ tests/bugs/gfapi/bug-1319374-THIS-crash.t | 27 +++ tests/bugs/gfapi/bug-1319374.c | 130 +++++++++++ tests/bugs/gfapi/glfs_vol_set_IO_ERR.c | 165 ++++++++++++++ tests/bugs/gfapi/glfs_vol_set_IO_ERR.t | 20 ++ tests/bugs/libgfapi/bug-1032894.t | 33 --- tests/bugs/libgfapi/bug-1093594.c | 315 ------------------------- tests/bugs/libgfapi/bug-1093594.sh | 20 -- tests/bugs/libgfapi/bug-1319374-THIS-crash.sh | 27 --- tests/bugs/libgfapi/bug-1319374.c | 128 ----------- tests/bugs/libgfapi/glfs_vol_set_IO_ERR.c | 165 -------------- tests/bugs/libgfapi/glfs_vol_set_IO_ERR.sh | 20 -- tests/bugs/shard/bug-shard-discard.c | 4 +- tests/bugs/shard/bug-shard-discard.t | 2 +- tests/bugs/shard/bug-shard-zerofill.c | 4 +- tests/bugs/shard/bug-shard-zerofill.t | 2 +- tests/bugs/shard/shard-fallocate.c | 4 +- tests/bugs/shard/zero-flag.t | 2 +- tests/env.rc.in | 10 + tests/include.rc | 4 + 45 files changed, 987 insertions(+), 956 deletions(-) delete mode 100755 tests/basic/gfapi/anonymous_fd.sh create mode 100755 tests/basic/gfapi/anonymous_fd.t delete mode 100755 tests/basic/gfapi/bug-1241104.sh create mode 100755 tests/basic/gfapi/bug-1241104.t delete mode 100755 tests/basic/gfapi/bug1291259.sh create mode 100755 tests/basic/gfapi/bug1291259.t delete mode 100755 tests/basic/gfapi/gfapi-dup.sh create mode 100755 tests/basic/gfapi/gfapi-dup.t delete mode 100755 tests/basic/gfapi/libgfapi-fini-hang.sh create mode 100755 tests/basic/gfapi/libgfapi-fini-hang.t delete mode 100755 tests/basic/gfapi/upcall-cache-invalidate.sh create mode 100755 tests/basic/gfapi/upcall-cache-invalidate.t create mode 100644 tests/bugs/gfapi/bug-1032894.t create mode 100644 tests/bugs/gfapi/bug-1093594.c create mode 100755 tests/bugs/gfapi/bug-1093594.t create mode 100755 tests/bugs/gfapi/bug-1319374-THIS-crash.t create mode 100644 tests/bugs/gfapi/bug-1319374.c create mode 100644 tests/bugs/gfapi/glfs_vol_set_IO_ERR.c create mode 100755 tests/bugs/gfapi/glfs_vol_set_IO_ERR.t delete mode 100644 tests/bugs/libgfapi/bug-1032894.t delete mode 100644 tests/bugs/libgfapi/bug-1093594.c delete mode 100755 tests/bugs/libgfapi/bug-1093594.sh delete mode 100755 tests/bugs/libgfapi/bug-1319374-THIS-crash.sh delete mode 100644 tests/bugs/libgfapi/bug-1319374.c delete mode 100644 tests/bugs/libgfapi/glfs_vol_set_IO_ERR.c delete mode 100755 tests/bugs/libgfapi/glfs_vol_set_IO_ERR.sh (limited to 'tests') diff --git a/tests/basic/gfapi/anonymous_fd.sh b/tests/basic/gfapi/anonymous_fd.sh deleted file mode 100755 index 2184f8efc8e..00000000000 --- a/tests/basic/gfapi/anonymous_fd.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -TEST glusterd - -TEST $CLI volume create $V0 $H0:$B0/brick1; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -logdir=`gluster --print-logdir` - -TEST build_tester $(dirname $0)/anonymous_fd_read_write.c -lgfapi -o $(dirname $0)/anonymous_fd -TEST ./$(dirname $0)/anonymous_fd $V0 $logdir/anonymous_fd.log - -cleanup_tester $(dirname $0)/anonymous_fd - -TEST $CLI volume stop $V0 -TEST $CLI volume delete $V0 - -cleanup; diff --git a/tests/basic/gfapi/anonymous_fd.t b/tests/basic/gfapi/anonymous_fd.t new file mode 100755 index 00000000000..bc0fb0fa2f0 --- /dev/null +++ b/tests/basic/gfapi/anonymous_fd.t @@ -0,0 +1,26 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +logdir=`gluster --print-logdir` + +TEST build_tester $(dirname $0)/anonymous_fd_read_write.c -lgfapi -o $(dirname $0)/anonymous_fd +TEST ./$(dirname $0)/anonymous_fd $H0 $V0 $logdir/anonymous_fd.log + +cleanup_tester $(dirname $0)/anonymous_fd + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/tests/basic/gfapi/anonymous_fd_read_write.c b/tests/basic/gfapi/anonymous_fd_read_write.c index 885f0a2b26f..6945dd634f0 100644 --- a/tests/basic/gfapi/anonymous_fd_read_write.c +++ b/tests/basic/gfapi/anonymous_fd_read_write.c @@ -30,14 +30,16 @@ main (int argc, char *argv[]) char *filename = "file.txt"; char *logfile = NULL; char *volname = NULL; + char *hostname = NULL; - if (argc != 3) { + if (argc != 4) { fprintf (stderr, "Invalid argument\n"); exit(1); } - volname = argv[1]; - logfile = argv[2]; + hostname = argv[1]; + volname = argv[2]; + logfile = argv[3]; fs = glfs_new (volname); if (!fs) { @@ -45,7 +47,7 @@ main (int argc, char *argv[]) ret = -1; } - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs, logfile, 7); diff --git a/tests/basic/gfapi/bug-1241104.c b/tests/basic/gfapi/bug-1241104.c index 0f1a616bd39..311323f672a 100644 --- a/tests/basic/gfapi/bug-1241104.c +++ b/tests/basic/gfapi/bug-1241104.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -32,15 +31,17 @@ main (int argc, char *argv[]) char *filename = "file_tmp"; char *volname = NULL; char *logfile = NULL; + char *hostname = NULL; struct flock lock = {0, }; - if (argc != 3) { + if (argc != 4) { fprintf (stderr, "Invalid argument\n"); exit(1); } - volname = argv[1]; - logfile = argv[2]; + hostname = argv[1]; + volname = argv[2]; + logfile = argv[3]; fs = glfs_new (volname); if (!fs) { @@ -48,7 +49,7 @@ main (int argc, char *argv[]) return -1; } - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs, logfile, 7); diff --git a/tests/basic/gfapi/bug-1241104.sh b/tests/basic/gfapi/bug-1241104.sh deleted file mode 100755 index e071835758d..00000000000 --- a/tests/basic/gfapi/bug-1241104.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -TEST glusterd - -TEST $CLI volume create $V0 localhost:$B0/brick1; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -logdir=`gluster --print-logdir` - -## Enable Upcall cache-invalidation feature -TEST $CLI volume set $V0 features.cache-invalidation on; - -build_tester $(dirname $0)/bug-1241104.c -lgfapi -o $(dirname $0)/bug-1241104 - -TEST ./$(dirname $0)/bug-1241104 $V0 $logdir/bug-1241104.log - -cleanup_tester $(dirname $0)/bug1241104 - -TEST $CLI volume stop $V0 -TEST $CLI volume delete $V0 - -cleanup; diff --git a/tests/basic/gfapi/bug-1241104.t b/tests/basic/gfapi/bug-1241104.t new file mode 100755 index 00000000000..e7f4759c3d5 --- /dev/null +++ b/tests/basic/gfapi/bug-1241104.t @@ -0,0 +1,30 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +logdir=`gluster --print-logdir` + +## Enable Upcall cache-invalidation feature +TEST $CLI volume set $V0 features.cache-invalidation on; + +TEST build_tester $(dirname $0)/bug-1241104.c -lgfapi + +TEST ./$(dirname $0)/bug-1241104 $H0 $V0 $logdir/bug-1241104.log + +cleanup_tester $(dirname $0)/bug-1241104 + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/tests/basic/gfapi/bug1283983.c b/tests/basic/gfapi/bug1283983.c index 76db8d5ca09..abbe44878b3 100644 --- a/tests/basic/gfapi/bug1283983.c +++ b/tests/basic/gfapi/bug1283983.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -48,13 +47,14 @@ main (int argc, char *argv[]) cbk.reason = 0; fprintf (stderr, "Starting libgfapi_fini\n"); - if (argc != 3) { + if (argc != 4) { fprintf (stderr, "Invalid argument\n"); exit(1); } - volname = argv[1]; - logfile = argv[2]; + hostname = argv[1] + volname = argv[2]; + logfile = argv[3]; fs = glfs_new (volname); @@ -63,7 +63,7 @@ main (int argc, char *argv[]) return 1; } - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs, logfile, 7); diff --git a/tests/basic/gfapi/bug1283983.sh b/tests/basic/gfapi/bug1283983.sh index 97f1b01150c..931a0b55935 100755 --- a/tests/basic/gfapi/bug1283983.sh +++ b/tests/basic/gfapi/bug1283983.sh @@ -7,7 +7,7 @@ cleanup; TEST glusterd -TEST $CLI volume create $V0 localhost:$B0/brick1; +TEST $CLI volume create $V0 $H0:$B0/brick1; EXPECT 'Created' volinfo_field $V0 'Status'; TEST $CLI volume start $V0; @@ -18,9 +18,9 @@ logdir=`gluster --print-logdir` ## Enable Upcall cache-invalidation feature TEST $CLI volume set $V0 features.cache-invalidation on; -build_tester $(dirname $0)/bug1283983.c -lgfapi -o $(dirname $0)/bug1283983 +build_tester $(dirname $0)/bug1283983.c -lgfapi -TEST ./$(dirname $0)/bug1283983 $V0 $logdir/bug1283983.log +TEST ./$(dirname $0)/bug1283983 $H0 $V0 $logdir/bug1283983.log ## There shouldn't be any NULL gfid messages logged TEST ! cat $logdir/bug1283983.log | grep "upcall" | grep "00000000-0000-0000-0000-000000000000" diff --git a/tests/basic/gfapi/bug1291259.c b/tests/basic/gfapi/bug1291259.c index a0cd821a185..7fc1a48da6e 100644 --- a/tests/basic/gfapi/bug1291259.c +++ b/tests/basic/gfapi/bug1291259.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -44,6 +43,7 @@ main (int argc, char *argv[]) struct callback_arg cbk; char *logfile = NULL; char *volname = NULL; + char *hostname = NULL; int cnt = 1; int upcall_received = 0; struct callback_inode_arg *in_arg = NULL; @@ -52,13 +52,14 @@ main (int argc, char *argv[]) unsigned char globjhdl2[GFAPI_HANDLE_LENGTH]; fprintf (stderr, "Starting libgfapi_fini\n"); - if (argc != 3) { + if (argc != 4) { fprintf (stderr, "Invalid argument\n"); exit(1); } - volname = argv[1]; - logfile = argv[2]; + hostname = argv[1]; + volname = argv[2]; + logfile = argv[3]; fs = glfs_new (volname); @@ -67,7 +68,7 @@ main (int argc, char *argv[]) return 1; } - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs, logfile, 7); @@ -89,7 +90,7 @@ main (int argc, char *argv[]) return 1; } - ret = glfs_set_volfile_server (fs2, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs2, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs2, logfile, 7); diff --git a/tests/basic/gfapi/bug1291259.sh b/tests/basic/gfapi/bug1291259.sh deleted file mode 100755 index edbac7e6b12..00000000000 --- a/tests/basic/gfapi/bug1291259.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -TEST glusterd - -TEST $CLI volume create $V0 localhost:$B0/brick1; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -logdir=`gluster --print-logdir` - -## Enable Upcall cache-invalidation feature -TEST $CLI volume set $V0 features.cache-invalidation on; - -build_tester $(dirname $0)/bug1291259.c -lgfapi -o $(dirname $0)/bug1291259 - -TEST ./$(dirname $0)/bug1291259 $V0 $logdir/bug1291259.log - -cleanup_tester $(dirname $0)/bug1291259 - -TEST $CLI volume stop $V0 -TEST $CLI volume delete $V0 - -cleanup; diff --git a/tests/basic/gfapi/bug1291259.t b/tests/basic/gfapi/bug1291259.t new file mode 100755 index 00000000000..2247c567ffc --- /dev/null +++ b/tests/basic/gfapi/bug1291259.t @@ -0,0 +1,30 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +logdir=`gluster --print-logdir` + +## Enable Upcall cache-invalidation feature +TEST $CLI volume set $V0 features.cache-invalidation on; + +TEST build_tester $(dirname $0)/bug1291259.c -lgfapi + +TEST ./$(dirname $0)/bug1291259 $H0 $V0 $logdir/bug1291259.log + +cleanup_tester $(dirname $0)/bug1291259 + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/tests/basic/gfapi/gfapi-dup.c b/tests/basic/gfapi/gfapi-dup.c index 450fbdc4186..96f133eae33 100644 --- a/tests/basic/gfapi/gfapi-dup.c +++ b/tests/basic/gfapi/gfapi-dup.c @@ -22,23 +22,25 @@ main (int argc, char *argv[]) glfs_fd_t *fd2 = NULL; char *volname = NULL; char *logfile = NULL; + char *hostname = NULL; const char *filename = "file_tmp"; const char *buff = "An opinion should be the result of thought, " "not a substitute for it."; - if (argc != 3) { + if (argc != 4) { fprintf (stderr, "Invalid argument\n"); return 1; } - volname = argv[1]; - logfile = argv[2]; + hostname = argv[1]; + volname = argv[2]; + logfile = argv[3]; fs = glfs_new (volname); if (!fs) VALIDATE_AND_GOTO_LABEL_ON_ERROR ("glfs_new", ret, out); - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); VALIDATE_AND_GOTO_LABEL_ON_ERROR ("glfs_set_volfile_server", ret, out); ret = glfs_set_logging (fs, logfile, 7); diff --git a/tests/basic/gfapi/gfapi-dup.sh b/tests/basic/gfapi/gfapi-dup.sh deleted file mode 100755 index 6c89e0e473d..00000000000 --- a/tests/basic/gfapi/gfapi-dup.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -TEST glusterd - -TEST $CLI volume create $V0 localhost:$B0/brick1; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -logdir=`gluster --print-logdir` - -build_tester $(dirname $0)/gfapi-dup.c -lgfapi -o $(dirname $0)/gfapi-dup - -TEST ./$(dirname $0)/gfapi-dup $V0 $logdir/gfapi-dup.log - -cleanup_tester $(dirname $0)/gfapi-dup - -TEST $CLI volume stop $V0 -TEST $CLI volume delete $V0 - -cleanup; diff --git a/tests/basic/gfapi/gfapi-dup.t b/tests/basic/gfapi/gfapi-dup.t new file mode 100755 index 00000000000..849b106f90f --- /dev/null +++ b/tests/basic/gfapi/gfapi-dup.t @@ -0,0 +1,27 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +logdir=`gluster --print-logdir` + +TEST build_tester $(dirname $0)/gfapi-dup.c -lgfapi + +TEST ./$(dirname $0)/gfapi-dup $H0 $V0 $logdir/gfapi-dup.log + +cleanup_tester $(dirname $0)/gfapi-dup + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/tests/basic/gfapi/libgfapi-fini-hang.c b/tests/basic/gfapi/libgfapi-fini-hang.c index ee16bd7ce58..81b065ca924 100644 --- a/tests/basic/gfapi/libgfapi-fini-hang.c +++ b/tests/basic/gfapi/libgfapi-fini-hang.c @@ -2,12 +2,11 @@ #include #include #include -#include #include #include #include -#include "api/glfs.h" -#include "api/glfs-handles.h" +#include +#include #define LOG_ERR(func, ret) do { \ if (ret != 0) { \ @@ -26,21 +25,26 @@ main (int argc, char *argv[]) glfs_fd_t *fd = NULL; char readbuf[32]; char *filename = "a1"; + char *hostname = NULL; + char *volname = NULL; fprintf (stderr, "Starting libgfapi_fini\n"); - if (argc < 2) { + if (argc < 3) { fprintf (stderr, "Invalid argument\n"); exit(1); } - fs = glfs_new (argv[1]); + hostname = argv[1]; + volname = argv[2]; + + fs = glfs_new (volname); if (!fs) { fprintf (stderr, "glfs_new: returned NULL\n"); exit(1); } - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 0); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 0); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs, "/dev/stderr", 7); diff --git a/tests/basic/gfapi/libgfapi-fini-hang.sh b/tests/basic/gfapi/libgfapi-fini-hang.sh deleted file mode 100755 index 56633288020..00000000000 --- a/tests/basic/gfapi/libgfapi-fini-hang.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc - -function check_process () { - pgrep libgfapi-fini-hang - if [ $? -eq 1 ] ; then - echo "Y" - else - echo "N" - fi -} - -cleanup; - -TEST glusterd - -TEST $CLI volume create $V0 $H0:$B0/brick1; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -build_tester -lgfapi $(dirname $0)/libgfapi-fini-hang.c -o $M0/libgfapi-fini-hang -TEST cd $M0 - ./libgfapi-fini-hang $V0 & -lpid=$! - -# check if the process "libgfapi-fini-hang" exits with in $PROCESS_UP_TIMEOUT -EXPECT_WITHIN $PROCESS_UP_TIMEOUT 'Y' check_process - -# Kill the process if present -TEST ! kill -9 $lpid - -TEST rm -f $M0/libgfapi-fini-hang - -TEST $CLI volume stop $V0 -TEST $CLI volume delete $V0 - -cleanup; diff --git a/tests/basic/gfapi/libgfapi-fini-hang.t b/tests/basic/gfapi/libgfapi-fini-hang.t new file mode 100755 index 00000000000..8bbeb848122 --- /dev/null +++ b/tests/basic/gfapi/libgfapi-fini-hang.t @@ -0,0 +1,40 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc + +function check_process () { + pgrep libgfapi-fini-hang + if [ $? -eq 1 ] ; then + echo "Y" + else + echo "N" + fi +} + +cleanup; + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +TEST build_tester -lgfapi $(dirname $0)/libgfapi-fini-hang.c -o $M0/libgfapi-fini-hang +TEST cd $M0 + ./libgfapi-fini-hang $H0 $V0 & +lpid=$! + +# check if the process "libgfapi-fini-hang" exits with in $PROCESS_UP_TIMEOUT +EXPECT_WITHIN $PROCESS_UP_TIMEOUT 'Y' check_process + +# Kill the process if present +TEST ! kill -9 $lpid + +TEST rm -f $M0/libgfapi-fini-hang + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/tests/basic/gfapi/seek.c b/tests/basic/gfapi/seek.c index a0fec7d990a..fb2f6361bf3 100644 --- a/tests/basic/gfapi/seek.c +++ b/tests/basic/gfapi/seek.c @@ -14,8 +14,8 @@ #include #include -#include -#include +#include +#include int main (int argc, char **argv) @@ -25,18 +25,20 @@ main (int argc, char **argv) glfs_fd_t *fd = NULL; char *filename = NULL; char *volname = NULL; + char *hostname = NULL; struct stat st = { 0, }; off_t hole_start = 0; off_t hole_end = 0; - if (argc != 3) { - fprintf (stderr, "Invalid argument, use %s \n", + if (argc != 4) { + fprintf (stderr, "Invalid argument, use %s \n", argv[0]); exit (1); } - volname = argv[1]; - filename = argv[2]; + hostname = argv[1]; + volname = argv[2]; + filename = argv[3]; fs = glfs_new (volname); if (!fs) { @@ -44,7 +46,7 @@ main (int argc, char **argv) return 1; } - if (glfs_set_volfile_server (fs, "tcp", "localhost", 24007)) { + if (glfs_set_volfile_server (fs, "tcp", hostname, 24007)) { perror ("glfs_set_volfile_server"); return 1; } diff --git a/tests/basic/gfapi/upcall-cache-invalidate.c b/tests/basic/gfapi/upcall-cache-invalidate.c index 13cca69da89..2615f65764f 100644 --- a/tests/basic/gfapi/upcall-cache-invalidate.c +++ b/tests/basic/gfapi/upcall-cache-invalidate.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -41,17 +40,19 @@ main (int argc, char *argv[]) struct callback_arg cbk; char *logfile = NULL; char *volname = NULL; + char *hostname = NULL; struct callback_inode_arg *in_arg = NULL; cbk.reason = 0; - if (argc != 3) { + if (argc != 4) { fprintf (stderr, "Invalid argument\n"); exit(1); } - volname = argv[1]; - logfile = argv[2]; + hostname = argv[1]; + volname = argv[2]; + logfile = argv[3]; fs = glfs_new (volname); if (!fs) { @@ -59,7 +60,7 @@ main (int argc, char *argv[]) return -1; } - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server", ret); ret = glfs_set_logging (fs, logfile, 7); @@ -81,7 +82,7 @@ main (int argc, char *argv[]) return 1; } - ret = glfs_set_volfile_server (fs2, "tcp", "localhost", 24007); + ret = glfs_set_volfile_server (fs2, "tcp", hostname, 24007); LOG_ERR("glfs_set_volfile_server-fs2", ret); ret = glfs_set_logging (fs2, logfile, 7); diff --git a/tests/basic/gfapi/upcall-cache-invalidate.sh b/tests/basic/gfapi/upcall-cache-invalidate.sh deleted file mode 100755 index f6f59bea752..00000000000 --- a/tests/basic/gfapi/upcall-cache-invalidate.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -# Upcall feature is disable for now. A new xlator option -# will be introduced to turn it on. Skipping this test -# till then. - -SKIP_TESTS; -exit 0 - -TEST glusterd - -TEST $CLI volume create $V0 localhost:$B0/brick1; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -logdir=`gluster --print-logdir` - -## Enable Upcall cache-invalidation feature -TEST $CLI volume set $V0 features.cache-invalidation on; - -build_tester $(dirname $0)/upcall-cache-invalidate.c -lgfapi -o $(dirname $0)/upcall-cache-invalidate - -TEST ./$(dirname $0)/upcall-cache-invalidate $V0 $logdir/upcall-cache-invalidate.log - -cleanup_tester $(dirname $0)/upcall-cache-invalidate - -TEST $CLI volume stop $V0 -TEST $CLI volume delete $V0 - -cleanup; diff --git a/tests/basic/gfapi/upcall-cache-invalidate.t b/tests/basic/gfapi/upcall-cache-invalidate.t new file mode 100755 index 00000000000..6acbab2c51a --- /dev/null +++ b/tests/basic/gfapi/upcall-cache-invalidate.t @@ -0,0 +1,37 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +# Upcall feature is disable for now. A new xlator option +# will be introduced to turn it on. Skipping this test +# till then. + +SKIP_TESTS; +exit 0 + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +logdir=`gluster --print-logdir` + +## Enable Upcall cache-invalidation feature +TEST $CLI volume set $V0 features.cache-invalidation on; + +TEST build_tester $(dirname $0)/upcall-cache-invalidate.c -lgfapi + +TEST ./$(dirname $0)/upcall-cache-invalidate $H0 $V0 $logdir/upcall-cache-invalidate.log + +cleanup_tester $(dirname $0)/upcall-cache-invalidate + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/tests/bugs/ec/bug-1161886.c b/tests/bugs/ec/bug-1161886.c index 036f4ad1cc7..e8093e48a7a 100644 --- a/tests/bugs/ec/bug-1161886.c +++ b/tests/bugs/ec/bug-1161886.c @@ -1,7 +1,7 @@ #include -#include "glfs.h" -#include "glfs-handles.h" +#include +#include int main (int argc, char *argv[]) diff --git a/tests/bugs/ec/bug-1161886.t b/tests/bugs/ec/bug-1161886.t index 73b75619f28..e7322210a3e 100644 --- a/tests/bugs/ec/bug-1161886.t +++ b/tests/bugs/ec/bug-1161886.t @@ -34,7 +34,7 @@ TEST mv $M0/file1 $M0/file2 TEST ! stat $M0/file1 TEST stat $M0/file2 -TEST gcc -Wall -O2 -I api/src -o $(dirname $0)/bug-1161886 $(dirname $0)/bug-1161886.c -lgfapi +TEST build_tester $(dirname $0)/bug-1161886.c -lgfapi -Wall -O2 TEST $(dirname $0)/bug-1161886 $H0 $V0 /file2 EXPECT "^0$" stat -c "%s" $M0/file2 EXPECT "^Y$" check_ec_size file2 0 diff --git a/tests/bugs/gfapi/bug-1032894.t b/tests/bugs/gfapi/bug-1032894.t new file mode 100644 index 00000000000..88d110136e2 --- /dev/null +++ b/tests/bugs/gfapi/bug-1032894.t @@ -0,0 +1,33 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +#Check stale indices are deleted as part of self-heal-daemon crawl. +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} +TEST $CLI volume set $V0 cluster.self-heal-daemon off +TEST $CLI volume start $V0 +TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 +cd $M0 +TEST mkdir a +cd a +TEST kill_brick $V0 $H0 $B0/${V0}0 +# Create stale indices +for i in {1..10}; do echo abc > $i; done +for i in {1..10}; do rm -f $i; done + +TEST $CLI volume start $V0 force +EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0 +TEST $CLI volume set $V0 cluster.self-heal-daemon on +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status + +#Since maximum depth of the directory structure that needs healin is 2 +#Trigger two self-heals. That should make sure the heal is complete +TEST $CLI volume heal $V0 + +EXPECT_WITHIN $HEAL_TIMEOUT "0" afr_get_index_count $B0/${V0}1 +cleanup diff --git a/tests/bugs/gfapi/bug-1093594.c b/tests/bugs/gfapi/bug-1093594.c new file mode 100644 index 00000000000..aff271e4caf --- /dev/null +++ b/tests/bugs/gfapi/bug-1093594.c @@ -0,0 +1,317 @@ +#include +#include +#include +#include +#include +#include + +#define WRITE_SIZE (128*1024) +#define READ_WRITE_LOOP 100 +#define FOP_LOOP_COUNT 20 +#define TEST_CASE_LOOP 20 + +int gfapi = 1; +static int extension = 1; + +static int +large_number_of_fops (glfs_t *fs) { + int ret = 0; + int i = 0; + glfs_fd_t *fd = NULL; + glfs_fd_t *fd1 = NULL; + char *dir1 = NULL, *dir2 = NULL, *filename1 = NULL, *filename2 = NULL; + char *buf = NULL; + struct stat sb = {0, }; + + for (i = 0 ; i < FOP_LOOP_COUNT ; i++) { + ret = asprintf (&dir1, "dir%d", extension); + if (ret < 0) { + fprintf (stderr, "cannot construct filename (%s)", + strerror (errno)); + return ret; + } + + extension++; + + ret = glfs_mkdir (fs, dir1, 0755); + if (ret < 0) { + fprintf (stderr, "mkdir(%s): %s\n", dir1, strerror (errno)); + return -1; + } + + fd = glfs_opendir (fs, dir1); + if (!fd) { + fprintf (stderr, "/: %s\n", strerror (errno)); + return -1; + } + + ret = glfs_fsetxattr (fd, "user.dirfattr", "fsetxattr", 8, 0); + if (ret < 0) { + fprintf (stderr, "fsetxattr(%s): %d (%s)\n", dir1, ret, + strerror (errno)); + return -1; + } + + ret = glfs_closedir (fd); + if (ret < 0) { + fprintf (stderr, "glfs_closedir failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = glfs_rmdir (fs, dir1); + if (ret < 0) { + fprintf (stderr, "glfs_unlink failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = asprintf (&filename1, "file%d", extension); + if (ret < 0) { + fprintf (stderr, "cannot construct filename (%s)", + strerror (errno)); + return ret; + } + + ret = asprintf (&filename2, "file-%d", extension); + if (ret < 0) { + fprintf (stderr, "cannot construct filename (%s)", + strerror (errno)); + return ret; + } + + extension++; + + fd = glfs_creat (fs, filename1, O_RDWR, 0644); + if (!fd) { + fprintf (stderr, "%s: (%p) %s\n", filename1, fd, + strerror (errno)); + return -1; + } + + ret = glfs_rename (fs, filename1, filename2); + if (ret < 0) { + fprintf (stderr, "glfs_rename failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = glfs_lstat (fs, filename2, &sb); + if (ret < 0) { + fprintf (stderr, "glfs_lstat failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = glfs_close (fd); + if (ret < 0) { + fprintf (stderr, "glfs_close failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = glfs_unlink (fs, filename2); + if (ret < 0) { + fprintf (stderr, "glfs_unlink failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + } +} + +static int +large_read_write (glfs_t *fs) { + + int ret = 0; + int j = 0; + glfs_fd_t *fd = NULL; + glfs_fd_t *fd1 = NULL; + char *filename = NULL; + char *buf = NULL; + + ret = asprintf (&filename, "filerw%d", extension); + if (ret < 0) { + fprintf (stderr, "cannot construct filename (%s)", + strerror (errno)); + return ret; + } + + extension++; + + fd = glfs_creat (fs, filename, O_RDWR, 0644); + if (!fd) { + fprintf (stderr, "%s: (%p) %s\n", filename, fd, + strerror (errno)); + return -1; + } + + buf = (char *) malloc (WRITE_SIZE); + memset (buf, '-', WRITE_SIZE); + + for (j = 0; j < READ_WRITE_LOOP; j++) { + ret = glfs_write (fd, buf, WRITE_SIZE, 0); + if (ret < 0) { + fprintf (stderr, "Write(%s): %d (%s)\n", filename, ret, + strerror (errno)); + return ret; + } + } + + fd1 = glfs_open (fs, filename, O_RDWR); + if (fd1 < 0) { + fprintf (stderr, "Open(%s): %d (%s)\n", filename, ret, + strerror (errno)); + return -1; + } + + glfs_lseek (fd1, 0, SEEK_SET); + for (j = 0; j < READ_WRITE_LOOP; j++) { + ret = glfs_read (fd1, buf, WRITE_SIZE, 0); + if (ret < 0) { + fprintf (stderr, "Read(%s): %d (%s)\n", filename, ret, + strerror (errno)); + return ret; + } + } + + for (j = 0; j < READ_WRITE_LOOP; j++) { + ret = glfs_write (fd1, buf, WRITE_SIZE, 0); + if (ret < 0) { + fprintf (stderr, "Write(%s): %d (%s)\n", filename, ret, + strerror (errno)); + return ret; + } + } + + glfs_close (fd); + glfs_close (fd1); + ret = glfs_unlink (fs, filename); + if (ret < 0) { + fprintf (stderr, "glfs_unlink failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + free (buf); + free (filename); +} + +static int +volfile_change (const char *volname) { + int ret = 0; + char *cmd = NULL, *cmd1 = NULL; + + ret = asprintf (&cmd, "gluster volume set %s stat-prefetch off", + volname); + if (ret < 0) { + fprintf (stderr, "cannot construct cli command string (%s)", + strerror (errno)); + return ret; + } + + ret = asprintf (&cmd1, "gluster volume set %s stat-prefetch on", + volname); + if (ret < 0) { + fprintf (stderr, "cannot construct cli command string (%s)", + strerror (errno)); + return ret; + } + + ret = system (cmd); + if (ret < 0) { + fprintf (stderr, "stat-prefetch off on (%s) failed", volname); + return ret; + } + + ret = system (cmd1); + if (ret < 0) { + fprintf (stderr, "stat-prefetch on on (%s) failed", volname); + return ret; + } + + free (cmd); + free (cmd1); + return ret; +} + +int +main (int argc, char *argv[]) +{ + glfs_t *fs = NULL; + int ret = 0; + int i = 0; + glfs_fd_t *fd = NULL; + glfs_fd_t *fd1 = NULL; + char *topdir = "topdir", *filename = "file1"; + char *buf = NULL; + char *logfile = NULL; + char *hostname = NULL; + + if (argc != 4) { + fprintf (stderr, + "Expect following args %s \n" + , argv[0]); + return -1; + } + + hostname = argv[1]; + logfile = argv[3]; + + for (i = 0; i < TEST_CASE_LOOP; i++) { + fs = glfs_new (argv[2]); + if (!fs) { + fprintf (stderr, "glfs_new: returned NULL (%s)\n", + strerror (errno)); + return -1; + } + + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); + if (ret < 0) { + fprintf (stderr, "glfs_set_volfile_server failed ret:%d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = glfs_set_logging (fs, logfile, 7); + if (ret < 0) { + fprintf (stderr, "glfs_set_logging failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = glfs_init (fs); + if (ret < 0) { + fprintf (stderr, "glfs_init failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + + ret = large_number_of_fops (fs); + if (ret < 0) + return -1; + + ret = large_read_write (fs); + if (ret < 0) + return -1; + + ret = volfile_change (argv[2]); + if (ret < 0) + return -1; + + ret = large_number_of_fops (fs); + if (ret < 0) + return -1; + + ret = large_read_write (fs); + if (ret < 0) + return -1; + + ret = glfs_fini (fs); + if (ret < 0) { + fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", + ret, strerror (errno)); + return -1; + } + } + return 0; +} diff --git a/tests/bugs/gfapi/bug-1093594.t b/tests/bugs/gfapi/bug-1093594.t new file mode 100755 index 00000000000..3f7223be15e --- /dev/null +++ b/tests/bugs/gfapi/bug-1093594.t @@ -0,0 +1,20 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +## Start and create a volume +TEST glusterd; +TEST pidof glusterd; +TEST $CLI volume info; + +TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; +TEST $CLI volume start $V0; +logdir=`gluster --print-logdir` + +TEST build_tester $(dirname $0)/bug-1093594.c -lgfapi +TEST $(dirname $0)/bug-1093594 $H0 $V0 $logdir/bug-1093594.log + +cleanup_tester $(dirname $0)/bug-1093594 +cleanup; diff --git a/tests/bugs/gfapi/bug-1319374-THIS-crash.t b/tests/bugs/gfapi/bug-1319374-THIS-crash.t new file mode 100755 index 00000000000..8d3db421c88 --- /dev/null +++ b/tests/bugs/gfapi/bug-1319374-THIS-crash.t @@ -0,0 +1,27 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume info; + +TEST $CLI volume create $V0 $H0:$B0/brick1 $H0:$B0/brick2; +EXPECT 'Created' volinfo_field $V0 'Status'; + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +TEST $CLI volume set $V0 diagnostics.client-log-flush-timeout 30 + +logdir=`gluster --print-logdir` + +TEST build_tester $(dirname $0)/bug-1319374.c -lgfapi +TEST $(dirname $0)/bug-1319374 $H0 $V0 $logdir/bug-1319374.log + +cleanup_tester $(dirname $0)/bug-1319374 + +cleanup; diff --git a/tests/bugs/gfapi/bug-1319374.c b/tests/bugs/gfapi/bug-1319374.c new file mode 100644 index 00000000000..bf2da998d6e --- /dev/null +++ b/tests/bugs/gfapi/bug-1319374.c @@ -0,0 +1,130 @@ +#include +#include +#include +#include +#include + +#define NO_INIT 1 + +glfs_t * +setup_new_client(char *hostname, char *volname, char *log_file, int flag) +{ + int ret = 0; + glfs_t *fs = NULL; + + fs = glfs_new (volname); + if (!fs) { + fprintf (stderr, "\nglfs_new: returned NULL (%s)\n", + strerror (errno)); + goto error; + } + + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); + if (ret < 0) { + fprintf (stderr, "\nglfs_set_volfile_server failed ret:%d (%s)\n", + ret, strerror (errno)); + goto error; + } + + ret = glfs_set_logging (fs, log_file, 7); + if (ret < 0) { + fprintf (stderr, "\nglfs_set_logging failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + if (flag == NO_INIT) + goto out; + + ret = glfs_init (fs); + if (ret < 0) { + fprintf (stderr, "\nglfs_init failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + +out: + return fs; +error: + return NULL; +} + +int +main (int argc, char *argv[]) +{ + int ret = 0; + glfs_t *fs1 = NULL; + glfs_t *fs2 = NULL; + glfs_t *fs3 = NULL; + char *volname = NULL; + char *log_file = NULL; + char *hostname = NULL; + + if (argc != 4) { + fprintf (stderr, + "Expect following args %s \n" + , argv[0]); + return -1; + } + + hostname = argv[1]; + volname = argv[2]; + log_file = argv[3]; + + fs1 = setup_new_client (hostname, volname, log_file, NO_INIT); + if (!fs1) { + fprintf (stderr, "\nsetup_new_client: returned NULL (%s)\n", + strerror (errno)); + goto error; + } + + fs2 = setup_new_client (hostname, volname, log_file, 0); + if (!fs2) { + fprintf (stderr, "\nsetup_new_client: returned NULL (%s)\n", + strerror (errno)); + goto error; + } + + fs3 = setup_new_client (hostname, volname, log_file, 0); + if (!fs3) { + fprintf (stderr, "\nsetup_new_client: returned NULL (%s)\n", + strerror (errno)); + goto error; + } + + ret = glfs_fini (fs3); + if (ret < 0) { + fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + /* The crash is seen in gf_log_flush_timeout_cbk(), and this gets + * triggered when 30s timer expires, hence the sleep of 31s + */ + sleep (31); + ret = glfs_fini (fs2); + if (ret < 0) { + fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + ret = glfs_init (fs1); + if (ret < 0) { + fprintf (stderr, "\nglfs_init failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + ret = glfs_fini (fs1); + if (ret < 0) { + fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + return 0; +error: + return -1; +} diff --git a/tests/bugs/gfapi/glfs_vol_set_IO_ERR.c b/tests/bugs/gfapi/glfs_vol_set_IO_ERR.c new file mode 100644 index 00000000000..68011171744 --- /dev/null +++ b/tests/bugs/gfapi/glfs_vol_set_IO_ERR.c @@ -0,0 +1,165 @@ +#include +#include +#include +#include +#include +#include + +#define WRITE_SIZE (128) + +glfs_t * +setup_new_client(char *hostname, char *volname, char *log_fileile) +{ + int ret = 0; + glfs_t *fs = NULL; + + fs = glfs_new (volname); + if (!fs) { + fprintf (stderr, "\nglfs_new: returned NULL (%s)\n", + strerror (errno)); + goto error; + } + + ret = glfs_set_volfile_server (fs, "tcp", hostname, 24007); + if (ret < 0) { + fprintf (stderr, "\nglfs_set_volfile_server failed ret:%d (%s)\n", + ret, strerror (errno)); + goto error; + } + + ret = glfs_set_logging (fs, log_fileile, 7); + if (ret < 0) { + fprintf (stderr, "\nglfs_set_logging failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + ret = glfs_init (fs); + if (ret < 0) { + fprintf (stderr, "\nglfs_init failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + return fs; +error: + return NULL; +} + +int +write_something (glfs_t *fs) +{ + glfs_fd_t *fd = NULL; + char *buf = NULL; + int ret = 0; + int j = 0; + + fd = glfs_creat (fs, "filename", O_RDWR, 0644); + if (!fd) { + fprintf (stderr, "%s: (%p) %s\n", "filename", fd, + strerror (errno)); + return -1; + } + + buf = (char *) malloc (WRITE_SIZE); + memset (buf, '-', WRITE_SIZE); + + for (j = 0; j < 4; j++) { + ret = glfs_write (fd, buf, WRITE_SIZE, 0); + if (ret < 0) { + fprintf (stderr, "Write(%s): %d (%s)\n", "filename", ret, + strerror (errno)); + return ret; + } + glfs_lseek (fd, 0, SEEK_SET); + } + return 0; +} + +static int +volfile_change (const char *volname) { + int ret = 0; + char *cmd = NULL, *cmd1 = NULL; + + ret = asprintf (&cmd, "gluster volume set %s quick-read on", + volname); + if (ret < 0) { + fprintf (stderr, "cannot construct cli command string (%s)", + strerror (errno)); + return ret; + } + + ret = asprintf (&cmd1, "gluster volume set %s quick-read off", + volname); + if (ret < 0) { + fprintf (stderr, "cannot construct cli command string (%s)", + strerror (errno)); + return ret; + } + + ret = system (cmd); + if (ret < 0) { + fprintf (stderr, "quick-read off on (%s) failed", volname); + return ret; + } + + ret = system (cmd1); + if (ret < 0) { + fprintf (stderr, "quick-read on on (%s) failed", volname); + return ret; + } + + ret = system (cmd); + if (ret < 0) { + fprintf (stderr, "quick-read off on (%s) failed", volname); + return ret; + } + + free (cmd); + free (cmd1); + return ret; +} + +int +main (int argc, char *argv[]) +{ + int ret = 0; + glfs_t *fs = NULL; + char buf[100]; + glfs_fd_t *fd = NULL; + + if (argc != 4) { + fprintf (stderr, + "Expect following args %s \n" + , argv[0]); + return -1; + } + + fs = setup_new_client (argv[1], argv[2], argv[3]); + if (!fs) + goto error; + + ret = volfile_change (argv[2]); + if (ret < 0) + goto error; + + /* This is required as volfile change takes a while to reach this + * gfapi client and precess the graph change. Without this the issue + * cannot be reproduced as in cannot be tested. + */ + sleep (10); + + ret = write_something (fs); + if (ret < 0) + goto error; + + ret = glfs_fini (fs); + if (ret < 0) { + fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", + ret, strerror (errno)); + goto error; + } + + return 0; +error: + return -1; +} diff --git a/tests/bugs/gfapi/glfs_vol_set_IO_ERR.t b/tests/bugs/gfapi/glfs_vol_set_IO_ERR.t new file mode 100755 index 00000000000..5893ef273bd --- /dev/null +++ b/tests/bugs/gfapi/glfs_vol_set_IO_ERR.t @@ -0,0 +1,20 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +## Start and create a volume +TEST glusterd; +TEST pidof glusterd; +TEST $CLI volume info; + +TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; +TEST $CLI volume start $V0; +logdir=`gluster --print-logdir` + +TEST build_tester $(dirname $0)/glfs_vol_set_IO_ERR.c -lgfapi +TEST $(dirname $0)/glfs_vol_set_IO_ERR $H0 $V0 $logdir/glfs_vol_set_IO_ERR.log + +cleanup_tester $(dirname $0)/glfs_vol_set_IO_ERR +cleanup; diff --git a/tests/bugs/libgfapi/bug-1032894.t b/tests/bugs/libgfapi/bug-1032894.t deleted file mode 100644 index 88d110136e2..00000000000 --- a/tests/bugs/libgfapi/bug-1032894.t +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -#Check stale indices are deleted as part of self-heal-daemon crawl. -cleanup; - -TEST glusterd -TEST pidof glusterd -TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} -TEST $CLI volume set $V0 cluster.self-heal-daemon off -TEST $CLI volume start $V0 -TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 -cd $M0 -TEST mkdir a -cd a -TEST kill_brick $V0 $H0 $B0/${V0}0 -# Create stale indices -for i in {1..10}; do echo abc > $i; done -for i in {1..10}; do rm -f $i; done - -TEST $CLI volume start $V0 force -EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0 -TEST $CLI volume set $V0 cluster.self-heal-daemon on -EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status - -#Since maximum depth of the directory structure that needs healin is 2 -#Trigger two self-heals. That should make sure the heal is complete -TEST $CLI volume heal $V0 - -EXPECT_WITHIN $HEAL_TIMEOUT "0" afr_get_index_count $B0/${V0}1 -cleanup diff --git a/tests/bugs/libgfapi/bug-1093594.c b/tests/bugs/libgfapi/bug-1093594.c deleted file mode 100644 index 8f5aa9be66c..00000000000 --- a/tests/bugs/libgfapi/bug-1093594.c +++ /dev/null @@ -1,315 +0,0 @@ -#include "../../api/src/glfs.h" -#include "../../api/src/glfs-handles.h" -#include -#include -#include -#include - -#define WRITE_SIZE (128*1024) -#define READ_WRITE_LOOP 100 -#define FOP_LOOP_COUNT 20 -#define TEST_CASE_LOOP 20 - -int gfapi = 1; -static int extension = 1; - -static int -large_number_of_fops (glfs_t *fs) { - int ret = 0; - int i = 0; - glfs_fd_t *fd = NULL; - glfs_fd_t *fd1 = NULL; - char *dir1 = NULL, *dir2 = NULL, *filename1 = NULL, *filename2 = NULL; - char *buf = NULL; - struct stat sb = {0, }; - - for (i = 0 ; i < FOP_LOOP_COUNT ; i++) { - ret = asprintf (&dir1, "dir%d", extension); - if (ret < 0) { - fprintf (stderr, "cannot construct filename (%s)", - strerror (errno)); - return ret; - } - - extension++; - - ret = glfs_mkdir (fs, dir1, 0755); - if (ret < 0) { - fprintf (stderr, "mkdir(%s): %s\n", dir1, strerror (errno)); - return -1; - } - - fd = glfs_opendir (fs, dir1); - if (!fd) { - fprintf (stderr, "/: %s\n", strerror (errno)); - return -1; - } - - ret = glfs_fsetxattr (fd, "user.dirfattr", "fsetxattr", 8, 0); - if (ret < 0) { - fprintf (stderr, "fsetxattr(%s): %d (%s)\n", dir1, ret, - strerror (errno)); - return -1; - } - - ret = glfs_closedir (fd); - if (ret < 0) { - fprintf (stderr, "glfs_closedir failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = glfs_rmdir (fs, dir1); - if (ret < 0) { - fprintf (stderr, "glfs_unlink failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = asprintf (&filename1, "file%d", extension); - if (ret < 0) { - fprintf (stderr, "cannot construct filename (%s)", - strerror (errno)); - return ret; - } - - ret = asprintf (&filename2, "file-%d", extension); - if (ret < 0) { - fprintf (stderr, "cannot construct filename (%s)", - strerror (errno)); - return ret; - } - - extension++; - - fd = glfs_creat (fs, filename1, O_RDWR, 0644); - if (!fd) { - fprintf (stderr, "%s: (%p) %s\n", filename1, fd, - strerror (errno)); - return -1; - } - - ret = glfs_rename (fs, filename1, filename2); - if (ret < 0) { - fprintf (stderr, "glfs_rename failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = glfs_lstat (fs, filename2, &sb); - if (ret < 0) { - fprintf (stderr, "glfs_lstat failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = glfs_close (fd); - if (ret < 0) { - fprintf (stderr, "glfs_close failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = glfs_unlink (fs, filename2); - if (ret < 0) { - fprintf (stderr, "glfs_unlink failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - } -} - -static int -large_read_write (glfs_t *fs) { - - int ret = 0; - int j = 0; - glfs_fd_t *fd = NULL; - glfs_fd_t *fd1 = NULL; - char *filename = NULL; - char *buf = NULL; - - ret = asprintf (&filename, "filerw%d", extension); - if (ret < 0) { - fprintf (stderr, "cannot construct filename (%s)", - strerror (errno)); - return ret; - } - - extension++; - - fd = glfs_creat (fs, filename, O_RDWR, 0644); - if (!fd) { - fprintf (stderr, "%s: (%p) %s\n", filename, fd, - strerror (errno)); - return -1; - } - - buf = (char *) malloc (WRITE_SIZE); - memset (buf, '-', WRITE_SIZE); - - for (j = 0; j < READ_WRITE_LOOP; j++) { - ret = glfs_write (fd, buf, WRITE_SIZE, 0); - if (ret < 0) { - fprintf (stderr, "Write(%s): %d (%s)\n", filename, ret, - strerror (errno)); - return ret; - } - } - - fd1 = glfs_open (fs, filename, O_RDWR); - if (fd1 < 0) { - fprintf (stderr, "Open(%s): %d (%s)\n", filename, ret, - strerror (errno)); - return -1; - } - - glfs_lseek (fd1, 0, SEEK_SET); - for (j = 0; j < READ_WRITE_LOOP; j++) { - ret = glfs_read (fd1, buf, WRITE_SIZE, 0); - if (ret < 0) { - fprintf (stderr, "Read(%s): %d (%s)\n", filename, ret, - strerror (errno)); - return ret; - } - } - - for (j = 0; j < READ_WRITE_LOOP; j++) { - ret = glfs_write (fd1, buf, WRITE_SIZE, 0); - if (ret < 0) { - fprintf (stderr, "Write(%s): %d (%s)\n", filename, ret, - strerror (errno)); - return ret; - } - } - - glfs_close (fd); - glfs_close (fd1); - ret = glfs_unlink (fs, filename); - if (ret < 0) { - fprintf (stderr, "glfs_unlink failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - free (buf); - free (filename); -} - -static int -volfile_change (const char *volname) { - int ret = 0; - char *cmd = NULL, *cmd1 = NULL; - - ret = asprintf (&cmd, "gluster volume set %s stat-prefetch off", - volname); - if (ret < 0) { - fprintf (stderr, "cannot construct cli command string (%s)", - strerror (errno)); - return ret; - } - - ret = asprintf (&cmd1, "gluster volume set %s stat-prefetch on", - volname); - if (ret < 0) { - fprintf (stderr, "cannot construct cli command string (%s)", - strerror (errno)); - return ret; - } - - ret = system (cmd); - if (ret < 0) { - fprintf (stderr, "stat-prefetch off on (%s) failed", volname); - return ret; - } - - ret = system (cmd1); - if (ret < 0) { - fprintf (stderr, "stat-prefetch on on (%s) failed", volname); - return ret; - } - - free (cmd); - free (cmd1); - return ret; -} - -int -main (int argc, char *argv[]) -{ - glfs_t *fs = NULL; - int ret = 0; - int i = 0; - glfs_fd_t *fd = NULL; - glfs_fd_t *fd1 = NULL; - char *topdir = "topdir", *filename = "file1"; - char *buf = NULL; - char *logfile = NULL; - - if (argc != 3) { - fprintf (stderr, - "Expect following args %s \n" - , argv[0]); - return -1; - } - - logfile = argv[2]; - - for (i = 0; i < TEST_CASE_LOOP; i++) { - fs = glfs_new (argv[1]); - if (!fs) { - fprintf (stderr, "glfs_new: returned NULL (%s)\n", - strerror (errno)); - return -1; - } - - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); - if (ret < 0) { - fprintf (stderr, "glfs_set_volfile_server failed ret:%d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = glfs_set_logging (fs, logfile, 7); - if (ret < 0) { - fprintf (stderr, "glfs_set_logging failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = glfs_init (fs); - if (ret < 0) { - fprintf (stderr, "glfs_init failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - - ret = large_number_of_fops (fs); - if (ret < 0) - return -1; - - ret = large_read_write (fs); - if (ret < 0) - return -1; - - ret = volfile_change (argv[1]); - if (ret < 0) - return -1; - - ret = large_number_of_fops (fs); - if (ret < 0) - return -1; - - ret = large_read_write (fs); - if (ret < 0) - return -1; - - ret = glfs_fini (fs); - if (ret < 0) { - fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", - ret, strerror (errno)); - return -1; - } - } - return 0; -} diff --git a/tests/bugs/libgfapi/bug-1093594.sh b/tests/bugs/libgfapi/bug-1093594.sh deleted file mode 100755 index 444319b8e63..00000000000 --- a/tests/bugs/libgfapi/bug-1093594.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -## Start and create a volume -TEST glusterd; -TEST pidof glusterd; -TEST $CLI volume info; - -TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; -TEST $CLI volume start $V0; -logdir=`gluster --print-logdir` - -build_tester $(dirname $0)/bug-1093594.c -lgfapi -TEST $(dirname $0)/bug-1093594 $V0 $logdir/bug-1093594.log - -cleanup_tester $(dirname $0)/bug-1093594 -cleanup; diff --git a/tests/bugs/libgfapi/bug-1319374-THIS-crash.sh b/tests/bugs/libgfapi/bug-1319374-THIS-crash.sh deleted file mode 100755 index 9aea739377b..00000000000 --- a/tests/bugs/libgfapi/bug-1319374-THIS-crash.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -TEST glusterd -TEST pidof glusterd -TEST $CLI volume info; - -TEST $CLI volume create $V0 $H0:$B0/brick1 $H0:$B0/brick2; -EXPECT 'Created' volinfo_field $V0 'Status'; - -TEST $CLI volume start $V0; -EXPECT 'Started' volinfo_field $V0 'Status'; - -TEST $CLI volume set $V0 diagnostics.client-log-flush-timeout 30 - -logdir=`gluster --print-logdir` - -build_tester $(dirname $0)/bug-1319374.c -lgfapi -TEST $(dirname $0)/bug-1319374 $V0 $logdir/bug-1319374.log - -cleanup_tester $(dirname $0)/bug-1319374 - -cleanup; diff --git a/tests/bugs/libgfapi/bug-1319374.c b/tests/bugs/libgfapi/bug-1319374.c deleted file mode 100644 index 878d897dde6..00000000000 --- a/tests/bugs/libgfapi/bug-1319374.c +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include -#include -#include -#include - -#define NO_INIT 1 - -glfs_t * -setup_new_client(char *volname, char *log_file, int flag) -{ - int ret = 0; - glfs_t *fs = NULL; - - fs = glfs_new (volname); - if (!fs) { - fprintf (stderr, "\nglfs_new: returned NULL (%s)\n", - strerror (errno)); - goto error; - } - - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); - if (ret < 0) { - fprintf (stderr, "\nglfs_set_volfile_server failed ret:%d (%s)\n", - ret, strerror (errno)); - goto error; - } - - ret = glfs_set_logging (fs, log_file, 7); - if (ret < 0) { - fprintf (stderr, "\nglfs_set_logging failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - if (flag == NO_INIT) - goto out; - - ret = glfs_init (fs); - if (ret < 0) { - fprintf (stderr, "\nglfs_init failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - -out: - return fs; -error: - return NULL; -} - -int -main (int argc, char *argv[]) -{ - int ret = 0; - glfs_t *fs1 = NULL; - glfs_t *fs2 = NULL; - glfs_t *fs3 = NULL; - char *volname = NULL; - char *log_file = NULL; - - if (argc != 3) { - fprintf (stderr, - "Expect following args %s \n" - , argv[0]); - return -1; - } - - volname = argv[1]; - log_file = argv[2]; - - fs1 = setup_new_client (volname, log_file, NO_INIT); - if (!fs1) { - fprintf (stderr, "\nsetup_new_client: returned NULL (%s)\n", - strerror (errno)); - goto error; - } - - fs2 = setup_new_client (volname, log_file, 0); - if (!fs2) { - fprintf (stderr, "\nsetup_new_client: returned NULL (%s)\n", - strerror (errno)); - goto error; - } - - fs3 = setup_new_client (volname, log_file, 0); - if (!fs3) { - fprintf (stderr, "\nsetup_new_client: returned NULL (%s)\n", - strerror (errno)); - goto error; - } - - ret = glfs_fini (fs3); - if (ret < 0) { - fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - /* The crash is seen in gf_log_flush_timeout_cbk(), and this gets - * triggered when 30s timer expires, hence the sleep of 31s - */ - sleep (31); - ret = glfs_fini (fs2); - if (ret < 0) { - fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - ret = glfs_init (fs1); - if (ret < 0) { - fprintf (stderr, "\nglfs_init failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - ret = glfs_fini (fs1); - if (ret < 0) { - fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - return 0; -error: - return -1; -} diff --git a/tests/bugs/libgfapi/glfs_vol_set_IO_ERR.c b/tests/bugs/libgfapi/glfs_vol_set_IO_ERR.c deleted file mode 100644 index 4cf849484a6..00000000000 --- a/tests/bugs/libgfapi/glfs_vol_set_IO_ERR.c +++ /dev/null @@ -1,165 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define WRITE_SIZE (128) - -glfs_t * -setup_new_client(char *volname, char *log_fileile) -{ - int ret = 0; - glfs_t *fs = NULL; - - fs = glfs_new (volname); - if (!fs) { - fprintf (stderr, "\nglfs_new: returned NULL (%s)\n", - strerror (errno)); - goto error; - } - - ret = glfs_set_volfile_server (fs, "tcp", "localhost", 24007); - if (ret < 0) { - fprintf (stderr, "\nglfs_set_volfile_server failed ret:%d (%s)\n", - ret, strerror (errno)); - goto error; - } - - ret = glfs_set_logging (fs, log_fileile, 7); - if (ret < 0) { - fprintf (stderr, "\nglfs_set_logging failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - ret = glfs_init (fs); - if (ret < 0) { - fprintf (stderr, "\nglfs_init failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - return fs; -error: - return NULL; -} - -int -write_something (glfs_t *fs) -{ - glfs_fd_t *fd = NULL; - char *buf = NULL; - int ret = 0; - int j = 0; - - fd = glfs_creat (fs, "filename", O_RDWR, 0644); - if (!fd) { - fprintf (stderr, "%s: (%p) %s\n", "filename", fd, - strerror (errno)); - return -1; - } - - buf = (char *) malloc (WRITE_SIZE); - memset (buf, '-', WRITE_SIZE); - - for (j = 0; j < 4; j++) { - ret = glfs_write (fd, buf, WRITE_SIZE, 0); - if (ret < 0) { - fprintf (stderr, "Write(%s): %d (%s)\n", "filename", ret, - strerror (errno)); - return ret; - } - glfs_lseek (fd, 0, SEEK_SET); - } - return 0; -} - -static int -volfile_change (const char *volname) { - int ret = 0; - char *cmd = NULL, *cmd1 = NULL; - - ret = asprintf (&cmd, "gluster volume set %s quick-read on", - volname); - if (ret < 0) { - fprintf (stderr, "cannot construct cli command string (%s)", - strerror (errno)); - return ret; - } - - ret = asprintf (&cmd1, "gluster volume set %s quick-read off", - volname); - if (ret < 0) { - fprintf (stderr, "cannot construct cli command string (%s)", - strerror (errno)); - return ret; - } - - ret = system (cmd); - if (ret < 0) { - fprintf (stderr, "quick-read off on (%s) failed", volname); - return ret; - } - - ret = system (cmd1); - if (ret < 0) { - fprintf (stderr, "quick-read on on (%s) failed", volname); - return ret; - } - - ret = system (cmd); - if (ret < 0) { - fprintf (stderr, "quick-read off on (%s) failed", volname); - return ret; - } - - free (cmd); - free (cmd1); - return ret; -} - -int -main (int argc, char *argv[]) -{ - int ret = 0; - glfs_t *fs = NULL; - char buf[100]; - glfs_fd_t *fd = NULL; - - if (argc != 3) { - fprintf (stderr, - "Expect following args %s \n" - , argv[0]); - return -1; - } - - fs = setup_new_client (argv[1], argv[2]); - if (!fs) - goto error; - - ret = volfile_change (argv[1]); - if (ret < 0) - goto error; - - /* This is required as volfile change takes a while to reach this - * gfapi client and precess the graph change. Without this the issue - * cannot be reproduced as in cannot be tested. - */ - sleep (10); - - ret = write_something (fs); - if (ret < 0) - goto error; - - ret = glfs_fini (fs); - if (ret < 0) { - fprintf (stderr, "glfs_fini failed with ret: %d (%s)\n", - ret, strerror (errno)); - goto error; - } - - return 0; -error: - return -1; -} diff --git a/tests/bugs/libgfapi/glfs_vol_set_IO_ERR.sh b/tests/bugs/libgfapi/glfs_vol_set_IO_ERR.sh deleted file mode 100755 index 43cad2b15ee..00000000000 --- a/tests/bugs/libgfapi/glfs_vol_set_IO_ERR.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -. $(dirname $0)/../../include.rc -. $(dirname $0)/../../volume.rc - -cleanup; - -## Start and create a volume -TEST glusterd; -TEST pidof glusterd; -TEST $CLI volume info; - -TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; -TEST $CLI volume start $V0; -logdir=`gluster --print-logdir` - -build_tester $(dirname $0)/glfs_vol_set_IO_ERR.c -lgfapi -TEST $(dirname $0)/glfs_vol_set_IO_ERR $V0 $logdir/glfs_vol_set_IO_ERR.log - -cleanup_tester $(dirname $0)/glfs_vol_set_IO_ERR -cleanup; diff --git a/tests/bugs/shard/bug-shard-discard.c b/tests/bugs/shard/bug-shard-discard.c index d51b07f9314..645bacf7d83 100644 --- a/tests/bugs/shard/bug-shard-discard.c +++ b/tests/bugs/shard/bug-shard-discard.c @@ -1,7 +1,7 @@ #include #include -#include "glfs.h" -#include "glfs-handles.h" +#include +#include int main (int argc, char *argv[]) diff --git a/tests/bugs/shard/bug-shard-discard.t b/tests/bugs/shard/bug-shard-discard.t index 4c4e9417b5b..a7aff6dff40 100644 --- a/tests/bugs/shard/bug-shard-discard.t +++ b/tests/bugs/shard/bug-shard-discard.t @@ -28,7 +28,7 @@ EXPECT '10485760' stat -c %s $M0/foo gfid_foo=$(get_gfid_string $M0/foo) -TEST gcc -Wall -O2 -I api/src -o $(dirname $0)/bug-shard-discard $(dirname $0)/bug-shard-discard.c -lgfapi +TEST build_tester $(dirname $0)/bug-shard-discard.c -lgfapi -Wall -O2 #Call discard on the file at off=7M and len=3M TEST $(dirname $0)/bug-shard-discard $H0 $V0 /foo 7340032 3145728 `gluster --print-logdir`/glfs-$V0.log diff --git a/tests/bugs/shard/bug-shard-zerofill.c b/tests/bugs/shard/bug-shard-zerofill.c index f88c2e2fd02..838a656b3bb 100644 --- a/tests/bugs/shard/bug-shard-zerofill.c +++ b/tests/bugs/shard/bug-shard-zerofill.c @@ -1,6 +1,6 @@ #include -#include "glfs.h" -#include "glfs-handles.h" +#include +#include int main (int argc, char *argv[]) diff --git a/tests/bugs/shard/bug-shard-zerofill.t b/tests/bugs/shard/bug-shard-zerofill.t index ad508c83236..29b836df323 100644 --- a/tests/bugs/shard/bug-shard-zerofill.t +++ b/tests/bugs/shard/bug-shard-zerofill.t @@ -18,7 +18,7 @@ TEST touch $M0/foo gfid_foo=$(get_gfid_string $M0/foo) -TEST gcc -Wall -O2 -I api/src -o $(dirname $0)/bug-shard-zerofill $(dirname $0)/bug-shard-zerofill.c -lgfapi +TEST build_tester $(dirname $0)/bug-shard-zerofill.c -lgfapi -Wall -O2 TEST $(dirname $0)/bug-shard-zerofill $H0 $V0 /foo `gluster --print-logdir`/glfs-$V0.log # This should ensure /.shard is created on the bricks. diff --git a/tests/bugs/shard/shard-fallocate.c b/tests/bugs/shard/shard-fallocate.c index 5365c74ef86..e16620964c9 100644 --- a/tests/bugs/shard/shard-fallocate.c +++ b/tests/bugs/shard/shard-fallocate.c @@ -2,8 +2,8 @@ #include #include #include -#include "glfs.h" -#include "glfs-handles.h" +#include +#include enum fallocate_flag { TEST_FALLOCATE_NONE, diff --git a/tests/bugs/shard/zero-flag.t b/tests/bugs/shard/zero-flag.t index fabf83040f0..6996150cd0e 100644 --- a/tests/bugs/shard/zero-flag.t +++ b/tests/bugs/shard/zero-flag.t @@ -17,7 +17,7 @@ TEST $CLI volume set $V0 features.shard on TEST $CLI volume start $V0 TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0 -TEST gcc -Wall -O2 -I api/src -o $(dirname $0)/zero-flag $(dirname $0)/shard-fallocate.c -lgfapi +TEST build_tester $(dirname $0)/shard-fallocate.c -lgfapi -Wall -O2 # On file1 confirm that when fallocate's offset + len > cur file size, # the new file size will increase. diff --git a/tests/env.rc.in b/tests/env.rc.in index acd8f061fcd..82971c4a8de 100644 --- a/tests/env.rc.in +++ b/tests/env.rc.in @@ -1,5 +1,6 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ +libdir=@libdir@ PATH=@sbindir@:$PATH export PATH @@ -7,9 +8,18 @@ export PATH LD_LIBRARY_PATH=@libdir@:$LD_LIBRARY_PATH export LD_LIBRARY_PATH +LIBRARY_PATH=@libdir@:$LIBRARY_PATH +export LIBRARY_PATH + +CPATH=@includedir@:$CPATH +export CPATH + GLUSTERD_WORKDIR=@GLUSTERD_WORKDIR@ export GLUSTERD_WORKDIR +PKG_CONFIG_PATH=@pkgconfigdir@:$PKG_CONFIG_PATH +export PKG_CONFIG_PATH + PYTHONPATH=@BUILD_PYTHON_SITE_PACKAGES@:$PYTHON_PATH export PYTHONPATH diff --git a/tests/include.rc b/tests/include.rc index e122a0ed627..0c5d2989106 100644 --- a/tests/include.rc +++ b/tests/include.rc @@ -606,6 +606,10 @@ function build_tester () local execname="${fname%.*}" shift local cflags=$* + if [ `echo $cflags | grep -c "lgfapi" ` -gt 0 ] + then + cflags="$cflags $(pkg-config glusterfs-api --cflags-only-I --libs-only-L)" + fi $CC -g -o $(dirname $cfile)/$execname $cfile $cflags } -- cgit