Commit Graph

62 Commits

Author SHA1 Message Date
ngie
010f8b4f07 Fix WARNS=6 issues with gcc 2015-04-16 05:37:19 +00:00
ngie
4f3aa5e79f Don't use /tmp for temporary files; this violates ATF/kyuas sandbox 2015-04-16 00:44:59 +00:00
ngie
6777749baf Rename unix_sendtorace_test to unix_sendto_race_test 2015-04-16 00:39:20 +00:00
ngie
f5c00e0dfa Convert accf_data_attach_test over to ATF and mark all steps after step 8 in
the sourcecode broken (it fails on my system at least; more investigation
needed)
2015-04-16 00:37:11 +00:00
ngie
637cb129fc - Convert zerosend_test to an ATF format testcase
- bind to random ports
- Close the server port so the TCP testcases won't terminate prematurely
  because bind(2) failed
2015-04-15 14:20:03 +00:00
ngie
a98cd7cd0e Convert unix_passfd_test to ATF
Mark test 8 as an expected failure so it no longer counts as an unexpected one
2015-04-15 11:48:41 +00:00
ngie
ea6ad5f1a5 Pick a random port if a specific one isn't provided on the command line 2015-04-14 10:20:02 +00:00
ngie
198792ffb0 Test for EPROTOTYPE, not EPROTONOSUPPORT 2015-04-14 07:08:45 +00:00
ngie
b21c62fc96 Use socket, not sockets/ (XXX: reminder to add a sanity check for this later...) 2015-04-14 02:38:57 +00:00
ngie
aca5423834 Fix WARNS= 6 by removing garbage collecting unused argc/argv 2015-04-13 16:43:06 +00:00
ngie
1008de0400 Add mqueue_test.sh 2015-04-13 09:40:57 +00:00
ngie
f9d25abeaa Install the proper files 2015-04-13 09:40:25 +00:00
ngie
9fbf06ecf3 Add missing Makefiles for fifo and file 2015-04-13 04:48:13 +00:00
ngie
17d96ca20b Add $FreeBSD$ RCS tag 2015-04-12 12:31:19 +00:00
ngie
bf56b02931 Integrate tools/regression/execve into the FreeBSD test suite as tests/sys/kern/execve 2015-04-12 12:29:34 +00:00
ngie
86baa7f8f1 Integrate tools/regression/fifo into the FreeBSD test suite as tests/sys/fifo 2015-04-12 06:18:24 +00:00
ngie
63315aaf06 Integrate tools/regression/mmap into the FreeBSD test suite as tests/sys/mmap 2015-04-12 05:25:11 +00:00
ngie
3bb7bf6d5c Default to WARNS=6 2015-04-12 05:09:05 +00:00
ngie
e2cd8e97c5 Integrate tools/regression/file into the FreeBSD test suite as tests/sys/file 2015-04-11 10:14:59 +00:00
ngie
305b739a89 Add directory iteration piece for tests/sys/mqueue 2015-04-11 09:28:53 +00:00
ngie
2a08aa5c38 Integrate tools/regression/posixshm into the FreeBSD test suite as tests/sys/posixshm 2015-04-11 09:28:11 +00:00
ngie
33c0504f3c Integrate tools/regression/mqueue into the FreeBSD test suite as tests/sys/mqueue 2015-04-11 09:20:20 +00:00
ngie
6fa249869e Integrate tools/regression/kqueue into the FreeBSD test suite as tests/sys/kqueue 2015-04-11 09:15:33 +00:00
ngie
9292308b0f Integration tools/regression/vfs into the FreeBSD test suite 2015-04-11 09:05:42 +00:00
ngie
4716abb1e9 Turn on test building/installation here 2015-04-11 09:05:00 +00:00
ngie
d8e6bca50d Start integrating tools/regression/sockets into tests/sys/sockets 2015-04-11 08:57:31 +00:00
jmg
c3ff54cc39 Add some new modes to OpenCrypto. These modes are AES-ICM (can be used
for counter mode), and AES-GCM.  Both of these modes have been added to
the aesni module.

Included is a set of tests to validate that the software and aesni
module calculate the correct values.  These use the NIST KAT test
vectors.  To run the test, you will need to install a soon to be
committed port, nist-kat that will install the vectors.  Using a port
is necessary as the test vectors are around 25MB.

All the man pages were updated.  I have added a new man page, crypto.7,
which includes a description of how to use each mode.  All the new modes
and some other AES modes are present.  It would be good for someone
else to go through and document the other modes.

A new ioctl was added to support AEAD modes which AES-GCM is one of them.
Without this ioctl, it is not possible to test AEAD modes from userland.

Add a timing safe bcmp for use to compare MACs.  Previously we were using
bcmp which could leak timing info and result in the ability to forge
messages.

