Daan De Meyer [Tue, 14 May 2024 07:20:21 +0000 (09:20 +0200)]
TEST-46-HOMED: Simplify service unit
Let's remove the unneeded NotifyAccess=all and start the socket
and service in the test itself instead of via the service unit. This
makes the test unit identical to the other test units which will allow
us to autogenerate it in a later commit.
Daan De Meyer [Sat, 11 May 2024 17:17:13 +0000 (19:17 +0200)]
test: Rename testsuite-XX units to match test name
Having these named differently than the test itself mostly creates
unecessary confusion and makes writing logic against the tests harder
so let's rename the testsuite-xx units and scripts to just use the
test name itself.
Daan De Meyer [Sat, 11 May 2024 13:55:54 +0000 (15:55 +0200)]
test: Rework integration test definitions
Let's make this behave more like all the rest of the meson stuff.
This also is the first step to making it a bit more flexible so we
can define integration tests in different ways as will be seen in
the next commits.
Daan De Meyer [Mon, 13 May 2024 09:26:58 +0000 (11:26 +0200)]
TEST-01-BASIC: Drop logic to run test without install-tests=true
We don't support this for any other tests either so let's drop the
support for running TEST-01-BASIC without installing as well to make
the upcoming commit easier to implement.
Daan De Meyer [Tue, 14 May 2024 08:25:33 +0000 (10:25 +0200)]
core: Imply DefaultDependencies=no for credential mounts
Currently, on soft-reboot, /run/credentials/@system is unmounted
because it has DefaultDependencies=yes and as such will have
Conflicts=umount.target and Before=umount.target. Let's make sure
credential mounts survive soft-reboot by implying DefaultDependencies=no
for credential mounts.
Radoslav Kolev [Tue, 14 May 2024 07:39:29 +0000 (10:39 +0300)]
sd-event: increase test-event timeout to 120s
The test-event test seems to be taking quite a bit more time than
the other 'simple tests', which usually complete in < 1s. In case
of a slower or loaded machine the default 30s timeout is not enough.
RFC 4862 Section 5.5.3, bullet e, sub-bullet 3 applies to existing
addresses, i.e. when address_get() returns success. If the address is
new (i.e. address_get() fails), then we should not be adding 2 hours to
the lifetime_valid_usec. Instead, use the valid_lifetime from the RA's
Prefix Information Option.
This change allows v6LC.3.2.2 to pass. Also verified all v6LC3.2.* tests
pass. This covers all the v6LC tests from Group2: Router Advertisement
Processing and Address Lifetime.
Matt Muggeridge [Mon, 13 May 2024 21:50:51 +0000 (07:50 +1000)]
network: IPv6 Compliance: Router Advertisement Processing, Reachable Time [v6LC.2.2.15] (#32792)
Previously, RA option fields were being ignored when the Router Lifetime
value was zero. Remove this logic to be compliant with RFC4861.
Extract from: https://www.ietf.org/rfc/rfc4861.html#section-4.2, p.21,
first paragraph:
The Router Lifetime applies only to
the router's usefulness as a default router; it
does not apply to information contained in other
message fields or options.
curl-glue: catch libcurl attempting to change timeout handler when we destroy a curl context on exit
If we destroy both an event loop and a curl contect object at the same
time, then we get into this weird situation where curl wants us to
reconfigure a timout event source right before destruction, which
sd-event will refuse however, since it is already being shutdown.
Hence, catch that and simply don't bother adjusting the timeout, since
we cannot get back from there anyway.
KayJay7 [Mon, 13 May 2024 13:49:07 +0000 (15:49 +0200)]
hwdb: ASRock LED Controller classified incorrectly as joystick due to buttons and axis (#32775)
The function `builtin-input_id` incorrectly identifies the ASRock LED Controller
as an input device due to the presence of buttons and axis. To fix this we add
a new rule in `hwdb.d/60-input-id.hwdb`.
The properties have been set to empty instead of `0` because some programs
might check if the value is set at all instead of checking its value, as discussed
in #32773.
The device has no real keys. The devices is controlled by i2c interface and some
settings in UEFI, and it provides an header to connect LED strips and similar devices.
I suppose it's possible that ASRock intended to connect devices with buttons for
controlling LEDs to it, but: (i) the controller itself does not have key, (ii) to my
knowledge no such device exists. So I think we can unset that property as well.
On a sidenote, unsetting those properties does not affect the i2c interface,
OpenRGB still interacts normally with the device.
Daan De Meyer [Sat, 11 May 2024 14:42:24 +0000 (16:42 +0200)]
debug-generator: Allow specifying name of unit-dropin credential
A fixed name is too rigid, let's give users the ability to define
custom drop-in names which at the same time also allows defining
multiple dropins per unit.
We use ~ as the separator because:
- ':' is not allowed in credential names
- '=' is used to separate credential from value in mkosi's --credential
argument.
- '-' is commonly used in filenames
- '@' already has meaning as the unit template specifier which might be
confusing when adding dropins for template units
Yu Watanabe [Fri, 10 May 2024 11:38:06 +0000 (20:38 +0900)]
test-network: check existence of kernel bug
This adds checks for the kernel bug caused by
https://github.com/torvalds/linux/commit/3ddc2231c8108302a8229d3c5849ee792a63230d,
it will be fixed by
https://patchwork.kernel.org/project/netdevbpf/patch/20240510072932.2678952-1-edumazet@google.com/
Yu Watanabe [Fri, 10 May 2024 05:21:10 +0000 (14:21 +0900)]
test: wait for network interface reconfigured after updating config
Otherwise, at this stage, the interface may be in e.g. initialized or
pending state, and the drop-in file introduced by the previous command
may not be registered to the state file for the interface.
Yu Watanabe [Fri, 10 May 2024 03:49:50 +0000 (12:49 +0900)]
network/dhcp4: do not set gateway if DNS server or friends is in the acquired prefix
Previously, even if a DNS server is in the acquired prefix, the route to the
server might have gateway address.
This makes the prefix route, which is always configured, is also handled
as same as static routes, and do not use any gateway if the prefix route
is the most suitable route to access the destination.
The same change is also applied to route to NTP servers and semi-static
routes.
logs-show: flush matches before and after finding boots
Otherwise, if several matches already set, then the first seek to head
or tail may move the cursor to an invalid place, hence they provide
wrong ID(s). Also, reading journal after calling these function may
provide unexpected data.
Currently, the caller does not install any matches before calling the
functions, and does not read any journal entry after journal_get_boots()
succeeds or journal_find_boot_by_offset() succeeds with 0. Hence, this
should not change any behavior. Just for safety.