Specifically when a directory tree is removed (rm -rf) while a brick is down, both the directory index and the name indices of the files and subdirs under it will remain. Self-heal will need to pick up these and remove them. Towards this, afr sh will now also crawl indices/entry-changes and call an rmdir on the dir if the directory index is stale. On the brick side, rmdir fop has been implemented for index xl, which would delete the directory index and its contents if present in a synctask. Change-Id: I8b527331c2547e6c141db6c57c14055ad1198a7e BUG: 1331323 Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com> Reviewed-on: http://review.gluster.org/14832 Reviewed-by: Ravishankar N <ravishankar@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Regression tests framework for GlusterFS
Prereq
- Build and install the version of glusterfs with your changes. Make sure the installed version is accessible from $PATH.
Prereq for geo-rep regression tests.
- Passwordless ssh on the test system to itself
- arequal-checksum installed on the test-system. You can find the repo here - https://github.com/raghavendrabhat/arequal
How-To
- To mount glusterfs, NEVER use 'mount -t glusterfs', instead use 'glusterfs -s ' method. This is because with the patch build setup doesnot install the /sbin/mount.glusterfs necessary, where as the glusterfs binary will be accessible with $PATH, and will pick the right version.
- (optional) Set environment variables to specify location of export directories and mount points. Unless you have special requirements, the defaults should just work. The variables themselves can be found at the top of tests/include.rc. All of them can be overriden with environment variables.
Usage
-
Execute
/usr/share/glusterfs/run-tests.sh
as root. -
If you want to run individual tests located in
/usr/share/glusterfs/tests
as opposed to the full test-suite, invoke it as/usr/share/glusterfs/run-tests.sh [pattern]*
, where pattern can be:- the trailing parts of the full path of a test,
e.g.
tests/basic/mount.t
- the name of a file or directory, e.g
self-heal.t
orbasic/
- bug number, which will match against numbered bugs in the
tests/bugs/
directory. - a glob pattern (see
man 7 glob
for mor info on globs)
- the trailing parts of the full path of a test,
e.g.
-
To execute single ".t" file, use "prove -vf /path/to/.t"
-
If some test cases fail, report to GlusterFS community at
gluster-devel@gluster.org
.
Reminder
- BE WARNED THAT THE TEST CASES DELETE
GLUSTERD_WORKDIR
* !!!