65 Commits

Author SHA1 Message Date
emaste
250448df7d Zero the whole struct not just the size of a pointer.
Found by: clang
2012-11-19 22:56:51 +00:00
emaste
a2abcf1a7a Use '%zd' format specifier for ssize_t
Found by: clang
2012-11-19 22:53:57 +00:00
emaste
2125cd9a35 Use '%zd' printf format for ssize_t. 2012-11-19 22:46:17 +00:00
eadler
3f7a414911 remove duplicate semicolons where possible.
Approved by:	cperciva
MFC after:	1 week
2012-10-22 03:00:37 +00:00
bz
df4d2c12bb Add regression tests for the setsockopt(2) SO_SETFIB socket option.
Check that the expected domain(9) families all handle the socket option
correctly and do proper bounds checks.  This would catch bugs as fixed
in (r230938,)r230981.

Sponsored by:	Cisco Systems, Inc.
2012-02-17 03:25:26 +00:00
jhb
3242b7bd5b - Add a test for PR 151758.
- While here, make this compile and work on non-i386:
  - Use CMSG_SPACE(), CMSG_LEN(), and CMSG_FIRSTHDR() instead of ignoring
    padding between 'struct cmsghdr' and control message payloads.
  - Don't initialize the control message before calling recvmsg().
    Instead, check that we get a valid control message on return from
    recvmsg().
- Use errx() instead of err() for some errors that don't report failures
  that set errno.

Requested by:	kib (1)
2011-12-09 19:24:17 +00:00
pjd
4bcdb20a60 Allow to specify path to a file we want to test with sendfile(2).
This allows to specify selected file system and not only /tmp/.
2010-12-11 16:06:52 +00:00
kib
38cca03fdd Extend the unix gc regression test to cover the case of r216150.
Requested and reviewed by:	rwatson
MFC after:	1 week
2010-12-03 16:17:53 +00:00
rwatson
b7cd561c87 Correct several nits/problems in the unix_close_race regression test.
Submitted by:	Mikolaj Golub <to.my.trociny at gmail.com>
MFC after:	3 days
2010-05-27 15:28:55 +00:00
rwatson
f991908654 Add unix_close_race, a regresion test to catch ENOTCONN being returned
improperly from one of two instances of close(2) being called
simultaneously on both ends of a connected UNIX domain socket.  The test
tool is slightly tweaked to improve failure modes, and while often does
trigger the problem, doesn't do so consistently due to the nature of the
race.

PR:		kern/144061
Submitted by:	Mikolaj Golub <to.my.trociny@gmail.com>
MFC after:	3 days
2010-05-26 10:46:03 +00:00
uqs
f8d1dd7a4e Always assign WARNS using ?=
- fix some nearby style bugs
- include Makefile.inc where it makes sense and reduces duplication

Approved by:	ed (co-mentor)
2010-03-02 16:58:04 +00:00
ru
4af3a7a23f Fixed missing or broken library dependencies. 2010-02-25 14:42:26 +00:00
brucec
096b34304e Update the sendfile regression test so that it outputs results in the
TAP format.
Add a checksum to verify that the data hasn't been corrupted between
being read from disk and being received.

Approved by:	rrs (mentor)
2010-02-24 23:00:16 +00:00
rwatson
2e607454d5 A few regression tests for SOCK_SEQPACKET UNIX domain sockets.
Sponsored by:	Google
2009-10-05 15:27:01 +00:00
jhb
4ba7964427 - Remove a bogus test: setsockopt() doesn't return a length, getsockopt()
does.
- Use %z to printf a size_t to fix compile on 64-bit platforms.
2009-09-23 14:23:09 +00:00
rwatson
ea13322a87 In UNIX domain socket GC regression test, after setting a socket
non-blocking, EINPROGRESS is an acceptable result from connect().
2009-03-08 21:06:02 +00:00
rwatson
870d67a11e Add very simple regression test for fstat(2) on sockets: make sure it
returns success for various socket types.  It's easy to imagine this
being enhanced to validate the returned data, but...
2008-10-06 19:42:03 +00:00
maxim
2473c0ee1e o Correct a comment: a test file size is a four pages not three. 2008-09-10 09:32:25 +00:00
rwatson
5b1d998fc1 Add unix_sorflush, a regression test for the following scenario:
- Process (a) is blocked in read on a socket waiting on data.
 - Process (b) is blocked in shutdown() on a socket waiting on (a).
 - Process (c) delivers a signal to (b) interrupting its wait.

