Commit Graph

2424 Commits

Author SHA1 Message Date
Gleb Smirnoff 8a95085635 tests/kern: make ssl_sendfile:truncate and ssl_sendfile:grow less flaky
First problem is a trivial race that the client thread doesn't see updated
c.sbytes.  Second problem applies only to the truncate test.  On a machine
with huge default buffer sizes, there is a chance that sendfile(2) will
fill both buffers with amount of data that is larger than the size we plan
to truncate.  To minimise chances for this scenario, increase file size
and truncate it less aggressively, also try to decrease buffer sizes.
2026-01-27 13:17:08 -08:00
Mark Johnston ef389b7f58 atf_python: Fix a typo in a type annotation
No functional change intended.

MFC after:	1 week
Sponsored by:	Stormshield
Sponsored by:	Klara, Inc.
2026-01-27 14:57:31 +00:00
Mark Johnston b0d9970950 pf: Pass v6 packets to the divert socket
There is no particular limitation of divert sockets with respect to
IPv6, and the pf.conf man page does not mention the restriction to IPv4.

Extend the divert-to regression tests to exercise the v6 case.

Reviewed by:	igoro, kp, glebius
MFC after:	3 weeks
Sponsored by:	OPNsense
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D54847
2026-01-27 14:04:48 +00:00
Mark Johnston 8934c3dc78 pf tests: Set require.kmods in divert-to tests
Tests should declare their dependencies rather than testing for them at
runtime.

Reviewed by:	igoro, kp, glebius
MFC after:	2 weeks
Sponsored by:	OPNsense
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D54846
2026-01-26 17:24:25 +00:00
Alan Somers 277539ae7f Add tests for pdwait
MFC With:	4d707825bf
Sponsored by:	ConnectWise
2026-01-26 07:37:16 -07:00
Alan Somers d1e6057fa4 Add tests for pdrfork
MFC With:	5c2ee618d5
Sponsored by:	ConnectWise
2026-01-26 07:37:08 -07:00
Alan Somers e35df41f68 procdesc: Add a test for pid recycling behavior
MFC With:	09984871d8
Sponsored by:	ConnectWise
2026-01-26 07:36:57 -07:00
Enji Cooper da59b3147b Account for the ctl test needing the ctl(4) module
This testcase does not function unless the /dev/ctl/... node exists,
which is created by the ctl(4) module. Require the ctl(4) module to be
loaded so the test can be executed.

MFC after: 1 week
Differential Revision:	https://reviews.freebsd.org/D54518
2026-01-24 16:18:45 -08:00
Alan Somers ffb747d587 fusefs: Add tests for the new -o auto_unmount feature
Add tests for mount_fusefs's new -o auto_unmount feature, recently added
by arrowd.

MFC with:	10037d0978 "fusefs: Implement support for the auto_unmount"
2026-01-24 09:02:33 -07:00
Gleb Smirnoff 37d11fde8f tests/kern: add test for SSL_sendfile() 2026-01-23 11:00:49 -08:00
Kristof Provost 2e0e45a516 pfctl(8): change default limiter action from no-match to block
pf(4) users who use limiters in current should update the rules
accordingly to reflect the change in default behavior. The existing
rule which reads as follows:

    pass in from any to any state limiter test

needs to be changed to:

    pass in from any to any state limiter test (no-match)

OK dlg@

Obtained from:	OpenBSD, sashan <sashan@openbsd.org>, c600931321
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-19 23:04:55 +01:00
Jose Luis Duran 964d91ee1d pflog: tests: Fix rdr_action_head()
Fix a typo in the rdr_action_head() test.

Fixes:		685fb42538 ("pf: Log the intended action when a NAT rule matches a packet")
MFC after:	1 week
2026-01-17 23:33:04 +00:00
Jose Luis Duran a4f0a60e05 tarfs: tests: Increase timeout (again 2)
Bump the timeout value (for the third time), to avoid cutoff on emulated
architectures on ci.freebsd.org.  One of the runners will take
considerably more time to complete this test.

