diff options
Diffstat (limited to 'xlators/features/locks/tests/unit-test.c')
| -rw-r--r-- | xlators/features/locks/tests/unit-test.c | 118 |
1 files changed, 60 insertions, 58 deletions
diff --git a/xlators/features/locks/tests/unit-test.c b/xlators/features/locks/tests/unit-test.c index fc69ce8a9bd..d285b12b5aa 100644 --- a/xlators/features/locks/tests/unit-test.c +++ b/xlators/features/locks/tests/unit-test.c @@ -1,75 +1,77 @@ /* - Copyright (c) 2006-2009 Gluster, Inc. <http://www.gluster.com> - This file is part of GlusterFS. + Copyright (c) 2006-2012 Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. - GlusterFS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3 of the License, - or (at your option) any later version. - - GlusterFS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see - <http://www.gnu.org/licenses/>. + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. */ - -#ifndef _CONFIG_H -#define _CONFIG_H -#include "config.h" -#endif - -#include "glusterfs.h" -#include "compat.h" -#include "xlator.h" -#include "inode.h" -#include "logging.h" -#include "common-utils.h" -#include "list.h" +#include <glusterfs/glusterfs.h> +#include <glusterfs/compat.h> +#include <glusterfs/xlator.h> +#include <glusterfs/logging.h> +#include <glusterfs/common-utils.h> +#include <glusterfs/list.h> #include "locks.h" #include "common.h" -#define expect(cond) if (!(cond)) { goto out; } +#define expect(cond) \ + if (!(cond)) { \ + goto out; \ + } -extern int lock_name (pl_inode_t *, const char *, entrylk_type); -extern int unlock_name (pl_inode_t *, const char *, entrylk_type); +extern int +lock_name(pl_inode_t *, const char *, entrylk_type); +extern int +unlock_name(pl_inode_t *, const char *, entrylk_type); -int main (int argc, char **argv) +int +main(int argc, char **argv) { - int ret = 1; - int r = -1; + int ret = 1; + int r = -1; + + pl_inode_t *pinode = CALLOC(sizeof(pl_inode_t), 1); + pthread_mutex_init(&pinode->dir_lock_mutex, NULL); + INIT_LIST_HEAD(&pinode->gf_dir_locks); - pl_inode_t *pinode = CALLOC (sizeof (pl_inode_t), 1); - pthread_mutex_init (&pinode->dir_lock_mutex, NULL); - INIT_LIST_HEAD (&pinode->gf_dir_locks); + r = lock_name(pinode, NULL, ENTRYLK_WRLCK); + expect(r == 0); + { + r = lock_name(pinode, "foo", ENTRYLK_WRLCK); + expect(r == -EAGAIN); + } + r = unlock_name(pinode, NULL, ENTRYLK_WRLCK); + expect(r == 0); - r = lock_name (pinode, NULL, ENTRYLK_WRLCK); expect (r == 0); - { - r = lock_name (pinode, "foo", ENTRYLK_WRLCK); expect (r == -EAGAIN); - } - r = unlock_name (pinode, NULL, ENTRYLK_WRLCK); expect (r == 0); + r = lock_name(pinode, "foo", ENTRYLK_RDLCK); + expect(r == 0); + { + r = lock_name(pinode, "foo", ENTRYLK_RDLCK); + expect(r == 0); + { + r = lock_name(pinode, "foo", ENTRYLK_WRLCK); + expect(r == -EAGAIN); + } + r = unlock_name(pinode, "foo", ENTRYLK_RDLCK); + expect(r == 0); + } + r = unlock_name(pinode, "foo", ENTRYLK_RDLCK); + expect(r == 0); - r = lock_name (pinode, "foo", ENTRYLK_RDLCK); expect (r == 0); - { - r = lock_name (pinode, "foo", ENTRYLK_RDLCK); expect (r == 0); - { - r = lock_name (pinode, "foo", ENTRYLK_WRLCK); expect (r == -EAGAIN); - } - r = unlock_name (pinode, "foo", ENTRYLK_RDLCK); expect (r == 0); - } - r = unlock_name (pinode, "foo", ENTRYLK_RDLCK); expect (r == 0); - - r = lock_name (pinode, "foo", ENTRYLK_WRLCK); expect (r == 0); - r = unlock_name (pinode, "foo", ENTRYLK_WRLCK); expect (r == 0); + r = lock_name(pinode, "foo", ENTRYLK_WRLCK); + expect(r == 0); + r = unlock_name(pinode, "foo", ENTRYLK_WRLCK); + expect(r == 0); - r = lock_name (pinode, "baz", ENTRYLK_WRLCK); expect (r == 0); - r = lock_name (pinode, "baz", ENTRYLK_RDLCK); expect (r == -EAGAIN); + r = lock_name(pinode, "baz", ENTRYLK_WRLCK); + expect(r == 0); + r = lock_name(pinode, "baz", ENTRYLK_RDLCK); + expect(r == -EAGAIN); - ret = 0; + ret = 0; out: - return ret; + return ret; } |
