common/rc: factor out _scratch_xfs_[get|set]_sb_field
[xfstests-dev.git] / dmapi / src / suite2 / menu_test
1 #!/bin/ksh
2 #
3 # Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 #---------------------------------------------------------------------------
6 # CONFIGURATION SECTION:  
7 #    Configure this script by changing the variables in this section.
8 #    Please change ONLY this section!
9 #---------------------------------------------------------------------------
10
11 # Base directory:
12 base_dir="/home/poplar45/kfr/dmapi/test/laguna/jaytest"
13
14 # Primary username:
15 p_user="kfr"
16
17 # Path to the mountpoint of the test filesystem:
18 m_main="/dmapi"
19
20 # m_main concatenated with d_name == the full test directory path
21 #
22 # EXAMPLE:  If m_main is "/dmitest", and the test directory
23 # is "/dmitest/test", set this to "/test"
24 #
25 d_name="/kfr/test_dir"
26
27 # Path to the mountpoint of the nfs2 test filesystem:
28 m_nfs2="/dmapi/kfr/nfs2"
29
30 # Path to the mountpoint of the nfs3 test filesystem:
31 m_nfs3="/dmapi/kfr/nfs3"
32
33 # Path to the mountpoint of the realtime test filesystem:
34 m_rt="/dmf"
35 # Path to the realtime test directory:
36 d_rt="$m_rt/kcm"
37
38 #--------------------------------------------------------------------
39 # END OF CONFIGURATION SECTION:
40 #    No changes should be made past this point!  Please change only   
41 #    the above shell variables to configure this script.
42 #--------------------------------------------------------------------
43
44 # Path to the "bindir" directory:
45 bin="$base_dir/bindir"
46
47 # Path to the "generic file" (a copy of ls): 
48 ls_path="$bin/ls_to_copy"
49
50 # Path to the main test directory:
51 d_main="$m_main$d_name"
52
53 # Path to the nfs2 test directory:
54 d_nfs2="$m_nfs2$d_name"
55
56 # Path to the nfs3 test directory:
57 d_nfs3="$m_nfs2$d_name"
58
59 PS3="> "
60 unset Vflag
61 unset Pflag
62
63 while true
64 do 
65 clear
66 print "+-------------------------+"
67 print "| DMAPI tests:  main menu |"
68 print "+-------------------------+\n"
69 select menu1 in 'DMAPI function tests, which run without a daemon' \
70                 'DMAPI event tests, which invoke and monitor a daemon' \
71                 'Basic DMAPI existence/version test' \
72                 'quit'
73 do case $menu1 in
74     'DMAPI function tests, which run without a daemon')
75     while true 
76     do
77     if [[ $Vflag = -v ]] 
78     then Vstr='turn off verbose mode'
79     else Vstr='turn on verbose mode'
80     fi
81     clear
82     print "+----------------------+"
83     print "| DMAPI function tests |"
84     print "+----------------------+\n"
85     select menu2 in  'ALL of the following function tests:' \
86                     '    get/set_dmattr' \
87                     '    get/set_eventlist' \
88                     '    get/set_fileattr, get_bulkattr, get_dirattrs' \
89                     '    probe/punch_hole' \
90                     '    read/write_invis' \
91                     '    get/set_region' \
92                     '    EFAULT errno' \
93                     '    EACCES errno and access rights' \
94                     '    get_allocinfo vs. xfs_bmap' \
95                     '    get_allocinfo with various buffer sizes' \
96                     "$Vstr" \
97                     'previous menu' \
98                     'quit'
99      do case $menu2 in
100         'ALL of the following function tests:')
101             for run_me in \
102                 "$bin/test_dmattr $Vflag $ls_path $d_main" \
103                 "$bin/test_eventlist $Vflag $ls_path $d_main" \
104                 "$bin/test_fileattr $Vflag $ls_path $d_main" \
105                 "$bin/test_hole $Vflag $ls_path $d_main" \
106                 "$bin/test_invis $Vflag $ls_path $d_main" \
107                 "$bin/test_region $Vflag $ls_path $d_main" \
108                 "$bin/test_efault $Vflag $ls_path $d_main" \
109                 "$bin/test_rights $Vflag $ls_path $d_main" \
110                 "$bin/test_allocinfo_1 $bin $d_main" \
111                 "$bin/test_allocinfo_2  $bin $d_main" 
112             do
113             eval $run_me
114             print "Press enter to continue..."; read go
115             done
116             break;;     
117         '    get/set_dmattr')
118             eval "$bin/test_dmattr $Vflag $ls_path $d_main"
119             print "Press enter to continue..."; read go
120             break;;
121         '    get/set_eventlist')
122             eval "$bin/test_eventlist $Vflag $ls_path $d_main"
123             print "Press enter to continue..."; read go
124             break;;
125         '    get/set_fileattr, get_bulkattr, get_dirattrs')
126             eval "$bin/test_fileattr $Vflag $ls_path $d_main"
127             print "Press enter to continue..."; read go
128             break;;
129         '    probe/punch_hole')
130             eval "$bin/test_hole $Vflag $ls_path $d_main"
131             print "Press enter to continue..."; read go
132             break;;
133         '    read/write_invis')
134             eval "$bin/test_invis $Vflag $ls_path $d_main"
135             print "Press enter to continue..."; read go
136             break;;
137         '    get/set_region')
138             eval "$bin/test_region $Vflag $ls_path $d_main"
139             print "Press enter to continue..."; read go
140             break;; 
141         '    EFAULT errno') 
142             eval "$bin/test_efault $Vflag $ls_path $d_main"
143             print "Press enter to continue..."; read go
144             break;;
145         '    EACCES errno and access rights')
146             eval "$bin/test_rights $Vflag $ls_path $d_main"
147             break;;
148         '    get_allocinfo vs. xfs_bmap')
149             eval "$bin/test_allocinfo_1 $bin $d_main" 
150             print "Press enter to continue..."; read go
151             break;;
152         '    get_allocinfo with various buffer sizes')
153             eval "$bin/test_allocinfo_2  $bin $d_main"
154             print "Press enter to continue..."; read go
155             break;;
156         "$Vstr")
157             if [[ $Vflag = -v ]] 
158             then unset Vflag 
159             else Vflag=-v
160             fi
161             break;;
162         'previous menu')
163             break 2;;
164         'quit')
165             exit 0;;
166         *) break;;
167        esac
168     done
169     done
170     break;;
171
172     'DMAPI event tests, which invoke and monitor a daemon' )
173     while true
174     do
175     if [[ $Pflag = -p ]] 
176     then Pstr='turn off pausing after each command'
177     else Pstr='turn on pausing after each command'
178     fi
179     clear
180     print "+--------------------------+"
181     print "| DMAPI daemon/event tests |"
182     print "+--------------------------+\n"
183     select menu2 in 'ALL of the following four:' \
184                     '    standard i/o' \
185                     '    abort responses to events, and other i/o' \
186                     '    unsuccessful commands (bad file permissions)' \
187                     '    dm_pending' \
188                     'realtime filesystem' \
189                     'small event queue' \
190                     'nfs2 tests' \
191                     'nfs3 tests' \
192                     "$Pstr" \
193                     'previous menu' \
194                     'quit'
195     do case $menu2 in
196         'ALL of the following four:')
197         for run_me in \
198             "$bin/run_test $Pflag -u $p_user -f standard.dat $bin $d_main $m_main" \
199             "$bin/run_test $Pflag -u $p_user $bin $d_main $m_main" \
200             "$bin/run_test $Pflag -u $p_user -f fail.dat $bin $d_main $m_main" \
201             "$bin/run_test $Pflag -u $p_user -f pending.dat $bin $d_main $m_main" 
202         do
203             eval $run_me
204         done
205         break;;
206         '    standard i/o')
207             eval "$bin/run_test $Pflag -u $p_user -f standard.dat $bin $d_main $m_main"
208             break;;
209         '    abort responses to events, and other i/o')
210             eval "$bin/run_test $Pflag -u $p_user $bin $d_main $m_main"
211             break;;
212         '    unsuccessful commands (bad file permissions)')
213             eval "$bin/run_test $Pflag -u $p_user -f fail.dat $bin $d_main $m_main"
214             break;;
215         '    dm_pending')
216             eval "$bin/run_test $Pflag -u $p_user -f pending.dat $bin $d_main $m_main"
217             break;;
218         'nfs2 tests')
219             while true
220             do
221             clear
222             print "+--------------------------------+"
223             print "| DMAPI daemon/event tests: nfs2 |"
224             print "+--------------------------------+\n"
225             select menu3 in 'ALL of the following four:' \
226                             '    nfs2: standard i/o' \
227                             '    nfs2: abort responses to events, and other i/o' \
228                             '    nfs2: unsuccessful commands (bad file permissions)' \
229                             '    nfs2: dm_pending' \
230                             'previous menu' \
231                             'quit'
232             do case $menu3 in
233                 'ALL of the following four:')
234                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f standard_nfs.dat $bin $d_nfs2 $m_main"
235                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f nfs.dat $bin $d_nfs2 $m_main"
236                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f fail.dat $bin $d_nfs2 $m_main"
237                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f pending_nfs.dat $bin $d_nfs2 $m_main"
238                     break;;
239                 '    nfs2: standard i/o')
240                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f standard_nfs.dat $bin $d_nfs2 $m_main"
241                     break;;
242                 '    nfs2: abort responses to events, and other i/o')
243                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f nfs.dat $bin $d_nfs2 $m_main"
244                     break;;
245                 '    nfs2: unsuccessful commands (bad file permissions)')
246                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f fail.dat $bin $d_nfs2 $m_main"
247                     break;;
248                 '    nfs2: dm_pending')
249                     eval "$bin/run_test $Pflag -u $p_user -F nfs2 -M $m_nfs2 -R $d_main -f pending_nfs.dat $bin $d_nfs2 $m_main"
250                     break;;
251                 'previous menu')
252                     break 2;;
253                 'quit')
254                     exit 0;;
255                esac
256             done
257             done
258             break;;
259         'nfs3 tests')
260             while true 
261             do
262             clear
263             print "+--------------------------------+"
264             print "| DMAPI daemon/event tests: nfs3 |"
265             print "+--------------------------------+"
266             select menu3 in 'ALL of the following four:' \
267                             '    nfs3: standard i/o' \
268                             '    nfs3: abort responses to events, and other i/o' \
269                             '    nfs3: unsuccessful commands (bad file permissions)' \
270                             '    nfs3: dm_pending' \
271                             'previous menu' \
272                             'quit'
273             do case $menu3 in
274                 'ALL of the following four:')
275                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f standard_nfs.dat $bin $d_nfs3 $m_main"
276                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f nfs.dat $bin $d_nfs3 $m_main"
277                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f fail.dat $bin $d_nfs3 $m_main"
278                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f pending_nfs.dat $bin $d_nfs3 $m_main"
279                     break;;
280                 '    nfs3: standard i/o')
281                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f standard_nfs.dat $bin $d_nfs3 $m_main"
282                     break;;
283                 '    nfs3: abort responses to events, and other i/o')
284                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f nfs.dat $bin $d_nfs3 $m_main"
285                     break;;
286                 '    nfs3: unsuccessful commands (bad file permissions)')
287                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f fail.dat $bin $d_nfs3 $m_main"
288                     break;;
289                 '    nfs3: dm_pending')
290                     eval "$bin/run_test $Pflag -u $p_user -F nfs3 -M $m_nfs3 -R $d_main -f pending_nfs.dat $bin $d_nfs3 $m_main"
291                     break;;
292                 'previous menu')
293                     break 2;;
294                 'quit')
295                     exit 0;;
296                esac
297             done
298             done
299             break;;
300         'realtime filesystem')
301             eval "$bin/run_test $Pflag -u $p_user -f realtime.dat $bin $d_rt $m_rt"
302             break;;
303         'small event queue')
304             # Set dm_max_queued to about 5 or so before running!
305             eval "$bin/run_test $Pflag -u $p_user -s 2 -f smallq.dat $bin $d_main $m_main"
306             break;;
307         "$Pstr")
308             if [[ $Pflag = -p ]] 
309             then unset Pflag
310             else Pflag=-p
311             fi
312             break;;
313         'previous menu')
314             break 2;;
315         'quit')
316             exit 0;;
317        esac
318     done
319     done
320     break;;
321     'Basic DMAPI existence/version test')
322        eval "$bin/check_dmapi $Vflag"
323        print "Press enter to continue..."; read go
324        break;;
325     quit)
326        break 2;;
327     esac
328     done
329 done