Reported by:	Jenkins
Fixes:		a551b05249 ("tarfs: tests: Increase timeout (again)")
MFC after:	3 days
2026-01-17 18:01:21 +00:00
Gleb Smirnoff 35caa56a32 tests/ipfw: add a test for ipfw(4) log rules that write to bpf(4) 2026-01-16 20:09:02 -08:00
Gleb Smirnoff 7eac31c83e tests/ipfw: add a simple fuzzing test for ipfw tables
Reviewed by:		pouria, ae
Differential Revision:	https://reviews.freebsd.org/D54579
2026-01-16 16:38:41 -08:00
Gleb Smirnoff 77f453e9f9 tests/if_ovpn: add missing cleanup to the multihome6 test
Fixes:	0bfcfb3cb1
2026-01-15 13:40:33 -08:00
Kristof Provost 21d666a193 if_ovpn: add interface counters
Count input/output packets and bytes on the interface as well, not just
in openvpn-specific counters.

PR:		292464
MFC after:	2 weeks
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-15 17:18:27 +01:00
Kristof Provost 098febfcc1 pf tests: test block/no-match limiters
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-14 07:44:44 +01:00
Kristof Provost e3319f9190 pf tests: extend the source limiter test
Also enumerate and kill individual source addresses.

Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-14 07:44:41 +01:00
Kristof Provost 086a3cb4b8 pf tests: basic source limiters test case
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-14 07:44:41 +01:00
Kristof Provost cb7a5d9401 pf tests: state limiter rate test
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-14 07:44:40 +01:00
Kristof Provost a10e8e78c8 pf tests: basic state limiters test case
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2026-01-14 07:44:40 +01:00
Jose Luis Duran a551b05249 tarfs: tests: Increase timeout (again)
Bump the timeout value (a little more), to avoid cutoff on emulated
architectures on ci.freebsd.org.

Reported by:    Jenkins
Fixes:		47015e4546 ("tests: Increase timeout")
MFC after:	3 days
2026-01-12 18:17:01 +00:00
Mark Johnston 32ec9d87ce bpf/tests: Run tests in an execenv jail
Otherwise the tests cannot be run in parallel since they create
identically named jails.

Fixes:	dd49816b0d ("bpf: avoid panic on multiple readers")
2026-01-12 15:34:43 +00:00
Mark Johnston 74999aac5e in6: Modify address prefix lifetimes when updating address lifetimes
When one uses SIOCAIFADDR_IN6 to add a v6 address, it's possible to set
the preferred and valid lifetimes of the address.  If the address
already exists, this ioctl will recalculate and update the expiry times
based on the provided timestamps.

When adding a new address, the lifetimes are inherited by the prefix as
well, but only if we create a new prefix.  If the prefix already exists,
as it will in the case where an address is being updated rather than
being added, we do not touch the prefix lifetimes at all.  This means
that the original address lifetime still applies to the route associated
with that prefix, so when the prefix expires, the route goes away.

This behaviour doesn't make a lot of sense: if the admin updates an
address lifetime, we should ensure that the prefix lifetime is updated
too.  Make that change, ensuring that we do not shorten the prefix
lifetime, as the prefix might be shared among multiple interface
addresses.

Add a regression test.

Co-authored by:	Franco Fichtner <franco@opnsense.org>
Reviewed by:	pouria, zlei, ae
MFC after:	2 weeks
Sponsored by:	OPNsense
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D54562
2026-01-12 15:34:43 +00:00
CismonX 17ba6f4286 fusefs: support FUSE_IOCTL
MFC After: 1 week
Signed-off-by: CismonX <admin@cismon.net>
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1470
2026-01-09 17:06:21 -07:00
Minsoo Choo 94d1731e73 Makefile*: remove powerpcspe
As reported on the freebsd-announce mailing list[1] FreeBSD is
continuing to retire 32-bit support.  Remove powerpcspe from build
infrastructure.

[1] https://lists.freebsd.org/archives/freebsd-announce/2024-February/000117.html

Signed-off-by: Minsoo Choo <minsoochoo0122@proton.me>
Reviewed by:	jhibbits, emaste
Pull request:	https://github.com/freebsd/freebsd-src/pull/1914
2026-01-09 11:28:43 -05:00
Jose Luis Duran 47015e4546 tests: Increase timeout
Bump the timeout value, to avoid cutoff on emulated architectures on
ci.freebsd.org.