When the signal is delivered, the kernel panics as sblock() fails in
sorflush().  Even if it didn't panic, shutdown() would block potentially
indefinitely waiting for recv() to succeeded.  Fixes to follow.

Reported by:	Jos Backus <jos at catnook dot com>
2008-01-30 13:23:34 +00:00
rwatson
b0c77eb809 Add regression tests for UNIX domain socket garbage collection. Should be
run from single-user mode, as they look at global open file and inflight
descriptor counts to check for leaks.
2007-12-31 16:45:27 +00:00
rwatson
7b2a47f768 Add a regression test to detect if waiting on the I/O serialization lock
on socket buffers is interruptible or not, which detacts the regression I
introduced recently in 7-CURRENT (spotted by alfred).  This test passes
in older -CURRENT, and with the as-yet uncommitted sx_xlock_sig and
sblock fix patches.
2007-05-06 14:28:49 +00:00
pjd
b388ff90ba Test sending 0 bytes. 2007-04-20 19:01:42 +00:00
pjd
c6bba81ef0 Fix length calculation. 2007-04-20 19:00:43 +00:00
des
0119e5166b Valid error codes for err() and errx() are 1..255.
The correct format specifier for ssize_t is %zd.
2007-04-19 07:59:30 +00:00
pjd
f52c36ec46 Add more tests to verify last sendfile(2) breakage: test sending more
than a page size and nbytes=0.
2007-04-19 06:01:08 +00:00
jhb
b9a3a5afc7 Fix a fd leak in socketpair():
- Close the new file objects created during socketpair() if the copyout of
  the new file descriptors fails.
- Add a test to the socketpair regression test for this edge case.
2007-04-02 19:15:47 +00:00
jhb
6880657bf3 Add another fd leak test for accept() I used to test the fix in 1.234 of
sys/kern/uipc_syscall.c.
2007-04-02 16:02:50 +00:00
rwatson
f96ba0731c Ignore EINPROGRESS error on TCP connect(), and pick up the result of the
non-blocking connect later using select().  This case didn't trigger on
my UP test box, but did on Peter's SMP test box.

Spotted by:	peter
2007-01-12 22:17:31 +00:00
rwatson
24fdffb45d Add a regression test for sending and writing zero bytes to sockets of
various types, as well as pipes and fifos for good measure.  RELENG_6
currently passes all of these tests, but 7-CURRENT fails 0-byte writes
and sends on all stream socket types (and fifos, as they are based on
stream sockets).

Bumped into by:	peter
Diagnosed by:	jhb
Problem of:	andre
2007-01-12 21:49:36 +00:00
bms
1a77168e4f Drop all received data mbufs from a socket's queue if the MT_SONAME
mbuf is dropped, to preserve the invariant in the PR_ADDR case.

Add a regression test to detect this condition, but do not hook it
up to the build for now.

PR:             kern/38495
Submitted by:   James Juran
Reviewed by:    sam, rwatson
Obtained from:  NetBSD
MFC after:      2 weeks
2006-12-23 21:07:07 +00:00
rwatson
4bfbd5c778 Add a short regression test to try to exercise races in the non-atomic
nature of implied connect via sendto().  Oddly, uipc_usrreq.c implements
this for stream sockets, but doesn't set the flag in its protocol
definition so that it can actually be used.  As such, the stream test is
implemented but doesn't run for now.
2006-11-15 12:43:45 +00:00
maxim
cb40ca01c8 o style.Makefile(5): WARNS= -> WARNS?=. 2006-07-09 11:51:14 +00:00
maxim
cc936f1acc o Let getopt(3) report errors in command line arguments.
o If something is wrong with options, then output short usage help message.
o Output errstr returned from strtonum(3).

PR:		bin/98141
Submitted by:	Andrey Simonenko
2006-05-31 08:10:34 +00:00
maxim
60db351ac4 o Add a collection of regression tests for ancillary (control)
data passing for unix domain sockets, stream and datagram.

There are 15 tests:

