Not sure if I opened this in the right category, so feel free to move it to a different one if need be... We currently aren't doing any regression testing of CIFS between RHEL updates. I'm opening this BZ to track adding such a set of tests to RHTS.
Here's what I think we need to have: A server running SAMBA with a writeable share. We'll need to do 2 complete test runs against this server, once with "normal" settings and once with "unix extensions = no" in the global options. For each run I think we'll want to run the connectathon test suite. The connectathon tests *all* seem to pass when unix extensions are enabled, but some fail when unix extensions are disabled. For now, I'm identifying those tests and am planning to patch the cthon04 tarball so they can be excluded from testing w/o unix extensions. We'll probably also want to consider running something like fsstress and/or fsx to do more stress-testing of the client, but I'd like to start with just the connectathon tests.
Created attachment 154465 [details] patch -- add -C option to "server" script to skip non-CIFS friendly tests First pass at a patch for cthon04. This adds a -C flag to the "server" script that makes it skip the tests that I've ID'ed as not working correctly with CIFS w/o unix extensions. The hardlink tests also don't seem to work correctly. If you patch the cthon04 tarball, set up tests.init with the correct stuff for CIFS, and then run: $ ./server -C -h <servername> ...then the testsuite passes. As a side note, I'm planning to open new BZ's for the tests that we're excluding and see if we can fix the client upstream such that they pass.
Created attachment 154469 [details] patch -- add -C option to "server" script to skip non-CIFS friendly tests Updated patch. With this, no "-h" option is required. The only tests we're skipping are: special/nfsidem lock/test10 lock/test11 All the other tests that get run on a normal run seem to pass.
Created attachment 154470 [details] tests.init file for cifs testing This file should be used in place of the stock tests.init file. It configures the tarball for Linux and changes the mount commands and options for CIFS testing. It may take some modification depending on how the samba server is configured...
Created attachment 154919 [details] basic smb.conf file This is the smb.conf file I've been using for testing. It may need a little modification (pathname particularly and maybe workgroup) but you shouldn't need to change much. You'll need to flip unix extensions to no and yes depending on which CIFS mode you want to test. Aside from this, you'll also probably want to create an unprivileged user on the box: # useradd testuser ...and then you'll need to set up a smbpasswd for it: # printf "testuser\ntestuser\n" | smbpasswd -a -s testuser You'll also need to mount using options with the user. With this, I have a fstab entry that looks something like this: //server.foo.redhat.com/testuser /mnt/cifs cifs user=testuser,password=testuser,domain=EXAMPLE,rw,noauto 0 0 ...let me know if you need other info.
This test has been completed and tested on all arches. It is kernel/storage/cifs and is invoked with the multi-stable-workflow script. It runs once, client to server, with unix extentions and then reverses the client and server and tests without unix extensions.