Add a minor optimization to the aesni module so that single segment
mbufs don't get copied and instead are updated in place.  The aesni
module needs to be updated to support blocked IO so segmented mbufs
don't have to be copied.

We require that the IV be specified for all calls for both GCM and ICM.
This is to ensure proper use of these functions.

Obtained from:	p4: //depot/projects/opencrypto
Relnotes:	yes
Sponsored by:	FreeBSD Foundation
Sponsored by:	NetGate
2014-12-12 19:56:36 +00:00
ngie
dbab308adc Use PROGS instead of PROG and remove unnecessary SRCS?= assignment
Using PROG instead of PROGS will in cases of high -j with -DNO_ROOT cause
the PROG to show up more than once as it's handling the SCRIPTS install case
in a recursive manner, separate from the non-recursive case

After the recent batch of commits to bsd.progs.mk to fix behavior with how
variables are defaulted to, explicitly setting SRCS for a PROG is no longer
required

MFC after: 1 week
Reviewed by: asomers
Phabric: D1130
Sponsored by: EMC / Isilon Storage Division
2014-11-08 03:20:56 +00:00
ngie
67bf190806 Remove unused tests/lib directory
MFC after: 1 week
2014-11-03 15:40:49 +00:00
ngie
227d86af08 Remove explicit KYUAFILE=yes from tests/sys/Makefile
This causes the directory traversing Kyuafile to be installed, which in turn
causes tests/sys/pjdfstest to always be run from /usr/tests/sys

Let KYUAFILE default to auto, so the file generated by suite.test.mk gets
installed instead

MFC after: 1 week
2014-11-03 09:17:09 +00:00
ngie
5b7d87f332 Integrate pjdfstest test suite execution into kyua
pjdfstest execution is opt-in and must be done as root due to some of the
assumptions made by the test suite and lack of error checking in the non-root
case

A description of how to execute pjdfstest with kyua is provided in
share/pjdfstest/README

Phabric: D824 (an earlier prototype patch)
MFC after: 1 month
Relnotes: yes
Sponsored by: EMC / Isilon Storage Division
2014-11-03 07:18:42 +00:00
asomers
c1b1b15f41 Fix source address selection on unbound sockets in the presence of multiple
fibs. Use the mbuf's or the socket's fib instead of RT_ALL_FIBS. Fixes PR
187553. Also fixes netperf's UDP_STREAM test on a nondefault fib.

sys/netinet/ip_output.c
	In ip_output, lookup the source address using the mbuf's fib instead
	of RT_ALL_FIBS.

sys/netinet/in_pcb.c
	in in_pcbladdr, lookup the source address using the socket's fib,
	because we don't seem to have the mbuf fib. They should be the same,
	though.

tests/sys/net/fibs_test.sh
	Clear the expected failure on udp_dontroute.

PR:		187553
CR:		https://reviews.freebsd.org/D772
MFC after:	3 weeks
Sponsored by:	Spectra Logic
2014-09-16 15:28:19 +00:00
asomers
4dbc32b6e1 Abort the create_socket test if socket creation fails.
MFC after:	1 week
Reported by:	Coverity
CID:		1232756
2014-09-10 14:57:26 +00:00
asomers
57f5ddd49d Numerous small fixes, mostly suggested by Coverity.
tests/sys/kern/unix_seqpacket_test.c
	* Remove a duplicate error check in mk_pair_of_sockets
	* Always close sockets in the success path of ATF test cases.  Don't
	  bother with the error paths, because those are mostly assertions
	  anyway.  Most of these socket leaks were reported by Coverity.
	  All of them are harmless, because each ATF test case runs in its
	  own process.
	* Fix the len argument to send in shutdown_send and
	  shutdown_send_sigpipe.  The old version was using sizeof a pointer
	  instead of sizeof the char array.  Reported by Coverity.
	* Change a few ATF_CHECK to ATF_REQUIRE if the test can't reasonably
	  continue past a failure.

Reported by:	Coverity Scan
CID:		1229995, 1229991, 1229988, 1229994, 1229989, 1229992
CID:		1229993, 1229990, 1229984, 1229967, 1230005, 1229977
CID:		1229966, 1230004, 1229976
MFC after:	1 week
Sponsored by:	Spectra Logic
2014-08-20 16:59:33 +00:00
asomers
7ca8bf0f2c Fix unintended KBI change from r264905. Add _fib versions of
ifa_ifwithnet() and ifa_ifwithdstaddr()  The legacy functions will call the
_fib() versions with RT_ALL_FIBS, preserving legacy behavior.

sys/net/if_var.h
sys/net/if.c
	Add legacy-compatible functions as described above.  Ensure legacy
	behavior when RT_ALL_FIBS is passed as fibnum.

sys/netinet/in_pcb.c
sys/netinet/ip_output.c
sys/netinet/ip_options.c
sys/net/route.c
sys/net/rtsock.c
sys/netinet6/nd6.c
	Call with _fib() functions if we must use a specific fib, or the
	legacy functions otherwise.

