Whamcloud - gitweb
LU-1285 tests: fix tar breakage in 102d/102f/102j
[fs/lustre-release.git] / lustre / tests / replay-single-lmv.sh
1 #!/bin/bash
2
3 set -e
4 #set -v
5
6 #
7 # This test needs to be run on the client
8 #
9
10 LUSTRE=${LUSTRE:-`dirname $0`/..}
11 . $LUSTRE/tests/test-framework.sh
12 init_test_env $@
13 . ${CONFIG:=$LUSTRE/tests/cfg/lmv.sh}
14
15
16 # Skip these tests
17 ALWAYS_EXCEPT=""
18 build_test_filter
19
20 SETUP=${SETUP:-"setup"}
21 CLEANUP=${CLEANUP:-"stopall"}
22
23 if [ "$ONLY" == "cleanup" ]; then
24     lctl set_param debug=0 || true
25     $CLEANUP
26     exit 0
27 fi
28
29 setup() {
30     formatall
31     setupall
32 }
33
34 $SETUP
35
36 if [ "$ONLY" == "setup" ]; then
37     exit 0
38 fi
39
40 mkdir -p $DIR
41
42 # LU-482 Avert LVM and VM inability to flush caches in pre .33 kernels
43 if [ $LINUX_VERSION_CODE -lt $(kernel_version 2 6 33) ]; then
44     sync; sleep 5; sync; sleep 5; sync; sleep 5
45 fi
46
47 test_0() {
48     replay_barrier mds1
49     fail mds1
50 }
51 run_test 0 "empty replay"
52
53 test_0b() {
54     # this test attempts to trigger a race in the precreation code, 
55     # and must run before any other objects are created on the filesystem
56     fail ost1
57     createmany -o $DIR/$tfile 20 || return 1
58     unlinkmany $DIR/$tfile 20 || return 2
59 }
60 run_test 0b "ensure object created after recover exists. (3284)"
61
62 test_1a() {
63     mkdir $DIR/dir01
64     replay_barrier mds2
65     $CHECKSTAT -t dir $DIR/dir01 || return 1
66     rmdir $DIR/dir01
67     fail mds2
68     stat $DIR/dir01
69 }
70 run_test 1a "unlink cross-node dir (fail mds with inode)"
71
72 test_1b() {
73     mkdir $DIR/dir11
74     replay_barrier mds1
75     $CHECKSTAT -t dir $DIR/dir11 || return 1
76     rmdir $DIR/dir11
77     fail mds1
78     stat $DIR/dir11
79 }
80 run_test 1b "unlink cross-node dir (fail mds with name)"
81
82 test_2a() {
83     mkdir $DIR/dir21
84     createmany -o $DIR/dir21/f 3000
85     sleep 10
86     $CHECKSTAT -t dir $DIR/dir21 || return 1
87     $CHECKSTAT -t file $DIR/dir21/f1002 || return 1
88     replay_barrier mds1
89     rm $DIR/dir21/f1002
90     fail mds1
91     stat $DIR/dir21/f1002
92 }
93 run_test 2a "unlink cross-node file (fail mds with name)"
94
95 test_3a() {
96     replay_barrier mds2
97     mkdir $DIR/dir3a1
98     $LCTL mark "FAILOVER mds2"
99     fail mds2
100     stat $DIR
101     $CHECKSTAT -t dir $DIR/dir3a1 || return 1
102 }
103 run_test 3a "mkdir cross-node dir (fail mds with inode)"
104
105 test_3b() {
106     replay_barrier mds1
107     mkdir $DIR/dir3b1
108     $LCTL mark "FAILOVER mds1"
109     fail mds1
110     stat $DIR
111     $CHECKSTAT -t dir $DIR/dir3b1 || return 1
112 }
113 run_test 3b "mkdir cross-node dir (fail mds with inode)"
114
115 equals_msg test complete, cleaning up
116 $CLEANUP
117