Test/Type of socket					STREAM	DGRAM
----------------------------------------------------------------------
Sending, receiving cmsgcred				   1      6
Receiving sockcred (listening socket has LOCAL_CREDS)	   2      n/a
Receiving sockcred (accepted socket has LOCAL_CREDS)	   3      n/a
Receiving sockcred					   n/a    7
Sending cmsgcred, receiving sockcred			   4      8
Sending, receiving timestamp				   5      9
Sending, receiving cmsgcred (no control data)		   10     13
Sending cmsgcred, receiving sockcred (no control data)	   11     14
Sending, receiving timestamp (no control data)		   12     15

Currently we pass 8 tests.  All the rest marked as TODO.

PR:		kern/90800
Submitted by:	Andrey Simonenko
2006-05-29 18:40:55 +00:00
rwatson
9d6028812e Use WARNS and rely on rules rather than an explicit target for the
test binary.

Reported by:	maxim
2006-05-25 10:46:43 +00:00
rwatson
967a0b7020 Add a basic regression test for sendfile() over TCP, which sends varying
lengths of headers and data and makes sure it receives about the right
number of bytes.
2006-05-25 09:50:14 +00:00
rwatson
82e28c7b98 Add a simple regression test that creates and tears down route sockets,
and confirms that only SOCK_RAW works with socket(), and nothing works
with socketpair().
2006-04-09 14:48:38 +00:00
rwatson
22f4fba426 Add simple regression tests that creates UNIX domain sockets using
socket() and socketpair() of SOCK_STREAM and SOCK_DGRAM types.  It
also confirms that SOCK_RAW fails.
2006-04-09 14:30:11 +00:00
ru
30cc3ea988 Style: NO_MAN doesn't need any value. 2006-03-15 10:46:38 +00:00
rwatson
c87b604005 Add unix_passfd, a simple set of regression tests for UNIX domain socket
file descriptor passing.  These tests are not all currently passed.
2005-11-09 21:41:20 +00:00
rwatson
585452751e Add a regression test for listen()'s backlog argument, both at time of
creation and at time of update using an additional call to listen().
This test also exercises SO_LISTENQLIMIT, a forthcoming socket option
that allows the retrieval (but not setting) of the queue limit.

Discussed with:	andre
2005-09-18 13:42:19 +00:00
maxim
a2d0692652 Remove checks for shutdown(2) on non-connected socket. 2005-09-15 13:20:39 +00:00
maxim
6732fe0718 o Add shutdown(2) regression tests. At the moment we cannot pass
shutdown-on-non connected socket test, kern/84761.
2005-09-12 14:12:09 +00:00
maxim
e5e29d142d o setsockopt(2) cannot remove accept filter. [1]
o getsockopt(SO_ACCEPTFILTER) always returns success on listen socket
  even we didn't install accept filter on the socket.
o Fix these bugs and add regression tests for them.

Submitted by:	Igor Sysoev [1]
Reviewed by:	alfred
MFC after:	2 weeks
2005-06-11 11:59:48 +00:00
rwatson
b7aef0ed3c Close the connect socket as well as the listen socket on completion.
Update copyright.
2005-05-16 00:53:38 +00:00
rwatson
1fbc0d2e52 Check the return value of shutdown(). 2005-03-11 13:05:18 +00:00
rwatson
832b048264 Add sigpipe, a simple UNIX domain socket and TCP regression test that is
intended to verify that SIGPIPE is delivered to a process writing or
sending on a socket that has been shut down for write.  If available,
SO_NOSIGPIPE is also tested.

This regression test is currently passed by RELENG_4, but not by HEAD or
RELENG_5, due to a bug in the write() code for sockets.  SO_NOSIGPIPE is not
present in RELENG_4, however, so is not tested there.

Reported by:	Mikko Tyolajarvi <mbsd at pacbell dot net>
PR:		78478
2005-03-11 12:47:14 +00:00
rwatson
357323f47c Add a simple regression test for stream UNIX domain sockets and the
bind()/connect() system calls, which is intended to confirm that the
right successes and errors occur when rendezvousing via the file system
name space.
2005-02-20 22:21:53 +00:00
rwatson
96960d4e34 Use WARNS?= instead of WARNS= in Makefiles so that global warning
settings can override local ones.

Pointed out by:	ru
2005-01-22 22:42:39 +00:00
sobomax
319257bc18 Add test which excersises problem with unability to change association of
already associated datagram unix domain socket by issuing connect() system
call.
2005-01-12 09:57:18 +00:00