Xfstesting-cifs: Difference between revisions

From SambaWiki
mNo edit summary
(update build instructions for ubuntu)
Line 7: Line 7:
<li>First clone the tree:<br />
<li>First clone the tree:<br />
git clone git://oss.sgi.com/xfs/cmds/xfstests<br />
git clone git://oss.sgi.com/xfs/cmds/xfstests<br />
and also if you do not have xfsprogs installed on your distro already you can build it yourself<br />
and also if you do not have xfsprogs headers installed on your distro already you can build it yourself<br />
git clone git://oss.sgi.com/xfs/cmds/xfsprogs
git clone git://oss.sgi.com/xfs/cmds/xfsprogs<br />
and then do make followed by:<br />
smake 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<br />
sudo yum install gcc uuid-devel libtool e2fsprogs-devel automake libuuid-devel libattr-devel libacl-devel libaio-dev (and libgdbm ...?)<br />
(on on ubuntu the following packages<br /> apt-get install gcc uuid-dev libtool e2fsprogs automake libuuid1 libuuidm-ocaml-dev libattr1-dev libacl1-dev libaio-dev libgdbm-devcd xfsprogs)<br />
cd xfsprogs<br />
make<br />
make<br />
sudo make install-qa<br />
sudo make install-qa<br />

Revision as of 19:57, 27 October 2014

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://oss.sgi.com/xfs/cmds/xfstests
    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:
    smake 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 libgdbm ...?)
    (on on ubuntu the following packages
    apt-get install gcc uuid-dev libtool e2fsprogs automake libuuid1 libuuidm-ocaml-dev libattr1-dev libacl1-dev libaio-dev libgdbm-devcd xfsprogs)
    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 Extenions (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'

    Alternatively you can test multiple different configurations one after another by using the following in local.config.
    [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'
    [samba-cifs]
    FSTYP=cifs
    TEST_DEV=//localhost/test
    TEST_DIR=/mnt/test
    TEST_FS_MOUNT_OPTIONS='-ousername=test,nounix,noperm,cifacl,mfsymlinks,actimeo=0,password=testpass' [samba-cifs-with-posix-extensions]
    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. 011 "dirstress 5 processes" (SMB3 only failure)
    2. 020 "Extended attribute support and case preserving EAs" (EA keys are not case preserving)
    3. 023 and 245 "Rename of directory onto directory" (SMB3 only failure). Wrong return code (EPERM vs. DIR_NOT_EMPTY)
    4. 075 "fsx with zero data" - (SMB3 only failure) Zero data not cleared locally, corrupt reads
    5. 081 and 127 and 263 fsx failure (SMB3 only)
    6. 123 multiuser needed?
    7. 126 and 193 fail chown (need to configure usermapping on cifs client?)
    8. 131 No advisory locks for CIFS/SMB3
    9. 184 "mknod" (SMB3 only failure since no 'sfu' mount option for SMB3 yet)
    10. 192 and 313 file mtime/ctime timestamp failure
    11. 209 "aio readahead" file corruption
    12. Various testcases, including 237, 314, shared051, also require posix acl support (which we don't emulate)
    13. Adding quota support would be required for test 270
  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): generic/192 generic/215 generic/237 generic/258 generic/313
    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)