Difference between revisions of "Xfstesting-cifs"

Line 12: Line 12:
 
   sudo make install-qa
 
   sudo make install-qa
 
<li>Build the source<br />
 
<li>Build the source<br />
sudo yum install gcc uuid-devel libtool e2fsprogs-devel automake libuuid-devel libattr-devel libacl-devel libaio-dev (and libgdbm ...?)<br />
+
sudo yum install gcc uuid-devel libtool e2fsprogs-devel automake libuuid-devel libattr-devel libacl-devel libaio-dev (and gdbm-devel ...?)<br />
 
(on on ubuntu the following packages<br /> apt-get install gcc xfslibs-dev uuid-dev libtool e2fsprogs automake libuuid1 libuuidm-ocaml-dev attr libattr1-dev libacl1-dev libaio-dev  gawk xfsprogs libgdbm-dev quota fio dbench)<br />
 
(on on ubuntu the following packages<br /> apt-get install gcc xfslibs-dev uuid-dev libtool e2fsprogs automake libuuid1 libuuidm-ocaml-dev attr libattr1-dev libacl1-dev libaio-dev  gawk xfsprogs libgdbm-dev quota fio dbench)<br />
 
make<br />
 
make<br />

Revision as of 00:01, 21 February 2018

Please update if you see corrections ...


