Commit Graph

4241 Commits

Author SHA1 Message Date
glebius
194927e894 Add a test case for a connection on accept queue that is reset before
it is accepted.  In that case accept(2) shall return ECONNABORTED.
Accept filters provide help with easily replicating that case.
2017-08-24 20:52:02 +00:00
emaste
dd0c1c986d remove debug files in delete-old* when WITHOUT_DEBUG_FILES
Reported by:	brd
Reviewed by:	bdrewery, brd
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D12044
2017-08-16 17:22:42 +00:00
ngie
64c4eee37c Add limited sandbox capability to "make check"
== Rationale ==

r295380 introduced "make check" and consolidated means for running
test code in an attempt to simplify running tests. One could either
install files/libraries/programs and run "make check", or run "make check"
with an explicit CHECKDIR, e.g., `make check CHECKDIR=$(make -V.OBJDIR)``.

One criticism that was received is that "make check" should be run with
the intent of making dev->test->commit easier, which means that the target
audience's workflow should be developers. One developer pattern available
in other opensource projects is to run test code from a developer sandbox,
instead of installing to a system.

== Method ==

This approach is slightly different from the standard approach, in the sense
that it builds and installs into a deterministic directory under .OBJDIR (as I call it,
the "sandbox"), then runs "make check" against that. In the event the test
run is successful, the deterministic directory is removed to save space.

== Approach ==

bsd.lib.mk, bsd.prog.mk:

To support this functionality, a new variable `HAS_TESTS` is being added.

HAS_TESTS enables appropriate behavior with bsd.lib.mk and bsd.prog.mk, as
follows:
- Add "make check" as an available target from the directory.
- Pass down appropriate variables via ${TESTS_ENV}, i.e.,
  ${TESTS_LD_LIBRARY_PATH} and ${TESTS_PATH}.

One should add "HAS_TESTS" to directories containing tests in them, e.g. from
bin/sh/Makefile,

  HAS_TESTS=
  SUBDIR.${MK_TESTS}+= tests

HAS_TESTS doesn't automatically add the tests subdirectory for flexibility
reasons.

bsd.opts.mk, src.opts.mk:
- The knob ${MK_MAKE_CHECK_USE_SANDBOX} has been added, both to explicitly
  direct (internally) when to set a deterministic ${DESTDIR} and to also allow
  users to disable this behavior globally, i.e., via src.conf.
- MK_TESTS has been promoted from src.opts.mk to bsd.opts.mk to leverage
  syntactic sugar for having MK_TESTS be a dependency for
  MK_MAKE_CHECK_USE_SANDBOX, but to also ensure that src.opts.mk isn't required
  to use suite.test.mk (which is a dependency of bsd.test.mk).

suite.test.mk:
- beforecheck behavior (when MK_MAKE_CHECK_USE_SANDBOX is enabled) is modified
  from a no-op to:
-- Build.
-- Run "make hierarchy" on the sandbox dir.
-- Install the tests/files to the sandbox dir.
- aftercheck behavior (when MK_MAKE_CHECK_USE_SANDBOX is enabled) is modified
  from a no-op to:
-- Remove the sandbox dir.

Again, because the dependency order set in bsd.test.mk is
beforecheck -> check -> aftercheck, "make check" will not be run unless
"beforecheck" completes successfully, and "aftercheck" will not be run unless
"beforecheck" and "check" complete successfully.

== Caveats ==

- This target must either be run with MK_INSTALL_AS_USER or as root. Otherwise
  it will fail when running "make install" as the default user/group for many
  makefiles when calling INSTALL is root/wheel.
- This target must be run from a suitable top-level directory. For example,
  running tests from `tests/sys/fs/tmpfs` won't work, but `tests/sys/fs` will,
  because `tests/sys/fs/tmpfs` relies on files installed by `tests/sys/fs`.
- Running MK_INSTALL_AS_USER may introduce determinism issues. However, using
  it could identify deficiences in tests in terms of needing to be run as
  root, which are not properly articulated in the test requirements.
- The doesn't negate the need for running "make installworld" and
  "make checkworld", etc. Again, this just is intended to simplify the
  dev->test->commit workflow.

== Cleanup done ==
- CHECKDIR is removed; one can use "MK_MAKE_CHECK_USE_SANDBOX=no" to enable
  "legacy" (r295380) behavior.

MFC after:	2 months
Relnotes:	yes (CHECKDIR removed; "make check" behavior changed)
Requested by:	jhb
Reviewed by:	arch (silence), testing (silence)
Differential Revision:	D11905
2017-08-14 19:03:05 +00:00
jlh
674b952dc4 rwho/ruptime/rwhod shouldn't be gated by RCMDS.
As peter@ points out in pr/220953:
"rwho, rwhod and ruptime are not part of the remote login suite (rsh, rlogin
etc).

They should *not* be in the rcmds package which is disabled by default.  We
rely on rwho/rwhod/ruptime in the freebsd.org cluster."

This commit is a re-commit of r322029 and r322031 with a better commit log, as
pointed out by ngie@.

This also includes the necesary changes to OptionalObsoleteFiles.inc, as
requested by jhb@.

PR:		220953
Reported by:	peter@, jhb@
Differential Revision:	https://reviews.freebsd.org/D11743
2017-08-08 20:17:07 +00:00
avg
856340754c zfsboottest: catch up with r316585 and provide ldi_get_size method
This method is required for querying file / disk sizes which is needed
at least for finding all copies of ZFS VDEV labels.

Reported by:	ngie
MFC after:	1 week
2017-08-01 11:09:18 +00:00
ngie
69859a2e92 Fix up r321849
pager_output should return 0 if no more output needs to be paged; non-zero
otherwise.

MFC after:	1 week
MFC with:	r321849
Reported by:	avg
2017-08-01 06:51:03 +00:00
ngie
99abf984ef Makefile cleanup
- Standardize on SRCTOP instead of .CURDIR-relative paths
- Use LIBADD instead of a mix of specifying -lgeom via DPADD/LDADD/LDFLAGS.
  Specifying -lgeom via LDFLAGS is an especially unnecessary and odd
  pattern.

MFC after:	1 week
2017-08-01 05:34:04 +00:00
ngie
cda79b6d2c Fix the return type for pager_output(..) in bootparttest and zfsboottest
pager_output(..) has always returned int. For some reason (probably the
clang 5.0 update), this mismatch now results in an error with CC=clang.

MFC after:	1 week
2017-08-01 05:29:36 +00:00
ngie
6ac0b09a26 Chase r315408 with the fourth parameter being removed from disk_open(..)
This fixes one part of the build.
2017-08-01 05:26:45 +00:00
ngie
a530b76b08 Standardize on SRCTOP instead of .CURDIR-relative paths
MFC after:	3 days
2017-08-01 05:23:49 +00:00
adrian
75b1078abb [wlanwds] allow for a DWDS AP VAP to be not be the first VAP on a NIC.
The wlanwds code was just creating a clone VAP without specifying the MAC
address to use for said clone VAP.  This meant that if an interface
was cloned from an AP interface that wasn't the first created VAP
(which shares the same MAC as the parent physical interface by default)
then the cloned interface would have the wrong MAC and traffic wouldn't work.

Besides chip bugs (ha!) this isn't a requirement.

So, teach wlanwds to:

* look up the link layer address for a given interface (which really should
  be a library interface, and will likely quickly become one);
* use this when creating a cloned interface for a DWDS peer;
* (net80211 already has the infrastructure to do this, it just needed to be
  used);
* add some extra logging to see what MAC addresses, parent interfaces, etc
  are being created.

Whilst here, add a reminder that I should extend this to include monitoring
a specific VAP for DWDS updates rather than just the parent interface.

This is the first step in allowing for multiple DWDS hops, which is a
pre-requisite for adrian's house having wifi in the single upstairs room.

Tested:

* AR9380, DWDS AP + AP mode - with DWDS AP being the second VAP created
  with a different MAC address;
* AR9331 (Carambola2), AP + DWDS STA;
* passing traffic

TODO:

* fix 802.11s so this DWDS stuff is no longer required!
2017-07-31 17:33:57 +00:00
imp
5782859b4e Allow _.disk.image to be specified.
Submitted by: ask at develooper dot com (reworked to new structure)
PR: 199191
Sponsored by: Netflix
MFC After: 3 days
2017-07-28 02:00:03 +00:00
imp
a8851ef89c Ensure that ordinary files that happen to start with .git, .hg and
.cvs into the image.

This makes .gitignore files in the working tree appear in the final
tree...

PR: 192178
Submitted by: Jason Unovitch
Sponsored by: Netflix
MFC After: 3 days
2017-07-28 01:59:58 +00:00
imp
6abe8970f6 Properly expand shell glob characters in NANO_PACKAGE_LIST.
The defualt NANO_PACKAGE_LIST is *, which fails to work
properly. Expand glob characters and make sure that we install the
special pkg package first.

Sponsored by: Netflix
Submitted by: wout at canodus dot be
PR: 219405
MFC After: 3 days
2017-07-28 01:59:53 +00:00
dim
ffc6bbcae0 Merge ^/head r320573 through r320970. 2017-07-13 22:01:38 +00:00
ngie
240783fbe2 Add WITH_RCMDS for parity with WITHOUT_RCMDS 2017-07-06 05:40:51 +00:00
ngie
a448519a3c Formalize LEAPSECONDS and OLDTIMEZONES in share/zoneinfo/... as
`MK_ZONEINFO_LEAPSECONDS_SUPPORT == yes` and
`MK_ZONEINFO_OLD_TIMEZONES_SUPPORT == yes`.

Keep `LEAPSECONDS` and `OLDTIMEZONES` for backwards compatibility,
but print out a warning notifying users that they should use the new
variables, in an effort to migrate them to the variables. This is being
done mostly for automated build tools, etc, that might rely on these
variables being set. The variables will be removed in the future on
^/head, e.g., after ^/stable/12 is cut.

MFC after:      1 month
Relnotes:       yes
Reviewed by:	bdrewery
Differential Revision:	D11376
2017-07-06 04:19:33 +00:00
dim
8c0fbdb3e6 Merge ^/head r319801 through r320041. 2017-06-17 00:14:54 +00:00
kib
c152eb89a4 Update scescx test to print syscall number and arguments.
Sponsored by:	The FreeBSD Foundation
MFC after:	3 weeks
2017-06-12 21:16:37 +00:00
kib
42c2bedf50 Decode recently added flags.
Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2017-06-12 20:42:16 +00:00
ngie
7142f707da Improve handling with system state
- Always unlink $cmd after exit via END block.
- The tests don't function well if kern.geom.debugflags != 0. Save debugflags,
  then restore them at the end of the test.

MFC after:	1 month
Sponsored by:	Dell EMC Isilon
2017-06-10 20:56:31 +00:00
dim
839660d861 Merge ^/head r319779 through r319800. 2017-06-10 20:23:49 +00:00
ngie
7c9b4b7560 Don't explicitly get the class to PART in gctl_test_helper.c
This will allow the tool to be used with arbitrary geom(4) classes, like GEOM.

Specify class=PART explicitly in the tester to keep existing behavior.

MFC after:	1 month
Sponsored by:	Dell EMC Isilon
2017-06-10 19:48:45 +00:00
dim
5bbcba2cd3 Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305145, and update
build glue.
2017-06-10 19:17:14 +00:00
dim
6bdc65391f Vendor import of llvm trunk r305145:
https://llvm.org/svn/llvm-project/llvm/trunk@305145
2017-06-10 13:44:06 +00:00
dim
e6e7103485 Merge ^/head r319548 through r319778. 2017-06-10 13:22:49 +00:00
glebius
fc98df1a87 Make the test to leave one connection on the incomplete queue
before exiting.  This examines some race conditions in kernel.
2017-06-08 06:13:53 +00:00
glebius
9c037a532f Improve this unit test: make sure that the accept filter actually works.
Before this test just checked scenario of setting and removing the accept
filter at different states of the socket.  Now it also checks that accept
filter works: we connect to the server, and then check that we can't accept,
then we send 1 byte of data and check again.
2017-06-08 05:12:11 +00:00
bapt
17de32683f Remove some workaround for an option that does not exists anymore. 2017-06-07 23:42:37 +00:00
bapt
c0d513aaf1 Finish removal of groff 2017-06-07 23:26:28 +00:00
bapt
ac6edc194c Remove groff from base
All manpages in base are now compatible with mandoc(1), all roff documentation
will be relocated in the doc tree. man(1) can now use groff from the ports tree
if it needs.

Also remove checknr(1) and colcrt(1) which are only useful with groff.

Approved by:	(no objections on the mailing lists)
2017-06-07 23:00:34 +00:00
bdrewery
d46bb555a2 vm.defer_swapspace_pageouts was removed in r308474.
Reported by:	pstef
2017-06-07 19:42:17 +00:00
dim
40ac53df36 Vendor import of llvm trunk r304659:
https://llvm.org/svn/llvm-project/llvm/trunk@304659
2017-06-03 15:20:36 +00:00
dim
e0ec28bdd9 Merge ^/head r319251 through r319479. 2017-06-01 22:59:41 +00:00
dim
6f031eff4b Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304460, and update
build glue.
2017-06-01 22:47:02 +00:00
jhb
feca03bcfa Fix some new errors and a warning in cryptotest.
- Use a new 'char *key' to allocate storage for keys and assign the
  pointer to the session2_op 'const char *' members after the key is
  initialized.
- Mark the 'find' variable used in crfind() static so that crfind()
  doesn't return a pointer to stack garbage.

Reported by:	olivier (1)
MFC after:	2 weeks
Sponsored by:	Chelsio Communications
2017-06-01 21:07:32 +00:00
dim
331a717774 Vendor import of llvm trunk r304460:
https://llvm.org/svn/llvm-project/llvm/trunk@304460
2017-06-01 20:58:36 +00:00
dim
764f1c4cbe Merge ^/head r319165 through r319250. 2017-05-30 19:31:02 +00:00
ngie
f9bccf4bbf Use .Xr to reference libblacklist(3), blacklistctl(8), and blacklistd(8)
MFC after:	now
Sponsored by:	Dell EMC Isilon
2017-05-30 18:03:34 +00:00
dim
c17182a134 Vendor import of llvm trunk r304222:
https://llvm.org/svn/llvm-project/llvm/trunk@304222
2017-05-30 17:37:31 +00:00
dim
e02c83ea49 Merge ^/head r318964 through r319164. 2017-05-29 22:25:33 +00:00
dim
e831c3dab0 Vendor import of llvm trunk r304149:
https://llvm.org/svn/llvm-project/llvm/trunk@304149
2017-05-29 16:25:25 +00:00
ngie
506bdc53a4 Use calloc instead of malloc + memset
MFC after:	3 days
Sponsored by:	Dell EMC Isilon
2017-05-27 23:57:09 +00:00
dim
1fa43d32b4 Merge ^/head r318658 through r318963. 2017-05-26 19:11:24 +00:00
phk
f92f6763f1 Try to keep up with the ports system Makefiles. 2017-05-25 21:59:19 +00:00
bapt
21bb62d1c3 In preparation for the removal of the roff toolchain, disconnect the
roff documentation from the build.

Those documents will be added to the doc tree and distributed as PDF from
the documentation website. As they are valuable has history, but do not match
current FreeBSD

Further more, the ascii format we were using to distribute them is not really
accurate for such documents.

more details:
https://lists.freebsd.org/pipermail/freebsd-arch/2017-May/018211.html
2017-05-25 14:54:22 +00:00
gjb
d94dc630cb Honor WITHOUT_TFTP for check-old* and delete-old* targets.
Submitted by:	philippe dot michel7 at sfr dot fr
PR:		217949
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2017-05-23 15:46:21 +00:00
dim
44f324ee1e Vendor import of llvm trunk r303571:
https://llvm.org/svn/llvm-project/llvm/trunk@303571
2017-05-22 19:43:28 +00:00
dim
ed9b35e508 Merge ^/head r318560 through r318657. 2017-05-22 19:28:24 +00:00
dim
b88ed9e95c Add libc++experimental.a for std::experimental support
This adds a separate library for supporting std::experimental features.
It is purposefully static, and must be explicitly linked into programs
using -lc++experimental.

PLEASE NOTE: there is NO WARRANTY as to any stability or continuing
existence of the features in the std::experimental parts of the C++
library!

Reviewed by:	ed
Differential Revision: https://reviews.freebsd.org/D10840
2017-05-21 17:07:12 +00:00