mirror of
https://github.com/gluster/glusterfs.git
synced 2026-02-05 15:48:40 +01:00
api/glfsxmp.c: minor fixes
* add more fops: f{get,set,list,remove}xattr(), access(), fstat(), fsetattr(),
getxattr(), lgetxattr(), llistxattr(), lsetxattr(), fgetxattr()
* handle some error cases (like volume not found)
Updates: #655
Change-Id: I3334bdf3090eafd83a54e1be12036ea01b181089
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
This commit is contained in:
committed by
Amar Tumballi
parent
5d88111a14
commit
1587a6730e
@@ -6,6 +6,8 @@
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#define TEST_STR_LEN 2048
|
||||
|
||||
int
|
||||
test_dirops(glfs_t *fs)
|
||||
{
|
||||
@@ -32,6 +34,8 @@ int
|
||||
test_xattr(glfs_t *fs)
|
||||
{
|
||||
char *filename = "/filename2";
|
||||
char *linkfile = "/linkfile";
|
||||
glfs_fd_t *fd = NULL;
|
||||
char buf[512];
|
||||
char *ptr;
|
||||
int ret;
|
||||
@@ -42,16 +46,79 @@ test_xattr(glfs_t *fs)
|
||||
ret = glfs_setxattr(fs, filename, "user.testkey2", "testval", 8, 0);
|
||||
fprintf(stderr, "setxattr(%s): %d (%s)\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_getxattr(fs, filename, "user.testkey", buf, 512);
|
||||
fprintf(stderr, "getxattr(%s): %d (%s)\n", filename, ret, strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
ret = glfs_listxattr(fs, filename, buf, 512);
|
||||
fprintf(stderr, "listxattr(%s): %d (%s)\n", filename, ret, strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
ret = glfs_symlink(fs, "filename", linkfile);
|
||||
fprintf(stderr, "symlink(%s %s): %s\n", filename, linkfile,
|
||||
strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
ret = glfs_readlink(fs, linkfile, buf, 512);
|
||||
fprintf(stderr, "readlink(%s) : %d (%s)\n", filename, ret, strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
ret = glfs_lsetxattr(fs, filename, "user.testkey3", "testval", 8, 0);
|
||||
fprintf(stderr, "lsetxattr(%s) : %d (%s)\n", linkfile, ret,
|
||||
strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
ret = glfs_llistxattr(fs, linkfile, buf, 512);
|
||||
fprintf(stderr, "llistxattr(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
ret = glfs_lgetxattr(fs, filename, "user.testkey3", buf, 512);
|
||||
fprintf(stderr, "lgetxattr(%s): %d (%s)\n", linkfile, ret, strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
for (ptr = buf; ptr < buf + ret; ptr++) {
|
||||
printf("key=%s\n", ptr);
|
||||
ptr += strlen(ptr);
|
||||
}
|
||||
|
||||
ret = glfs_removexattr(fs, filename, "user.testkey2");
|
||||
fprintf(stderr, "removexattr(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
|
||||
fd = glfs_open(fs, filename, O_RDWR);
|
||||
fprintf(stderr, "open(%s): (%p) %s\n", filename, fd, strerror(errno));
|
||||
|
||||
ret = glfs_fsetxattr(fd, "user.testkey2", "testval", 8, 0);
|
||||
fprintf(stderr, "fsetxattr(%s): %d (%s)\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_fgetxattr(fd, "user.testkey2", buf, 512);
|
||||
fprintf(stderr, "fgetxattr(%s): %d (%s)\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_flistxattr(fd, buf, 512);
|
||||
fprintf(stderr, "flistxattr(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
|
||||
for (ptr = buf; ptr < buf + ret; ptr++) {
|
||||
printf("key=%s\n", ptr);
|
||||
ptr += strlen(ptr);
|
||||
}
|
||||
|
||||
ret = glfs_fremovexattr(fd, "user.testkey2");
|
||||
fprintf(stderr, "fremovexattr(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
|
||||
glfs_close(fd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -59,22 +126,28 @@ int
|
||||
test_chdir(glfs_t *fs)
|
||||
{
|
||||
int ret = -1;
|
||||
char *dir = "/dir";
|
||||
char *topdir = "/topdir";
|
||||
char *linkdir = "/linkdir";
|
||||
char *linkdir2 = "/linkdir2";
|
||||
char *subdir = "./subdir";
|
||||
char *respath = NULL;
|
||||
char pathbuf[4096];
|
||||
|
||||
ret = glfs_mkdir(fs, topdir, 0755);
|
||||
if (ret) {
|
||||
fprintf(stderr, "mkdir(%s): %s\n", topdir, strerror(errno));
|
||||
fprintf(stderr, "mkdir(%s): %s\n", topdir, strerror(errno));
|
||||
if (ret)
|
||||
return -1;
|
||||
|
||||
ret = glfs_mkdir(fs, dir, 0755);
|
||||
fprintf(stderr, "mkdir(%s): %s\n", dir, strerror(errno));
|
||||
if (ret)
|
||||
return -1;
|
||||
}
|
||||
|
||||
respath = glfs_getcwd(fs, pathbuf, 4096);
|
||||
fprintf(stdout, "getcwd() = %s\n", respath);
|
||||
|
||||
ret = glfs_symlink(fs, topdir, linkdir);
|
||||
ret = glfs_symlink(fs, "topdir", linkdir);
|
||||
if (ret) {
|
||||
fprintf(stderr, "symlink(%s, %s): %s\n", topdir, linkdir,
|
||||
strerror(errno));
|
||||
@@ -234,7 +307,7 @@ test_h_unlink(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
dir = glfs_h_mkdir(fs, parent, my_dir, 0644, &sb);
|
||||
dir = glfs_h_mkdir(fs, parent, my_dir, 0755, &sb);
|
||||
if (dir == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_dir, parent, strerror(errno));
|
||||
@@ -250,7 +323,7 @@ test_h_unlink(void)
|
||||
goto out;
|
||||
}
|
||||
|
||||
subdir = glfs_h_mkdir(fs, dir, my_subdir, 0644, &sb);
|
||||
subdir = glfs_h_mkdir(fs, dir, my_subdir, 0755, &sb);
|
||||
if (subdir == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_subdir, dir, strerror(errno));
|
||||
@@ -374,7 +447,7 @@ test_h_getsetattrs(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
dir = glfs_h_mkdir(fs, parent, my_dir, 0644, &sb);
|
||||
dir = glfs_h_mkdir(fs, parent, my_dir, 0755, &sb);
|
||||
if (dir == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_dir, parent, strerror(errno));
|
||||
@@ -472,7 +545,7 @@ test_h_truncate(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
parent = glfs_h_mkdir(fs, root, my_dir, 0644, &sb);
|
||||
parent = glfs_h_mkdir(fs, root, my_dir, 0755, &sb);
|
||||
if (parent == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_dir, root, strerror(errno));
|
||||
@@ -611,7 +684,7 @@ test_h_links(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
parent = glfs_h_mkdir(fs, root, my_dir, 0644, &sb);
|
||||
parent = glfs_h_mkdir(fs, root, my_dir, 0755, &sb);
|
||||
if (parent == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_dir, root, strerror(errno));
|
||||
@@ -629,7 +702,7 @@ test_h_links(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
dirsrc = glfs_h_mkdir(fs, parent, linksrc_dir, 0644, &sb);
|
||||
dirsrc = glfs_h_mkdir(fs, parent, linksrc_dir, 0755, &sb);
|
||||
if (dirsrc == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
linksrc_dir, parent, strerror(errno));
|
||||
@@ -638,7 +711,7 @@ test_h_links(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
dirtgt = glfs_h_mkdir(fs, parent, linktgt_dir, 0644, &sb);
|
||||
dirtgt = glfs_h_mkdir(fs, parent, linktgt_dir, 0755, &sb);
|
||||
if (dirtgt == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
linktgt_dir, parent, strerror(errno));
|
||||
@@ -758,7 +831,7 @@ test_h_rename(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
parent = glfs_h_mkdir(fs, root, my_dir, 0644, &sb);
|
||||
parent = glfs_h_mkdir(fs, root, my_dir, 0755, &sb);
|
||||
if (parent == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_dir, root, strerror(errno));
|
||||
@@ -776,7 +849,7 @@ test_h_rename(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
dirsrc = glfs_h_mkdir(fs, parent, src_dir, 0644, &sb);
|
||||
dirsrc = glfs_h_mkdir(fs, parent, src_dir, 0755, &sb);
|
||||
if (dirsrc == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
src_dir, parent, strerror(errno));
|
||||
@@ -785,7 +858,7 @@ test_h_rename(void)
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
dirtgt = glfs_h_mkdir(fs, parent, tgt_dir, 0644, &sb);
|
||||
dirtgt = glfs_h_mkdir(fs, parent, tgt_dir, 0755, &sb);
|
||||
if (dirtgt == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
tgt_dir, parent, strerror(errno));
|
||||
@@ -932,7 +1005,7 @@ test_h_performance(void)
|
||||
goto out;
|
||||
}
|
||||
|
||||
dir = glfs_h_mkdir(fs, parent, my_dir, 0644, &sb);
|
||||
dir = glfs_h_mkdir(fs, parent, my_dir, 0755, &sb);
|
||||
if (dir == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error creating %s: from (%p),%s\n",
|
||||
my_dir, parent, strerror(errno));
|
||||
@@ -1007,7 +1080,7 @@ test_h_performance(void)
|
||||
c_ts.tv_nsec = o_ts.tv_nsec = 0;
|
||||
|
||||
sprintf(my_file_name, "%s1", full_dir_path);
|
||||
ret = glfs_mkdir(fs, my_file_name, 0644);
|
||||
ret = glfs_mkdir(fs, my_file_name, 0755);
|
||||
if (ret != 0) {
|
||||
fprintf(stderr, "glfs_mkdir: error creating %s: from (%p),%s\n", my_dir,
|
||||
parent, strerror(errno));
|
||||
@@ -1097,7 +1170,7 @@ test_handleops(int argc, char *argv[])
|
||||
char *full_newnod_name = "/testdir/nod1", *newnod_name = "nod1";
|
||||
|
||||
/* Initialize test area */
|
||||
ret = glfs_mkdir(fs, full_parent_name, 0644);
|
||||
ret = glfs_mkdir(fs, full_parent_name, 0755);
|
||||
if (ret != 0 && errno != EEXIST) {
|
||||
fprintf(stderr, "%s: (%p) %s\n", full_parent_name, fd, strerror(errno));
|
||||
printf("Test initialization failed on volume %s\n", argv[1]);
|
||||
@@ -1398,7 +1471,7 @@ test_handleops(int argc, char *argv[])
|
||||
}
|
||||
peek_stat(&sb);
|
||||
|
||||
leaf = glfs_h_mkdir(fs, parent, newparent_name, 0644, &sb);
|
||||
leaf = glfs_h_mkdir(fs, parent, newparent_name, 0755, &sb);
|
||||
if (leaf == NULL) {
|
||||
fprintf(stderr, "glfs_h_mkdir: error on mkdir of %s: from (%p),%s\n",
|
||||
newparent_name, parent, strerror(errno));
|
||||
@@ -1410,7 +1483,7 @@ test_handleops(int argc, char *argv[])
|
||||
glfs_h_close(leaf);
|
||||
leaf = NULL;
|
||||
|
||||
leaf = glfs_h_mkdir(fs, parent, newparent_name, 0644, &sb);
|
||||
leaf = glfs_h_mkdir(fs, parent, newparent_name, 0755, &sb);
|
||||
if (leaf != NULL || errno != EEXIST) {
|
||||
fprintf(stderr,
|
||||
"glfs_h_mkdir: existing directory, leaf = (%p), errno = %s\n",
|
||||
@@ -1521,6 +1594,135 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
test_write_apis(glfs_t *fs)
|
||||
{
|
||||
/* Add more content here */
|
||||
/* Some apis we can get are */
|
||||
/*
|
||||
0. glfs_set_xlator_option()
|
||||
|
||||
Read/Write combinations:
|
||||
. glfs_{p,}readv/{p,}writev
|
||||
. glfs_pread/pwrite
|
||||
|
||||
tests/basic/gfapi/gfapi-async-calls-test.c
|
||||
. glfs_read_async/write_async
|
||||
. glfs_pread_async/pwrite_async
|
||||
. glfs_readv_async/writev_async
|
||||
. glfs_preadv_async/pwritev_async
|
||||
|
||||
. ftruncate/ftruncate_async
|
||||
. fsync/fsync_async
|
||||
. fdatasync/fdatasync_async
|
||||
|
||||
*/
|
||||
|
||||
glfs_fd_t *fd = NULL;
|
||||
char *filename = "/filename2";
|
||||
int flags = O_RDWR;
|
||||
char *buf = "some bytes!";
|
||||
char writestr[TEST_STR_LEN];
|
||||
struct iovec iov = {&writestr, TEST_STR_LEN};
|
||||
int ret, i;
|
||||
|
||||
for (i = 0; i < TEST_STR_LEN; i++)
|
||||
writestr[i] = 0x11;
|
||||
|
||||
fd = glfs_open(fs, filename, flags);
|
||||
if (!fd)
|
||||
fprintf(stderr, "open(%s): (%p) %s\n", filename, fd, strerror(errno));
|
||||
|
||||
ret = glfs_writev(fd, &iov, 1, flags);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "writev(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
}
|
||||
|
||||
ret = glfs_pwrite(fd, buf, 10, 4, flags, NULL, NULL);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "pwrite(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
}
|
||||
|
||||
ret = glfs_pwritev(fd, &iov, 1, 4, flags);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "pwritev(%s): %d (%s)\n", filename, ret,
|
||||
strerror(errno));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
test_metadata_ops(glfs_t *fs, glfs_t *fs2)
|
||||
{
|
||||
glfs_fd_t *fd = NULL;
|
||||
glfs_fd_t *fd2 = NULL;
|
||||
struct stat sb = {
|
||||
0,
|
||||
};
|
||||
struct glfs_stat gsb = {
|
||||
0,
|
||||
};
|
||||
struct statvfs sfs;
|
||||
char readbuf[32];
|
||||
char writebuf[32];
|
||||
|
||||
char *filename = "/filename2";
|
||||
int ret;
|
||||
|
||||
ret = glfs_lstat(fs, filename, &sb);
|
||||
fprintf(stderr, "lstat(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
fd = glfs_creat(fs, filename, O_RDWR, 0644);
|
||||
fprintf(stderr, "creat(%s): (%p) %s\n", filename, fd, strerror(errno));
|
||||
|
||||
fd2 = glfs_open(fs2, filename, O_RDWR);
|
||||
fprintf(stderr, "open(%s): (%p) %s\n", filename, fd, strerror(errno));
|
||||
|
||||
glfs_lseek(fd2, 0, SEEK_SET);
|
||||
|
||||
ret = glfs_read(fd2, readbuf, 32, 0);
|
||||
|
||||
printf("read %d, %s", ret, readbuf);
|
||||
|
||||
/* get stat */
|
||||
ret = glfs_fstat(fd2, &sb);
|
||||
|
||||
ret = glfs_access(fs, filename, R_OK);
|
||||
|
||||
/* set stat */
|
||||
/* TODO: got some errors, need to fix */
|
||||
/* ret = glfs_fsetattr(fd2, &gsb); */
|
||||
|
||||
glfs_close(fd);
|
||||
glfs_close(fd2);
|
||||
|
||||
filename = "/filename3";
|
||||
ret = glfs_mknod(fs, filename, S_IFIFO, 0);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_lstat(fs, filename, &sb);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_rename(fs, filename, "/filename4");
|
||||
fprintf(stderr, "rename(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_unlink(fs, "/filename4");
|
||||
fprintf(stderr, "unlink(%s): (%d) %s\n", "/filename4", ret,
|
||||
strerror(errno));
|
||||
|
||||
filename = "/dirname2";
|
||||
ret = glfs_mkdir(fs, filename, 0);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_lstat(fs, filename, &sb);
|
||||
fprintf(stderr, "lstat(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_rmdir(fs, filename);
|
||||
fprintf(stderr, "rmdir(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
}
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
@@ -1531,6 +1733,10 @@ main(int argc, char *argv[])
|
||||
struct stat sb = {
|
||||
0,
|
||||
};
|
||||
struct glfs_stat gsb = {
|
||||
0,
|
||||
};
|
||||
struct statvfs sfs;
|
||||
char readbuf[32];
|
||||
char writebuf[32];
|
||||
|
||||
@@ -1559,6 +1765,9 @@ main(int argc, char *argv[])
|
||||
|
||||
fprintf(stderr, "glfs_init: returned %d\n", ret);
|
||||
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
sleep(2);
|
||||
|
||||
fs2 = glfs_new(argv[1]);
|
||||
@@ -1577,50 +1786,7 @@ main(int argc, char *argv[])
|
||||
|
||||
fprintf(stderr, "glfs_init: returned %d\n", ret);
|
||||
|
||||
ret = glfs_lstat(fs, filename, &sb);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
fd = glfs_creat(fs, filename, O_RDWR, 0644);
|
||||
fprintf(stderr, "%s: (%p) %s\n", filename, fd, strerror(errno));
|
||||
|
||||
fd2 = glfs_open(fs2, filename, O_RDWR);
|
||||
fprintf(stderr, "%s: (%p) %s\n", filename, fd, strerror(errno));
|
||||
|
||||
sprintf(writebuf, "hi there\n");
|
||||
ret = glfs_write(fd, writebuf, 32, 0);
|
||||
|
||||
glfs_lseek(fd2, 0, SEEK_SET);
|
||||
|
||||
ret = glfs_read(fd2, readbuf, 32, 0);
|
||||
|
||||
printf("read %d, %s", ret, readbuf);
|
||||
|
||||
glfs_close(fd);
|
||||
glfs_close(fd2);
|
||||
|
||||
filename = "/filename3";
|
||||
ret = glfs_mknod(fs, filename, S_IFIFO, 0);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_lstat(fs, filename, &sb);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_rename(fs, filename, "/filename4");
|
||||
fprintf(stderr, "rename(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_unlink(fs, "/filename4");
|
||||
fprintf(stderr, "unlink(%s): (%d) %s\n", "/filename4", ret,
|
||||
strerror(errno));
|
||||
|
||||
filename = "/dirname2";
|
||||
ret = glfs_mkdir(fs, filename, 0);
|
||||
fprintf(stderr, "%s: (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_lstat(fs, filename, &sb);
|
||||
fprintf(stderr, "lstat(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
|
||||
ret = glfs_rmdir(fs, filename);
|
||||
fprintf(stderr, "rmdir(%s): (%d) %s\n", filename, ret, strerror(errno));
|
||||
test_metadata_ops(fs, fs2);
|
||||
|
||||
test_dirops(fs);
|
||||
|
||||
@@ -1631,8 +1797,15 @@ main(int argc, char *argv[])
|
||||
test_handleops(argc, argv);
|
||||
// done
|
||||
|
||||
/* Test some extra apis */
|
||||
test_write_apis(fs);
|
||||
|
||||
glfs_statvfs(fs, "/", &sfs);
|
||||
|
||||
glfs_fini(fs);
|
||||
glfs_fini(fs2);
|
||||
|
||||
ret = 0;
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
30
tests/basic/gfapi/glfsxmp.t
Normal file
30
tests/basic/gfapi/glfsxmp.t
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
. $(dirname $0)/../../include.rc
|
||||
. $(dirname $0)/../../volume.rc
|
||||
|
||||
cleanup
|
||||
|
||||
TEST glusterd
|
||||
|
||||
TEST $CLI volume create $V0 replica 3 $H0:$B0/brick{0,1,2}
|
||||
EXPECT 'Created' volinfo_field $V0 'Status'
|
||||
|
||||
TEST $CLI volume start $V0
|
||||
EXPECT 'Started' volinfo_field $V0 'Status'
|
||||
|
||||
# It is good to copy the file locally and build it, so the scope remains
|
||||
# inside tests directory.
|
||||
TEST cp $(dirname ${0})/../../../api/examples/glfsxmp.c glfsxmp.c
|
||||
TEST build_tester ./glfsxmp.c -lgfapi
|
||||
|
||||
TEST ./glfsxmp $V0 $H0
|
||||
|
||||
cleanup_tester ./glfsxmp
|
||||
|
||||
TEST rm ./glfsxmp.c
|
||||
|
||||
TEST $CLI volume stop $V0
|
||||
TEST $CLI volume delete $V0
|
||||
|
||||
cleanup
|
||||
Reference in New Issue
Block a user