summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Replace 4.4BSD Lite's unix domain socket backpressure hack with a cleanerasomers2014-03-131-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mechanism, based on the new SB_STOP sockbuf flag. The old hack dynamically changed the sending sockbuf's high water mark whenever adding or removing data from the receiving sockbuf. It worked for stream sockets, but it never worked for SOCK_SEQPACKET sockets because of their atomic nature. If the sockbuf was partially full, it might return EMSGSIZE instead of blocking. The new solution is based on DragonFlyBSD's fix from commit 3a6117bbe0ed6a87605c1e43e12a1438d8844380 on 2008-05-27. It adds an SB_STOP flag to sockbufs. Whenever uipc_send surpasses the socket's size limit, it sets SB_STOP on the sending sockbuf. sbspace() will then return 0 for that sockbuf, causing sosend_generic and friends to block. uipc_rcvd will likewise clear SB_STOP. There are two fringe benefits: uipc_{send,rcvd} no longer need to call chgsbsize() on every send and receive because they don't change the sockbuf's high water mark. Also, uipc_sense no longer needs to acquire the UIPC linkage lock, because it's simpler to compute the st_blksizes. There is one drawback: since sbspace() will only ever return 0 or the maximum, sosend_generic will allow the sockbuf to exceed its nominal maximum size by at most one packet of size less than the max. I don't think that's a serious problem. In fact, I'm not even positive that FreeBSD guarantees a socket will always stay within its nominal size limit. sys/sys/sockbuf.h Add the SB_STOP flag and adjust sbspace() sys/sys/unpcb.h Delete the obsolete unp_cc and unp_mbcnt fields from struct unpcb. sys/kern/uipc_usrreq.c Adjust uipc_rcvd, uipc_send, and uipc_sense to use the SB_STOP backpressure mechanism. Removing obsolete unpcb fields from db_show_unpcb. tests/sys/kern/unix_seqpacket_test.c Clear expected failures from ATF. Obtained from: DragonFly BSD PR: kern/185812 Reviewed by: silence from freebsd-net@ and rwatson@ MFC after: 3 weeks Sponsored by: Spectra Logic Corporation
* kern/Makefileasomers2014-03-072-34/+31
| | | | | | | | | | | | Set WARNS=5 for all files in this directory kern/unix_seqpacket_test.c Fix compiler warnings. Most were benign, but rcvbuf_oversized wasn't working as intended because I forgot to set the buffer sizes. MFC after: 2 weeks Reported by: pho Sponsored by: Spectra Logic Corporation
* Only use -lpthread for unix_seqpacket_test, not for all test programs.asomers2014-03-061-1/+1
| | | | | | Reported by: Garrett Cooper MFC after: 3 weeks Sponsored by: Spectra Logic Corporation
* Fix PR kern/185813 "SOCK_SEQPACKET AF_UNIX sockets with asymmetricalasomers2014-03-061-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | buffers drop packets". It was caused by a check for the space available in a sockbuf, but it was checking the wrong sockbuf. sys/sys/sockbuf.h sys/kern/uipc_sockbuf.c Add sbappendaddr_nospacecheck_locked(), which is just like sbappendaddr_locked but doesn't validate the receiving socket's space. Factor out common code into sbappendaddr_locked_internal(). We shouldn't simply make sbappendaddr_locked check the space and then call sbappendaddr_nospacecheck_locked, because that would cause the O(n) function m_length to be called twice. sys/kern/uipc_usrreq.c Use sbappendaddr_nospacecheck_locked for SOCK_SEQPACKET sockets, because the receiving sockbuf's size limit is irrelevant. tests/sys/kern/unix_seqpacket_test.c Now that 185813 is fixed, pipe_128k_8k fails intermittently due to 185812. Make it fail every time by adding a usleep after starting the writer thread and before starting the reader thread in test_pipe. That gives the writer time to fill up its send buffer. Also, clear the expected failure message due to 185813. It actually said "185812", but that was a typo. PR: kern/185813 Reviewed by: silence from freebsd-net@ and rwatson@ MFC after: 3 weeks Sponsored by: Spectra Logic Corporation
* Preserve naming consistency for test cases.pho2014-03-051-3/+3
| | | | | Pointed out by: jmmv Sponsored by: EMC / Isilon storage division
* Changed name of test case to a more descriptive one and movedpho2014-03-041-10/+8
| | | | | | | comment to the "descr" property. Suggested by: jmmv Sponsored by: EMC / Isilon storage division
* Added a regression test for r234131.pho2014-02-262-1/+82
| | | | | Discussed with: asomers Sponsored by: EMC / Isilon storage division
* test_eagain_*_* should've been using nonblocking sockets instead ofasomers2014-02-171-1/+1
| | | | | | | | | | blocking sockets. The error was not exposed as long as the kernel suffered from PR kern/185812. Now corrected, these tests pass on DragonFlyBSD 3.6.0. PR: kern/185812 Sponsored by: Spectra Logic Corporation MFC after: 2 weeks
* Use DESTDIR for the installation of the /usr/tests/local symlink.jmmv2014-02-161-1/+1
| | | | MFC after: 5 days
* Install a symlink from /usr/tests/local to /usr/local/tests.jmmv2014-02-161-0/+4
| | | | | | | | | | | This is to let Kyua descend into any tests that may have been installed by ports under /usr/local/tests when running the test suite from /usr/tests. Some ports (namely those that build Kyua) already install test programs into /usr/local/tests. Just make sure to select the TEST option while building them. MFC after: 3 days
* tests/sys/Makefileasomers2014-02-081-5/+3
| | | | | | | | | | use TESTS_SUBDIRS for kern instead of SUBDIRS. I don't think it makes a difference in this case, but TESTS_SUBDIRS is generally correct for subdirectories that contain tests. Sponsored by: Spectra Logic MFC after: 5 days X-MFC-With: r261133
* Fix the Makefiles so that the tests I submitted in r261081 will actuallyasomers2014-01-242-1/+2
| | | | | | | | get built. Sponsored by: Spectra Logic MFC after: 13 days X-MFC-With: r261081
* Replace the old unix_seqpacket and unix_seqpacket_exercise tests, whichasomers2014-01-233-0/+1140
| | | | | | | | | | | were a little broken and not automatable, with unix_seqpacket_test. It's coverage is a superset of the old tests and it uses ATF. It includes test cases for bugs kern/185813 and kern/185812. PR: kern/185812 PR: kern/185813 Sponsored by: Spectra Logic MFC after: 2 weeks
* Install category Kyuafiles from their category directories.jmmv2013-11-082-9/+7
| | | | | | | | | | | | | | | | | Move the installation of /usr/tests/lib/Kyuafile from src/tests/lib/ to src/lib/. This is to keep the src/tests/ hierarchy unaware of the rest of the tree, which makes things clearer in general. In particular: 1) Everything related to the construction of /usr/tests/lib/ is kept in src/lib/. There is no need to think about different directories and how they relate to each other. (The same applies for libexec, usr.bin, etc. but these are not yet handled.) 2) src/tests becomes the place to keep cross-functional test programs and nothing else, which also helps in simplifying things. Reviewed by: freebsd-testing Approved by: rpaulo (mentor)
* Set up the /usr/tests hierarchy.rpaulo2013-10-254-0/+132
Populate /usr/tests with the only test programs that currently live in the tree (those in lib/libcrypt/tests/) and add all the build machinery to accompany this change. In particular: - Add a WITHOUT_TESTS variable that users can define to request that no tests be put in /usr/tests. - Add a top-level Kyuafile for /usr/tests and a way to create similar Kyuafiles in top-level subdirectories. - Add a BSD.tests.dist file to define the directory layout of /usr/tests. Submitted by: Julio Merino jmmv google.com Reviewed by: sjg MFC after: 2 weeks
OpenPOWER on IntegriCloud