tests/sys/netinet/fibs_test.sh
tests/sys/netinet/udp_dontroute.c
	Improve the udp_dontroute test.  The bug that this test exercises is
	that ifa_ifwithnet() will return the wrong address, if multiple
	interfaces have addresses on the same subnet but with different
	fibs.  The previous version of the test only considered one possible
	failure mode: that ifa_ifwithnet_fib() might fail to find any
	suitable address at all.  The new version also checks whether
	ifa_ifwithnet_fib() finds the correct address by checking where the
	ARP request goes.

Reported by:	bz, hrs
Reviewed by:	hrs
MFC after:	1 week
X-MFC-with:	264905
Sponsored by:	Spectra Logic
2014-05-29 21:03:49 +00:00
imp
8d60033835 Remove last two NO_MAN= in the tree. In both of these cases, MAN= is
what is needed.
2014-05-10 16:38:37 +00:00
asomers
c95e6bbc4f Add regression test for PR kern/189088.
PR:		kern/189088
MFC after:	3 weeks
Sponsored by:	Spectra Logic
2014-04-29 15:12:23 +00:00
asomers
130691029e Fix a panic when removing an IP address from an interface, if the same address
exists on another interface.  The panic was introduced by change 264887, which
changed the fibnum parameter in the call to rtalloc1_fib() in
ifa_switch_loopback_route() from RT_DEFAULT_FIB to RT_ALL_FIBS.  The solution
is to use the interface fib in that call.  For the majority of users, that will
be equivalent to the legacy behavior.

PR:		kern/189089
Reported by:	neel
Reviewed by:	neel
MFC after:	3 weeks
X-MFC with:	264887
Sponsored by:	Spectra Logic
2014-04-29 14:46:45 +00:00
asomers
4d0d1f47bd Style fixes, mostly trailing whitespace elimination. No functional change.
Reported by:	pho
MFC after:	3 weeks
2014-04-25 14:35:30 +00:00
asomers
f8a34b6f49 Fix subnet and default routes on different FIBs on the same subnet.
These two bugs are closely related.  The root cause is that ifa_ifwithnet
does not consider FIBs when searching for an interface address.

sys/net/if_var.h
sys/net/if.c
	Add a fib argument to ifa_ifwithnet and ifa_ifwithdstadddr.  Those
	functions will only return an address whose interface fib equals the
	argument.

sys/net/route.c
	Update calls to ifa_ifwithnet and ifa_ifwithdstaddr with fib
	arguments.

sys/netinet/in.c
	Update in_addprefix to consider the interface fib when adding
	prefixes.  This will prevent it from not adding a subnet route when
	one already exists on a different fib.

sys/net/rtsock.c
sys/netinet/in_pcb.c
sys/netinet/ip_output.c
sys/netinet/ip_options.c
sys/netinet6/nd6.c
	Add RT_DEFAULT_FIB arguments to ifa_ifwithdstaddr and ifa_ifwithnet.
	In some cases it there wasn't a clear specific fib number to use.
	In others, I was unable to test those functions so I chose
	RT_DEFAULT_FIB to minimize divergence from current behavior.  I will
	fix some of the latter changes along with PR kern/187553.

tests/sys/netinet/fibs_test.sh
tests/sys/netinet/udp_dontroute.c
tests/sys/netinet/Makefile
	Revert r263738.  The udp_dontroute test was right all along.
	However, bugs kern/187550 and kern/187553 cancelled each other out
	when it came to this test.  Because of kern/187553, ifa_ifwithnet
	searched the default fib instead of the requested one, but because
	of kern/187550, there was an applicable subnet route on the default
	fib.  The new test added in r263738 doesn't work right, however.  I
	can verify with dtrace that ifa_ifwithnet returned the wrong address
	before I applied this commit, but route(8) miraculously found the
	correct interface to use anyway.  I don't know how.

	Clear expected failure messages for kern/187550 and kern/187552.

PR:		kern/187550
PR:		kern/187552
Reviewed by:	melifaro
MFC after:	3 weeks
Sponsored by:	Spectra Logic
2014-04-24 23:56:56 +00:00
asomers
6e7494c7e1 Fix host and network routes for new interfaces when net.add_addr_allfibs=0
sys/net/route.c
	In rtinit1, use the interface fib instead of the process fib.  The
	latter wasn't very useful because ifconfig(8) is usually invoked
	with the default process fib.  Changing ifconfig(8) to use setfib(2)
	would be redundant, because it already sets the interface fib.

tests/sys/netinet/fibs_test.sh
	Clear the expected ATF failure

sys/net/if.c
	Pass the interface fib in calls to rtrequest1_fib and rtalloc1_fib