Reported by:	Jenkins
Reviewed by:	ngie
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D54550
2026-01-07 17:52:26 +00:00
Jose Luis Duran 301bc149b9 pf: tests: Require python3
Reported by:	Jenkins
Reviewed by:	kp, ngie
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D54549
2026-01-07 17:51:57 +00:00
Kristof Provost 2eec2bcca2 pf tests: avoid cleanup failures on skipped tests
If we skip the nat:binat_* tests (e.g. because pf.ko isn't loaded) the
inetd_tester.pid file isn't created. We still run the cleanup function,
which tries to use this file to clean up the test environment. This
results in 'broken: Test case cleanup did not terminate successfully'.
Avoid this by checking if the pid file exists before using it.

Sponsored by:	Rubicon Communications, LLC ("Netgate")
2025-12-30 14:16:53 +01:00
Konstantin Belousov 543c86636f exterr_test: loosen the error string pattern
After addition of the prot and max_prot values, the old error substring
no longer satisfy the check.

Reviewed by:	emaste, mckusick
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D54380
2025-12-29 03:16:25 +02:00
Ed Maste 02376be32d tests/ci: Use :H:H rather than ../..
In general we want to strip subdir components, rather than appending
`..`s.

Reviewed by:	lwhsu
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54352
2025-12-26 11:32:27 -05:00
Alan Somers f51e9d0e09 fusefs: Fix further intermittency in the BadServer.ShortWrite test case
After being unmounted, the mockfs server would occasionally read from
/dev/fuse again, if the main function didn't exit fast enough, getting
an ENODEV error.  Handle that appropriately.

Reported by:	Siva Mahadevan <me@svmhdvn.name>
Fixes:		d86025c1d4
MFC after:	1 week
Reviewed by:	Siva Mahadevan <me@svmhdvn.name>
Differential Revision: https://reviews.freebsd.org/D54331
2025-12-22 10:18:16 -07:00
Kristof Provost 4f35a84b32 atf_python: support setting interface mtu
Teach the vnet support code to set interface MTU. Some tests make use of
this, so have the framework handle it.

Adapt a few pf tests to use this.

Reviewed by:	melifaro
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D54333
2025-12-22 17:28:33 +01:00
Mark Johnston da8ab13249 inotify: Avoid resetting the cookie
The IN_MOVED_FROM and _TO events only apply to names in a watched
directory, never to a watched directory itself.  So, the cookie value
there is always zero, and in particular we should not reset the
caller-provided cookie value, as it may be used later.

Add a regression test.

Reported by:	arrowd
MFC after:	1 week
2025-12-22 14:47:27 +00:00
Mark Johnston 15178d8ed2 pf: Fix state handling when ICMP packets are diverted
Commit 66f2f1c832 ("pf: handle divert packets") missed a case that I
happened to hit while testing something.

Add a regression test for the ICMP case, based on the existing test.
Fix a buglet in the existing test (missing whitespace after "[").

Reviewed by:	kp
Sponsored by:	OPNsense
Sponsored by:	Klara, Inc.
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D54321
2025-12-22 14:47:27 +00:00
Mark Johnston df6861d755 ifconfig: Fix the -L flag when using netlink
By default, when ifconfig shows a v6 address derived from a
router-advertised prefix, it shows the initial preferred and valid
lifetimes.  When -L is specified, it is supposed to show the remaining
lifetimes, but this was broken in the conversion to netlink.

Fix that, and add a regression test which validates ifconfig output
before and after a short-lived address expires.

Reported by:	Franco Fichtner <franco@opnsense.org>
Reviewed by:	melifaro, allanjude, Seyed Pouria Mousavizadeh Tehrani
Fixes:		4c91a5dfe4 ("ifconfig: make interface and address listing use Netlink as transport")
MFC after:	2 weeks
Sponsored by:	OPNsense
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D54294
2025-12-19 14:11:20 +00:00
Mark Johnston 7080c1b09d tests: Fix style in ra.py
No functional change intended.

MFC after:	2 weeks
2025-12-19 14:11:01 +00:00
Kristof Provost ad7f49f98b libpfctl: fix tstats address count
Reported by:	Marcos Mendoza <mmendoza@netgate.com>
See also:	https://redmine.pfsense.org/issues/16588
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2025-12-18 14:39:27 +01:00
Dag-Erling Smørgrav a678e87f55 unionfs: Support renaming symbolic links
This adds support for renaming a symbolic link found on the lower fs,
which necessitates copying it to the upper fs, as well as basic tests.

MFC after:	1 week
Sponsored by:	Klara, Inc.
Sponsored by:	NetApp, Inc.
Reviewed by:	olce, siderop1_netapp.com, jah
Differential Revision:	https://reviews.freebsd.org/D54229
2025-12-17 23:40:59 +01:00
Muhammad Moinur Rahman 4d185f5457 tests/ci: Fix building in Github
When we are using Cirrus-CI and using a PR branch it creates a filename
in the form "pull/XXXX" which becomes a path seperator and the file
creation process fails.

Fails to complete the process with the following:
/bin/sh: cannot create
/tmp/meta.hUNGUq/ci-FreeBSD-16.0-pull/1932-amd64-nullhash-GENERIC.env:
No such file or directory

For future also apply the same regex for OSRELEASE and VOLUME_LABEL.
2025-12-17 23:05:10 +01:00
Muhammad Moinur Rahman 14d5c13a89 tests/ci: Collect environment information
For reproducing errors or test results it is important to gather
environment information. These environments are divided into two parts.
One part is in which environment the artifacts were built into and the
second part is in which environment the tests were run.

This patch collects thesee information and saves into a .env file in
the metadir. After this patch lands we will also need to change our
jenkins job where we are uploading the artifact to a central location.
This environment file should also be stored along with the artifact.
For easier location the image basename and the environment basename are
kept same.

Approved by:	lwhsu
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D54247
2025-12-17 10:20:33 +01:00
Siva Mahadevan 681e9d3e39 Unskip test sys.netinet6.frag6.frag6_07.frag6_07
This is now consistently passing with 100+ consecutive runs.

Signed-off-by: Siva Mahadevan <me@svmhdvn.name>
PR:		244170
MFC after:	3 days
Sponsored by: The FreeBSD Foundation
2025-12-17 00:39:14 +08:00
Siva Mahadevan 7a83fedc11 tests/if_lagg_test: unskip 'witness' testcase
This testcase passes consistently (in 100+ runs) now.

Signed-off-by:	Siva Mahadevan <me@svmhdvn.name>
PR:		244163, 251726
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2025-12-16 18:20:44 +08:00
Siva Mahadevan e93e57d3da tests/fibs_test: unskip udp_dontroute6 testcase
This test now consistently passes (300+ consecutive runs).

Signed-off-by:	Siva Mahadevan <me@svmhdvn.name>
PR:		244172
Sponsored by:	The FreeBSD Foundation
2025-12-16 18:15:30 +08:00
Kristof Provost cdbc9b76ff pf: fix min-ttl and set-tos for nat64
If we have both af-to and min-ttl or set-tos on a single rule we didn't
apply the new ttl or tos.

That's because the scrub code still applied the change, but we
subsequently create a new header for the new address family. That's done
based on the ttl/tos saved in the struct pf_pdesc, which are the values
from the incoming packet, before the scrub modification(s).

Also update the struct pf_pdesc values when we update packets.

Reported by:	Marek Zarychta
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2025-12-15 17:24:34 +01:00
Kristof Provost ac4fb06d09 pf: handle TTL expired during nat64
If the TTL (or hop limit) expires during nat64 translation we may
need to send the error message in the original address family (i.e.
pre-translation).
We'd usually handle this in pf_route()/pf_route6(), but at that point we
have already translated the packet, making it difficult to include it in
the generated ICMP message.

Check for this case in pf_translate_af() and send icmp errors directly
from it.

PR:		291527
MFC after:	2 weeks
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D54166
2025-12-11 10:25:33 +01:00
Gleb Smirnoff bc14dcd113 tests/if_bridge: mark several tests as requring vlan(4) or gif(4)
This makes them "skip" instead of "fail" if the module is not present.
2025-12-05 11:29:43 -08:00
Kristof Provost f6aa57c86b snmp_pf: use the libpfctl wrapper to retrieve astats
Extend the test case to verify this works as expected.

Sponsored by:	Rubicon Communications, LLC ("Netgate")
2025-12-05 13:24:52 +01:00
Gleb Smirnoff 27ff90cd3d tests/carp: make a 0.2 second pause before configuring second jail
for all scenarios where both jails have same priority/advskew.  There is a
tiny chance that on both sides carp_master_down() will be executed in
parallel and advertisements will also fly through the bridge(4) in
parallel, thus both sides will switch to MASTER before receiving the
announcement from peer.  This makes the test to fail.  So far this
flakyness was observed for carp:vrrp_v4 only, but in theory it is possible
for any of the patched scenarios.

Note that this sleep does not prolong execution of the tests, as the first
jail is already configured, and if we slept before configuring the second,
we would sleep less in wait_for_carp().
2025-12-04 10:52:01 -08:00