f73299edf2774edba8e611c338f8d7cb1854db99
[openafs.git] / src / tests / README
1 AFS verification suite
2 14 Jan 2002
3
4 Prerequisites
5
6 1) A Kerberos KDC should already be configured 
7 2) An afs key should be in the KeyFile the AFS binaries will use
8    (/usr/afs/etc/KeyFile in an IBM-style installation; bos_util can be used
9     to set it up)
10 3) 2 srvtabs or keytabs with user keys, one for the user "admin"
11    and one for the user "user" that can be used for authenticated testing 
12    of the AFS installation
13 4) The necessary tools for getting an AFS token from the installed Kerberos
14    (typically aklog) should be available.
15 5) Ability to run as root on the "test" node.
16 6) If the AFS to be tested is not OpenAFS, pt_util from OpenAFS should be
17    built and installed.
18 7) Volume dump test tools included in new versions of OpenAFS.
19 8) The "test" node should have partitions mounted as /vicepa and /vicepb
20 9) perl5
21 10) wget (should be configurable to use curl; what else?)
22
23 (*) This is not yet true but will be by the time the suite is delivered.
24
25 Setup
26 1) Scripts provided bootstrap and populate a "test cell". (afs-newcell)
27
28 Tests
29
30 A) Simple tests
31 10) Create a file. (creat1)
32 20) Create a directory. (mkdir1/mkdir2)
33 30) Create a symlink. (symlink)
34 40) Create a in-same-directory hardlink. (hardlink1)
35 50) Create a hardlink to a different-directory-same-volume file. (hardlink4)
36 60) Create a hardlink to a directory. (hardlink2)
37 70) Create a cross-volume hardlink. (hardlink5)
38 80) Touch a file. (touch1)
39 90) Write a simple file. (write1)
40 100) Rewrite a file. (write3)
41 110) Rename a file. (rename1)
42
43 B) Basic functionality
44 10) Stat multiple hardlinked files. (hardlink3)
45 20) Write, truncate, rewrite a file. (write2)
46 30) Append to a file. (append1)
47 40) Rename a file over another file. (rename2)
48 50) Rename a file into a same-volume directory. (rename4)
49 60) Rename a file into another-volume directory. (rename6)
50 70) Rename an open directory. (rename-under-feet)
51 80) Create a file with a large filename. (large-filename)
52 90) Chmod a file by descriptor. (fchmod)
53 100) Utimes a file. (utime-file)
54 110) Utimes a directory. (utime-dir)
55 120) Test directory "link count" increasing/decreasing appropriately. (mkdir3)
56
57 C) Mountpoint tests
58 10) Create and remove a good mountpoint. (mkm-rmm)
59 20) Create a mountpoint to a nonexistant volume. (mountpoint)
60
61 D) ACL tests
62 10) Add a valid PTS user to an ACL. (acladduser)
63 20) Add a valid PTS group to an ACL. (acladdgroup)
64 30) Add ACL rights for a PTS user. (acladdrights)
65 40) Add negative ACL rights for a PTS user. (acladdnegrights)
66 50) Clear negative ACL rights for a PTS user. (aclclearnegrights)
67 60) Remove a valid PTS user from an ACL. (aclremoveuser)
68 70) Remove a valid PTS group from an ACL. (aclremovegroup)
69 80) Copy an ACL. (aclcopy)
70
71 E) Executable tests
72 10) Write and execute a script in a directory. (exec)
73 20) Download and build http://www.openafs.org/dl/openafs/1.2.2/openafs-1.2.2-src.tar.gz, then run something from it. (build-openafs)
74
75 F) mmap tests
76 10) Append over a mapped page. (append-over-page)
77 20) Write via mmap to a shared-mapped file. (mmap-shared-write)
78 30) Compare a file being read via mmap private and read (mmap-vs-read2)
79 40) Compare a file being read via mmap shared and read (mmap-vs-read)
80 50) Compare a file being read via read and mmap shared (read-vs-mmap2)
81 60) Compare a file being read via read and mmap private (read-vs-mmap)
82
83 G) Filesystem Semantics tests
84 10) Create a file with 8 bit characters in its name. (strange-characters)
85 20) Test pine lockfile semantics. (pine)
86 30) Create and remove a single file in parallel. (parallel1)
87 40) Create a >2gb file (write-large)
88
89 H) AFS behavior tests
90 10) Write a file in a readonly volume. (write-ro)
91 20) Create 31707 entries in a directory. (too-many-files)
92 30) Test setpag(). (setpag)
93 40) Test setgroups(). (setgroups)
94
95 I) Remote operation tests
96 10) Write a file locally and read it in a foreign cache manager. (extcopyin)
97 20) Write a file in a foreign cache manager and read it locally. (extcopyout)
98
99 K) Client abuse tests
100 10) Write a file, read, rewrite and reread a file with the same open descriptor. (read-write)
101 20) Populate and clean up a directory tree. (create-remove-files)
102 30) FSX file system stresser (fsx)
103
104 L) Fileserver tests
105
106 M) Ptserver tests
107 10) Create a user (ptscreateuser)
108 20) Create a group (ptscreategroup)
109 30) Add a user to a group (ptsadduser)
110 40) Chown a group (ptschown)
111 50) Get user membership (ptsmembersuser)
112 60) Get group membership (ptsmembersgroup)
113 70) Examine a user (ptsexamineuser)
114 80) Examine a group (ptsexaminegroup)
115 90) Remove a user from a group (ptsremove)
116 100) List groups a user owns (ptslistown)
117 100) Set maxuser (ptssetmax)
118 110) List maxuser (ptslistmax)
119 130) Set fields on a user (ptssetf)
120 140) Delete a group (ptsdeletegroup)
121 150) Delete a user (ptsdeleteuser)
122 160) pt_util exercising (?)
123
124 N) Volserver/vlserver tests
125 10) Create a volume (voscreate)
126 20) Move a volume (vosmove)
127 30) Add a replication site (vosaddsite)
128 40) Release a volume (vosrelease)
129 50) Remove a replication site (vosremsite)
130 70) Remove a volume (vosremove)
131 80) Delete a VLDB entry (vosdelentry)
132 90) Synchronize vldb to volumes (vossyncvldb)
133 100) Zap a volume (voszap)
134 110) Synchronize volumes to vldb (vossyncserv)
135 120) Lock a VLDB entry (voslock)
136 130) Unlock a VLDB entry (vosunlock)
137 140) Unlock all VLDB entries after locking one or more (vosunlockall)
138 150) Rename a volume. (vosrename)
139 160) List all volumes on a partition. (voslistvol)
140 170) List vldb (voslistvldb)
141 180) Get partition info. (vospartinfo)
142 190) List partitions (voslistpart)
143 200) Backup a volume (vosbackup)
144 210) Examine a volume (vosexamine)
145 220) Dump a volume (vosdump)
146 230) Restore a volume (vosrestore)
147 240) Verify a volume dump (?)
148
149 O) Bosserver tests
150 10) Add a bosserver host (bosaddhost)
151 20) List server hosts (bostlisthosts)
152 30) Remove a server host (bosremovehost)
153 40) Add a superuser (bosadduser)
154 50) List superusers (boslistusers)
155 60) Remove a superuser (bosremoveuser)
156 70) Install an executable shell script (bosinstall)
157 80) Execute something via the bosserver (bosexec)
158 80) Create a bos bnode (boscreate)
159 90) Delete a running bnode (bosdeleterunning)
160 100) Get a bnode status (bosstatus)
161 110) Stop a bos bnode (bosstop)
162 120) Restart a bos bnode (bosrestartstopped)
163 130) Start a bos bnode (bosstart)
164 140) Shutdown a bnode (bosshutdown)
165 150) Delete a stopped bnode (bosdelete)
166 160) Add a key (bosaddkey)
167 170) List keys (boslistkeys)
168 180) Remove a key (bosremovekey)
169 180) Salvage a volume (bossalvagevolume)
170 190) Salvage a partition (bossalvagepart)
171 200) Salvage a server (bossalvageserver)
172
173 P) Regression
174 10) Write a file larger than the cache. (fcachesize-write-file)
175 20) Read a file larger than the cache. (fcachesize-read-file)
176 30) Restore volume with a bad uniquifier in it, salvage, check. (baduniq)
177 40) Check for bad dentry caching on Linux taking advantage of last test. (?)
178
179 ---
180 Copyright information
181
182 The AFStools perl modules are:
183
184 ## Copyright (c) 1996, 2001 Carnegie Mellon University
185 ## All Rights Reserved.
186 #
187 # Permission to use, copy, modify and distribute this software and its
188 # documentation is hereby granted, provided that both the copyright
189 # notice and this permission notice appear in all copies of the
190 # software, derivative works or modified versions, and any portions
191 # thereof, and that both notices appear in supporting documentation.
192 #
193 # CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
194 # CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
195 # ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
196 #
197 # Carnegie Mellon requests users of this software to return to
198 #
199 #  Software Distribution Coordinator  or  Software_Distribution@CS.CMU.EDU
200 #  School of Computer Science
201 #  Carnegie Mellon University
202 #  Pittsburgh PA 15213-3890
203 #
204 # any improvements or extensions that they make and grant Carnegie Mellon
205 # the rights to redistribute these changes.
206
207 Some tests as noted are:
208 /*
209  * Copyright (c) 2001 Kungliga Tekniska Högskolan
210  * (Royal Institute of Technology, Stockholm, Sweden).
211  * All rights reserved.
212  * 
213  * Redistribution and use in source and binary forms, with or without
214  * modification, are permitted provided that the following conditions
215  * are met:
216  * 
217  * 1. Redistributions of source code must retain the above copyright
218  *    notice, this list of conditions and the following disclaimer.
219  * 
220  * 2. Redistributions in binary form must reproduce the above copyright
221  *    notice, this list of conditions and the following disclaimer in the
222  *    documentation and/or other materials provided with the distribution.
223  * 
224  * 3. Neither the name of the Institute nor the names of its contributors
225  *    may be used to endorse or promote products derived from this software
226  *    without specific prior written permission.
227  * 
228  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
229  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
230  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
231  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
232  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
233  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
234  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
235  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
236  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
237  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
238  * SUCH DAMAGE.
239  */