sys/netinet/in.c
sys/net/if_var.h
	Add a fibnum argument to ifa_switch_loopback_route, a subroutine of
	in_scrubprefix.  Pass it the interface fib.

PR:		kern/187549
Reviewed by:	melifaro
MFC after:	3 weeks
Sponsored by:	Spectra Logic Corporation
2014-04-24 17:23:16 +00:00
jmmv
f5ead69e01 Fix variable type to avoid printf formatter warning.
This fixes the build under powerpc64 where gcc complains about a mismatch
between a %zd printf formatter and an int variable passed to it.
2014-04-04 18:10:11 +00:00
asomers
0b79334339 Correct ARP update handling when the routes for network interfaces are
restricted to a single FIB in a multifib system.

Restricting an interface's routes to the FIB to which it is assigned (by
setting net.add_addr_allfibs=0) causes ARP updates to fail with "arpresolve:
can't allocate llinfo for x.x.x.x".  This is due to the ARP update code hard
coding it's lookup for existing routing entries to FIB 0.

sys/netinet/in.c:
	When dealing with RTM_ADD (add route) requests for an interface, use
	the interface's assigned FIB instead of the default (FIB 0).

sys/netinet/if_ether.c:
	In arpresolve(), enhance error message generated when an
	lla_lookup() fails so that the interface causing the error is
	visible in logs.

tests/sys/netinet/fibs_test.sh
	Clear ATF expected error.

PR:		kern/167947
Submitted by:	Nikolay Denev <ndenev@gmail.com> (previous version)
Reviewed by:	melifaro
MFC after:	3 weeks
Sponsored by:	Spectra Logic Corporation
2014-03-26 22:46:03 +00:00
asomers
23f37cb123 tests/sys/netinet/Makefile
tests/sys/netinet/fibs.sh
	Replace fibs:udp_dontroute with fibs:src_addr_selection_by_subnet.
	The original test was poorly written; it was actually testing
	kern/167947 instead of the desired kern/187553.  The root cause of the
	bug is that ifa_ifwithnet did not have a fib argument.  The new test
	more directly targets that behavior.

tests/sys/netinet/udp_dontroute.c
	Delete the auxilliary binary used by the old test

PR:		kern/187553
MFC after:	3 weeks
Sponsored by:	Spectra Logic Corporation
2014-03-25 15:03:08 +00:00
asomers
c03f0a88b5 Add several ATF tests that deal with multiple fibs. They're described in
several different PRs, but the tests share some common code, so I'm
committing them together.

sbin/ifconfig/tests
sbin/ifconfig/tests/fibs_test.sh
sbin/ifconfig/tests/Makefile
sbin/ifconfig/Makefile
	Add fibs_test.sh, which regresses bin/187551

tests/sys/netinet
tests/sys/netinet/fibs_test.sh
tests/sys/netinet/udp_dontroute.c
tests/sys/netinet/Makefile
tests/sys/Makefile
	Add fibs_test.sh, which regresses kern/167947, kern/187552
	kern/187549, kern/187550, and kern/187553

etc/mtree/BSD.tests.dist
	Add newly created directories

PR:		bin/187551
PR:		kern/167947
PR:		kern/187552
PR:		kern/187549
PR:		kern/187550
PR:		kern/187553
Discussed with:	melifaro
MFC after:	3 weeks
Sponsored by:	Spectra Logic Corporation
2014-03-20 20:39:41 +00:00
pho
89e05778e2 Added sysctl kern.maxfiles increase test, do not use /etc/passwd for tests
and use volatile sig_atomic_t for signal handler variable.

Reviewed by:	 asomers (previous version)
Sponsored by:	EMC / Isilon storage division
2014-03-19 09:41:12 +00:00
jmmv
3cbab1b573 Make bsd.test.mk the only public mk fragment for the building of tests.
Change {atf,plain,tap}.test.mk to be internal implementation details of
bsd.test.mk.  Makefiles that build tests should now only include bsd.test.mk
and declaratively specify what they want to build, without worrying about
the internal implementation of the mk files.

The reason for this change is to permit building test programs of different
interfaces from a single directory, which is something I had a need for
while porting tests over from src/tools/regression/.

Additionally, this change makes it possible to perform some other requested
changes to bsd.test.mk in an easier manner.  Coming soon.
2014-03-14 08:56:19 +00:00
asomers
b56bd6b02a Replace 4.4BSD Lite's unix domain socket backpressure hack with a cleaner
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
2014-03-13 18:42:12 +00:00
asomers
10361d66d0 kern/Makefile
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
2014-03-07 19:30:03 +00:00
asomers
cb366c9de1 Only use -lpthread for unix_seqpacket_test, not for all test programs.
Reported by:	Garrett Cooper
MFC after:	3 weeks
Sponsored by:	Spectra Logic Corporation
2014-03-06 20:39:56 +00:00