[Setting up the tests]
The xfstest suite has been updated to make it easier to test cifs (and smb3).

  1. First clone the tree:
    git clone git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git
    and also if you do not have xfsprogs headers installed on your distro already you can build it yourself
    git clone git://oss.sgi.com/xfs/cmds/xfsprogs
    and then do make followed by:
    sudo make install-qa
  2. Build the source
    sudo yum install gcc uuid-devel libtool e2fsprogs-devel automake libuuid-devel libattr-devel libacl-devel libaio-dev (and gdbm-devel ...?)
    (on on ubuntu the following packages
    apt-get install gcc xfslibs-dev uuid-dev libtool e2fsprogs automake libuuid1 libuuidm-ocaml-dev attr libattr1-dev libacl1-dev libaio-dev gawk xfsprogs libgdbm-dev quota fio dbench)
    make
    sudo make install-qa
    cd ../xfstests
    ./configure
    make
  3. Add the secondary test userid (fsgqa) if it does not already exist, and add the user to the server you wish to mount to (in our example we used user "test" with password "testpasswd" but you can specify any that you want on the mount. Make sure that you create the share on the test server and change the "your-server" and "your-share" to the appropriate UNC name for your test export.
    sudo useradd fsgqa
  4. Edit the local.config file in the xfstests directory
    This simple example (local.config with only four lines) is for mount with smb3. Tu run with cifs you could remove vers=3.0. To turn off CIFS Unix Extensions (to Samba server)add mount option "nounix"
    FSTYP=cifs
    TEST_DEV=//your-server/your-share
    TEST_DIR=/mnt/test
    CIFS_MOUNT_OPTIONS='-ousername=test,password=testpasswd,noperm,vers=3.0,mfsymlinks,actimeo=0'
    TEST_FS_MOUNT_OPTIONS='-ousername=test,noperm,vers=3.0,mfsymlinks,sfu,actimeo=0,password=testpasswd'
    export SCRATCH_DEV=//your-server/another-share
    export SCRATCH_MNT=/mnt/test2

    Alternatively you can test multiple different configurations one after another by using the following in local.config (NB:don't use dashes in section titles).
    [smb3]
    FSTYP=cifs
    TEST_DEV=//192.168.93.147/public
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,noperm,vers=3.0,mfsymlinks,actimeo=0,password=testpass'
    [smb2]
    FSTYP=cifs
    TEST_DEV=//192.168.93.147/public
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,noperm,vers=2.0,mfsymlinks,actimeo=0,password=testpass'
    [smb2.1]
    FSTYP=cifs
    TEST_DEV=//192.168.93.147/public
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,noperm,vers=2.1,mfsymlinks,actimeo=0,password=testpass'
    [cifs]
    FSTYP=cifs
    TEST_DEV=//192.168.93.147/public
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,noperm,cifacl,mfsymlinks,actimeo=0,password=testpass'
    [sambacifs]
    FSTYP=cifs
    TEST_DEV=//localhost/test
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,nounix,noperm,cifacl,mfsymlinks,actimeo=0,password=testpass' [sambacifswithposixextensions]
    FSTYP=cifs
    TEST_DEV=//localhost/test
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,actimeo=0,password=testpass'
  5. Make sure you have at least 40GB disk space free on your test target
  6. Run the tests
    ./check -cifs
    or run specific test cases
    ./check -cifs generic/011 generic/184 generic/192 generic/023 generic/245 generic/075 generic/263 generic/123


[Current Test Results]

  1. failing test cases
    1. cifs/001 (cifs only failure, since this copy offload feature requires SMB2/SMB3)
    2. 011 "dirstress 5 processes" (SMB3 only failure)
    3. 020 "Extended attribute support and case preserving EAs" (EA keys are not case preserving)
    4. 023 and 245 "Rename of directory onto directory" (SMB3 only failure). Wrong return code (EPERM vs. DIR_NOT_EMPTY)
    5. 035 stale file handle
    6. 075 "fsx with zero data" - (SMB3 only failure) Zero data not cleared locally, corrupt reads
    7. 081 and 127 and 263 fsx failure (SMB3 only)
    8. 087 and 088 ownership bugs
    9. 089 "can't open lock file t_mtab" (CIFS only)
    10. 105 "chown: changing ownership of subdir: permission denied" (CIFS only until SMB3 adds ACL support)
    11. 120
    12. 123 "Permission denied" (SMB only)
    13. 126 and 193 fail chown (need to configure usermapping on cifs client?)
    14. 131 No advisory locks for CIFS/SMB3
    15. 184 "mknod" (SMB3 only failure since no 'sfu' mount option for SMB3 yet)
    16. 192 (SMB3 only) and 313 file mtime/ctime timestamp failure
    17. 209 "aio readahead" file corruption (SMB3 only)
    18. Various testcases, including 237, 314, shared051, also require posix acl support (which we don't emulate)
    19. 258 "Testing for negative seconds since the epoch" fails to Samba works to Windows (not client problem - Samba server bug)
    20. Adding quota support would be required for test 270
    21. Other cifs failures: tests 294, 306, 313, 314, 317, 318, 319
  2. Test detail by server type and protocol
    1. To current Windows (SMB3 or later): generic/011 generic/023 generic/075 generic/088 generic/089 generic/091 generic/126 generic/127 generic/184 generic/192 generic/245 generic/263 generic/313
    2. To current Windows (using CIFS dialect instead of SMB3):
    3. To current Samba (CIFS with POSIX extensions). Detailed data on which tests run and which fail: Ran: cifs/001 generic/001 generic/002 generic/005 generic/006 generic/007 generic/010 generic/011 generic/013 generic/014 generic/023 generic/024 generic/028 generic/029 generic/030 generic/035 generic/036 generic/053 generic/067 generic/069 generic/074 generic/075 generic/080 generic/084 generic/087 generic/088 generic/089 generic/091 generic/095 generic/098 generic/100 generic/105 generic/109 generic/112 generic/113 generic/120 generic/123 generic/124 generic/125 generic/126 generic/127 generic/128 generic/129 generic/130 generic/131 generic/132 generic/133 generic/135 generic/141 generic/169 generic/184 generic/192 generic/193 generic/198 generic/207 generic/208 generic/209 generic/210 generic/211 generic/212 generic/215 generic/221 generic/236 generic/237 generic/239 generic/241 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/285 generic/286 generic/294 generic/306 generic/307 generic/308 generic/309 generic/310 generic/313 generic/314 generic/317 generic/318 generic/319 generic/323 Not run: generic/003 generic/004 generic/008 generic/009 generic/012 generic/015 generic/016 generic/017 generic/018 generic/019 generic/020 generic/021 generic/022 generic/025 generic/026 generic/027 generic/031 generic/032 generic/033 generic/034 generic/037 generic/038 generic/039 generic/040 generic/041 generic/042 generic/043 generic/044 generic/045 generic/046 generic/047 generic/048 generic/049 generic/050 generic/051 generic/052 generic/054 generic/055 generic/056 generic/057 generic/058 generic/059 generic/060 generic/061 generic/062 generic/063 generic/064 generic/065 generic/066 generic/068 generic/070 generic/071 generic/072 generic/073 generic/076 generic/077 generic/078 generic/079 generic/081 generic/082 generic/083 generic/085 generic/086 generic/090 generic/092 generic/093 generic/094 generic/096 generic/097 generic/099 generic/101 generic/102 generic/103 generic/104 generic/106 generic/107 generic/108 generic/110 generic/111 generic/114 generic/115 generic/116 generic/117 generic/118 generic/119 generic/121 generic/122 generic/134 generic/136 generic/137 generic/138 generic/139 generic/140 generic/142 generic/143 generic/144 generic/145 generic/146 generic/147 generic/148 generic/149 generic/150 generic/151 generic/152 generic/153 generic/154 generic/155 generic/156 generic/157 generic/158 generic/159 generic/160 generic/161 generic/162 generic/163 generic/164 generic/165 generic/166 generic/167 generic/168 generic/170 generic/171 generic/172 generic/173 generic/174 generic/175 generic/176 generic/177 generic/178 generic/179 generic/180 generic/181 generic/182 generic/183 generic/185 generic/186 generic/187 generic/188 generic/189 generic/190 generic/191 generic/194 generic/195 generic/196 generic/197 generic/199 generic/200 generic/201 generic/202 generic/203 generic/204 generic/205 generic/206 generic/213 generic/214 generic/216 generic/217 generic/218 generic/219 generic/220 generic/222 generic/223 generic/224 generic/225 generic/226 generic/227 generic/228 generic/229 generic/230 generic/231 generic/232 generic/233 generic/234 generic/235 generic/238 generic/240 generic/242 generic/243 generic/244 generic/250 generic/251 generic/252 generic/253 generic/254 generic/255 generic/256 generic/259 generic/260 generic/261 generic/262 generic/264 generic/265 generic/266 generic/267 generic/268 generic/269 generic/270 generic/271 generic/272 generic/273 generic/274 generic/275 generic/276 generic/277 generic/278 generic/279 generic/280 generic/281 generic/282 generic/283 generic/284 generic/287 generic/288 generic/289 generic/290 generic/291 generic/292 generic/293 generic/295 generic/296 generic/297 generic/298 generic/299 generic/300 generic/301 generic/302 generic/303 generic/304 generic/305 generic/311 generic/312 generic/315 generic/316 generic/320 generic/321 generic/322 generic/324 generic/325 generic/326 generic/327 generic/328 generic/329 generic/330 generic/331 generic/332 generic/333 generic/334 generic/335 generic/336 generic/337 shared/001 shared/002 shared/003 shared/006 shared/032 shared/051 shared/272 shared/289 shared/298 Failures: cifs/001 generic/035 generic/087 generic/088 generic/089 generic/105 generic/120 generic/126 generic/184 generic/193 generic/237 generic/258 generic/294 generic/306 generic/313 generic/314 generic/317 generic/318 generic/319 Failed 19 of 88 tests
    4. To current Samba (CIFS, POSIX extensions disabled). Detailed data on which tests run and which fail. Running as nonroot user on mount
      Ran: generic/001 generic/002 generic/005 generic/006 generic/007 generic/011 generic/013 generic/014 generic/020 generic/023 generic/024 generic/028 generic/070 generic/074 generic/075 generic/088 generic/089 generic/091 generic/112 generic/113 generic/123 generic/125 generic/126 generic/127 generic/133 generic/184 generic/192 generic/193 generic/198 generic/207 generic/208 generic/209 generic/210 generic/211 generic/212 generic/215 generic/221 generic/236 generic/239 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/285 generic/286 generic/308 generic/309 generic/310 generic/313 generic/314 generic/323 generic/324 generic/325 shared/006 shared/032 shared/051 shared/272 shared/289 shared/298
      Not run: generic/003 generic/004 generic/008 generic/009 generic/010 generic/012 generic/015 generic/016 generic/017 generic/018 generic/019 generic/021 generic/022 generic/025 generic/026 generic/027 generic/053 generic/062 generic/068 generic/069 generic/076 generic/077 generic/079 generic/083 generic/093 generic/097 generic/099 generic/100 generic/105 generic/117 generic/120 generic/124 generic/128 generic/129 generic/130 generic/131 generic/132 generic/135 generic/141 generic/169 generic/204 generic/213 generic/214 generic/219 generic/223 generic/224 generic/225 generic/226 generic/228 generic/230 generic/231 generic/232 generic/233 generic/234 generic/235 generic/237 generic/240 generic/241 generic/251 generic/255 generic/256 generic/260 generic/269 generic/270 generic/273 generic/274 generic/275 generic/277 generic/280 generic/288 generic/294 generic/299 generic/300 generic/306 generic/307 generic/311 generic/312 generic/315 generic/316 generic/317 generic/318 generic/319 generic/320 generic/321 generic/322
      Failures: generic/088 generic/089 generic/123 generic/126 generic/184 generic/192 generic/193 generic/209 generic/215 generic/236 generic/258 generic/285 generic/286 generic/308 generic/309 generic/310 generic/313 generic/314 generic/323 generic/324 generic/325 shared/006 shared/032 shared/051 shared/272 shared/289 shared/298 Failed 27 of 63 tests
  3. test cases that need new cifs features to run
    Various testcases, including 237, 314, shared051 would require posix acl support (which we don't emulate). Adding quota support would be required for test 270. Adding "cifsacl" mount option for SMB3 would presumably be required to pass the permissions test cases.
  4. test cases that need xfstest itself to be updated to run over cifs/smb3
    Includes any with SCRATCH_DEV requirement (patches to xfstest exist to get these to run over a network file system)