7620 Commits

Author SHA1 Message Date
Zygmunt Bazyli Krynicki
0b52b0eae6 many: update apparmor to 4.0.1 (#14150)
* build-aux: update vendored apparmor to 4.0.1 release

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* build-aux: add autoconf-archive to apparmor/build-packages

Unlike the Launchpad tarball, the one from apparmor gitlab tarball
requires this to be present as it is just a snapshot of the git tree,
not a release tarball like those provided by Launchpad.

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* build-aux: remove apparmor parser performance patch

This was already included upstream as part of the 3.1.0 release and
hence is included in the 4.0.1 release which we are now vendoring.

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* build-aux: remove remote patch application logic

They are already included in apparmor 4.x release.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* build-aux: remove local patch application logic

All local patches are now merged in the 4.x release.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* cmd/configure.ac: expect apparmor 4.0.1 when building as a snap

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* sandbox/apparmor: use apparmor 4.0 abi with vendored parser

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* sandbox/apparmor: add debug logging when probing parser features

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* sandbox/apparmor: log apparmor_parser version when probing features

This is helpful when trying to debug why certain features may not be supported.

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* tests/main: update for new vendored apparmor 4.0

Signed-off-by: Alex Murray <alex.murray@canonical.com>

* Reapply "i/builtin: allow docker-support to use mqueue (#13738)" (#13765)

This reverts commit ce298864e3.

* interfaces: adjust docker-support test to handle mqueue

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* sandbox/apparmor: mask mqueue feature until apparmor 4.0.1

It seems that mediation of mqueue is miscompiled by apparmor_parser
4.0.0~beta3 that was present in Ubuntu 24.04 until the 10th of July
2024. Detect this and mask the presence of mqueue unless apparmor parser
4.0.1, or newer, is used.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* sandbox/apparmor: support bundled 3.0 or 4.0 (preferred) abi

Mirror the logic used in apparmor-from-the-host to apparmor-from-snapd-snap.
This mainly fixes tests that repackage old snapd snap without touching
apparmor, but in general seems like the right thing to do.

The logic is such, that abi 4 is preferred.

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* sandbox/apparmor: unify test mocking logic

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* sandbox/apparmor: refactor appArmorParserVersion not to clobber cmd

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

* sandbox/apparmor: fix pair of typos

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>

---------

Signed-off-by: Alex Murray <alex.murray@canonical.com>
Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
Co-authored-by: Alex Murray <alex.murray@canonical.com>
2024-07-11 23:55:44 +02:00
Alex Lewontin
ccc5562c5b many: fix iface static attrs not properly updating (#12878)
* o/ifacestate: fix typo

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: autoconnection checking should not be task-bound

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: update static attrs based on {auto,}connection policy

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* tests: add spread test for static attr updating

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* tests: add shared-memory static-attr update test

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: add tests for policy-driven static attr updates

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: simplify state error handling when reloading connections

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* Revert "o/ifacestate: simplify state error handling when reloading connections"

This reverts commit d3f67c67e22b463b994a13f50064cef551e86686.

* o/i: restore DeviceCtx on cleanup

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: simpler state handling when reloading connections

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: also check AutoConnect method when doing policy based
reloading

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/i: use new Sequence helpers in test

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>

* o/ifacestate: add missing appset parameter

* tests/main/upgrade-from-2.15: kill the test

The test is no longer useful. The oldest version we have in any distribution is
2.38 in Trusty, see https://launchpad.net/snapd/+packages but also 2.15 is very
ancient and completely unsupported at this time.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>

* overlord: update managers test to account for preserved plug static attributes

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>

* tests/main/interface-static-attrs-update-on-refresh: clean up after the test

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>

---------

Signed-off-by: Alex Lewontin <alex.lewontin@canonical.com>
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
Co-authored-by: Philip Meulengracht <the_meulengracht@hotmail.com>
Co-authored-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-07-04 23:06:38 +02:00
Sergio Cazzolato
431967d23b tests: fix apt-hooks in ubuntu oracular (#14155)
The error message installing a package that cannot be located has
changed.
2024-07-04 11:30:15 -03:00
Sergio Cazzolato
f40b9595a1 tests: remove centos 7 support (#14147)
* tets: remove support for centos-7

Centos-7 is EOL since June-30

Signed-off-by: Sergio Cazzolato <sergio.cazzolato@canonical.com>

* update the release_tst.go with the real centos 9 info

---------

Signed-off-by: Sergio Cazzolato <sergio.cazzolato@canonical.com>
2024-07-04 11:28:21 -03:00
Valentin David
b1dc3c675d tests: properly build snapd snap (#14141)
* tests: properly build snapd snap

Now we build also the test version of snapd snap in `snap-builds`
workflow job. We copy this into the spread tests. And we use that
snap, which we only instrument instead of copying the snapd deb build.

If the snap is not available, then we build it in spread. On CI, this
happens on arm since the workflow does not build it. It will also
happen when triggering test manually.

* tests: couple of small improvements to test syntax, move WORK_DIR into script scope, use PWD instead of dot notation

---------

Co-authored-by: Philip Meulengracht <the_meulengracht@hotmail.com>
2024-07-03 13:36:31 +02:00
Sergio Cazzolato
a7c15c2ca1 tests: fix fedora-40 issues and remove centos-8 support in tests (#14145)
This changs fixes some errors that are reproduced in fedora-40 executed
in openstack backend.
Also it is removed the centos-8 support in tests.
2024-07-01 15:34:06 -03:00
Maciej Borzecki
cc07ead5a2 tests/main/fake-netplan-apply: support for Ubuntu 24.10
Add workaround for Ubuntu 24.10

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-07-01 10:15:45 +02:00
Sergio Cazzolato
140e7a7e51 tests: fix upgrade-from-release test in ubuntu noble (#14125)
* tests: fix upgrade-from-release test for noble

* fix ubuntu version name
2024-06-28 14:02:57 -03:00
Maciej Borzecki
7e09dd8e08 tests/main: account for expected failures when running with SNAP_REEXEC=1
Account for expected failures when running with SNAP_REEXEC on unsupported
distros.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-27 12:35:31 +02:00
Maciej Borzecki
b520f23d96 tests/main/command-chain: bump the test base
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-27 12:35:31 +02:00
Maciej Borzecki
93dd740c0c tests/main/fake-netplan-apply: update as the test reuses netplan-snap
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-26 11:32:52 +02:00
Maciej Borzecki
37a0f9eb78 tests/main/snap-run-inhibition-flow: set Python IO encoding
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-26 11:14:41 +02:00
Maciej Borzecki
86fbaae8ab tests/main/snap-run-inhibition-flow: set Python IO encoding
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-26 11:14:41 +02:00
Maciej Borzecki
957825677e tests/main/interfaces-snap-refresh-observe: override Python's IO encoding guess
Python will try to guess the IO encoding based on the terminal, but apparently
not all terminals support UTF-8, thus causing errors like this:

$ PYTHONIOENCODING="ascii" api-client --socket /run/snapd-snap.socket /v2/snaps
Traceback (most recent call last):
  File "/snap/api-client/x1/bin/api-client.py", line 40, in <module>
    sys.exit(main(sys.argv))
  File "/snap/api-client/x1/bin/api-client.py", line 36, in main
    print(body.decode('UTF-8'))
UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 3183: ordinal not in range(128)

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-26 11:14:41 +02:00
Alfonso Sánchez-Beato
fb27fbc5d5 tests/component: check message on installation 2024-06-23 23:22:14 +01:00
Zygmunt Krynicki
6647c77919 tests: set SNAP_MOUNT_DIR in debug section
The debug section was always broken, as they do not share environment variables
with the other sections.

This should fix an error seen in the wild:

  2024-06-19 13:05:09 Error debugging
  google:ubuntu-20.04-64:tests/main/security-setuid-root (jun191226-580356) :
  /bin/bash: line 92: SNAP_MOUNT_DIR: unbound variable

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
2024-06-20 08:55:43 +02:00
Maciej Borzecki
1102b4159b tests/main/lxd-mount-units: account for no seeded snaps in 24.10 either
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-19 08:30:33 +02:00
Maciej Borzecki
68dfb60f45 tests/main: use ubuntu-daily for 24.10 in various LXD related tests
Use ubuntu-daily remote for 24.10.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-19 08:30:33 +02:00
Miguel Pires
8128ed20bb many: rename aspect/bundle to view/registry
This changes the naming of the aspects feature to be "registry" instead
of bundle (i.e., a configuration space backed with its own storage) and
"view" instead of aspect. Once this lands, anyone that has this enabled
needs to unset the experimental flag and rename the state entry before
refreshing snapd and then re-enable.

Signed-off-by: Miguel Pires <miguel.pires@canonical.com>
2024-06-17 17:16:57 +02:00
Maciej Borzecki
0143ed23d1 tests/main/snap-quota-journal: fix match to include optional decimal part
Newer systemd does not report decimal parts of the size if the size is already
rounded to the unit size.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-06-17 14:09:59 +02:00
Oliver Calder
0ff642e82e many: include prompt prefix in apparmor rules (#13822)
* features,i/{apparmor,builtin}: include prompt prefix in home interface

If prompting is supported and enabled, include the prompt prefix in
AppArmor rules for the home interface, which will cause AppArmor to send
a prompt when accessing any file in $HOME.

In the future, if other interfaces include the ###PROMPT### prefix in
their rule snippets, this will also be handled accordingly.

At the moment, the status of prompting support is checked whenever the
AppArmor backend prepares profiles. This is okay, since AppArmor support
for prompting depends on kernel and parser features, which are only
probed once after snapd starts. However, to ensure that the same
supported value is used even if that were not the case, and in case we
wish to only use the prompt prefix for some snaps or interfaces, we may
wish to embed whether to use the prompt prefix in the AppArmor
Specification instead.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* features: adjust unsupported messages when checking apparmor features errors

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* interfaces: add prompting status to system key

Include whether prompting is supported and enabled as a single field in
the system key. This way, if `(supported && enabled)` changes, security
profiles will be regenerated when snapd starts up.

Currently, prompting support only changes when the AppArmor kernel or
parser features change, and profile regeneration is the only other place
where it is checked whether AppArmor prompting is supported and enabled.
Thus, including whether prompting is supported and enabled in the system
key ensures that security profiles are regenerated when necessary during
snapd startup, and only when necessary (e.g. not if support changed but
prompting flag remained disabled nor if flag changed but prompting
remained unsupported).

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* o/c/configcore: restart snapd when prompting value changes

When the prompting flag changes and the result entails that security
profiles should be regenerated, restart snapd to do so.

This is required iff prompting is supported and the experimental
apparmor-prompting flag changes -- if prompting is not supported,
prompting can't be used, so no need to regenerate profiles. Importantly,
prompting support is based entirely on the available AppArmor kernel and
parser features, and these are only probed once during snapd startup, so
prompting support cannot change (under the current implementation)
except when snapd restarts.

Since `(supported && enabled)` is part of the system key, and a restart
is only triggered if prompting is supported and the flag value changes
(which is equivalent to `(supported && enabled)`, since the supported
value cannot change while snapd is running), restarting after the flag
has changed causes the system key to be different, and thus to trigger a
security profile regeneration, as desired.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* interfaces,o/ifacestate: set prompting in apparmor spec

Rather than checking whether AppArmor prompting is supported and enabled
whenever the AppArmor backend is processing a snippet, instead include
that precomputed value in the Specification itself, and place it there
via `buildConfinementOptions`. This way, any spec created with the same
`confinementOptions` will make the same decision as to whether to
include prompt prefixes on relevant rules.

Currently, `buildConfinementOptions` simply checks whether prompting is
supported and enabled via the methods on `features.AppArmorPrompting`,
but ideally, this value would be looked up from either the system key
or by checking whether the prompting listener is running. It remains to
be seen how the value computed as part of the system key can be
guaranteed to be the same as that used elsewhere, either in
`buildConfinementOptions` or when deciding whether to start the
listener.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* o/c/configcore: request snapd restart whenever prompting flag changes

Previously, a snapd restart was only requested when the status of the
"apparmor-prompting" experimental feature flag changed and prompting was
supported. However, since prompting support is dependent on AppArmor
kernel and parser features which are probed only once during startup,
and systems which do not use vendored AppArmor may have had an update to
the system AppArmor package which newly supports AppArmor prompting, it
is safer to request a restart of snapd to re-check for prompting
support.

This way, if one is enabling prompting for the first time on a system
without prompting support, they can have snapd installed, update their
kernel or apparmor installation to support prompting, and then set the
prompting flag to enable prompting without needing to manually restart
snapd.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* interfaces: support optional trailing space after ###PROMPT###

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

i/apparmor: move promptReplacer definition to before its use

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: add test of restart behavior when setting experimental.apparmor-prompting

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: refactor prompting test to reset failed count and safely check for restarts

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

tests: add shellcheck exception for apparmor prompting flag restart test

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: check that snapd PID != 0 and use snap changes to wait for feature change to complete

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: check for start-limit-hit before calling reset-failed

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: add ubuntu core to apparmor prompting flag restart test

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: check apparmor-prompting value after setting it unchanged

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* Revert "tests: check for start-limit-hit before calling reset-failed"

This reverts commit bea68516c3287fa44d6718f0794484746ae99ac5.

* tests: check systemd start-limit-hit when apparmor-prompting flag changed

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* o/configstate/configcore: add unit tests for doExperimentalApparmorPromptingDaemonRestart

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* i/builtin: add missing prompt prefix and adjust test

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* i/apparmor: add test for prompt prefix substitution

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* many: pass prompting value into system key functions

As such, we now precompute whether prompting is supported and enabled in
`InterfaceManager.StartUp()`, store it in the `InterfaceManager`
instance, and pass it into the call to `WriteSystemKey()`.

Additionally, we make `buildConfinementOptions` a method of
`InterfaceManager`, thus eliminating the need to check within the system
key functions whether prompting is supported and enabled.

However, there remains a problem that `snap run` calls
`SystemKeyMismatch()`, which previously invoked
`apparmor.ParserFeatures()` via `AppArmorPrompting.IsSupported()`, and
now calls `AppArmorPrompting.IsSupported()` directly and passes the
result into `SystemKeyMismatch()`. In either case, we really want this
to be avoided if at all possible, since `snap run` does not have access
to the cached value from the `InterfaceManager`, and thus must invoke
the `apparmor_parser` binary to check parser features whenever we want
to run any snap.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* many: don't probe parser features when checking system key mismatch

Since `snap run` calls `SystemKeyMismatch()`, we want to avoid needing
to call `AppArmorPrompting.IsSupported()` if at all possible, since this
calls `apparmor.ParserFeatures()`, which executes the `apparmor_parser`
binary. We can and should call `AppArmorPrompting.IsSupported()` when
writing the system key, but not when checking for a mismatch.

The system key written to disk should correctly hold the list of kernel
and parser features, the parser mtime, and whether or not prompting was
previously supported and enabled. We can check whether apparmor parser
features have changed by checking the parser mtime, without needing to
probe parser features -- this optimization is already used by
`SystemKeyMismatch()`. If we knew whether prompting was previously
supported (regardless of whether it was enabled), then so long as the
parser and kernel features are unchanged, we know that prompting support
is also unchanged.

Thus, if we add a second prompting-related field to the system key, this
one storing whether prompting is supported (ignoring enabled), we can
check if prompting support is unchanged without needing to call
`AppArmorPrompting.IsSupported()`.

Furthermore, `SystemKeyMismatch()` is the function in question, and if
there is any mismatch detected, it should return such as soon as
possible, regardless of what the mismatch is. Therefore, if we know that
either kernel or parser features have changed, then we can immediately
return that there is a mismatch, and we don't need to check whether
those feature changes affect prompting support.

Therefore, the new cases which we must worry about when checking for a
system key mismatch are the following, when all other system key fields
are unchanged (note that prompting must be supported in order to be
supported&&enabled):

1. supported: F, supported&&enabled: F, newFlag: F, mismatch: F
2. supported: F, supported&&enabled: F, newFlag: T, mismatch: F
3. supported: T, supported&&enabled: F, newFlag: F, mismatch: F
4. supported: T, supported&&enabled: F, newFlag: T, mismatch: T
5. supported: T, supported&&enabled: T, newFlag: F, mismatch: T
6. supported: T, supported&&enabled: T, newFlag: T, mismatch: F

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* interfaces: fix test string formatting

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* o/configstate/configcore: adjust prompting-related comments

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: increase prompting check_snapd_restarted timeout and add systemd show

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: reset start limit when checking if snapd restarted after prompting change

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* many: add system key extra data to hold prompting enabled status

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* many: only store one apparmor prompting value in system key

When checking for a system key mismatch, use the stored AppArmor
parser features from the system key on disk (along with the kernel
features from the newly-generated key) to check whether prompting is
supported, and AND that with the `AppArmorPrompting` value passed in
with the `SystemKeyExtraData`. If the kernel or parser features have
changed, the system key will be a mismatch anyway, so it is perfectly
safe to use the existing parser features to check for prompting support.

As such, the functions to check for prompting support have been moved
from `features` to `sandbox/apparmor`, and the support check has been
separated from the call to get `ParserFeatures()` and
`KernelFeatures()`, so that the values from the system key can be passed
in instead of invoking those functions.

Using the system key's stored parser and kernel features, there is no
need to save whether prompting is supported as part of the system key,
simplifying the key and the logic used to set the prompting value.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: explicitly install jq in apparmor-prompting-flag-restart test

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* many: consolidate checks for apparmor prompting support

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* interfaces,s/apparmor: use features struct when checking prompting support

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: improve logging in apparmor-prompting-flag-restart test

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

* tests: fix prompting flag restart test on core18

For some reason, when snapd fails due to start-limit-hit on core18, the
snapd.failure.service starts and acquires the state lock, thus
preventing snapd from successfully becoming "active" again and leaving
it retrying at "activating". It is unclear why this happens on core18
and not elsewhere.

As a fix, when resetting the start limit, stop snapd.failure.service
manually to ensure that snapd can successfully start.

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>

---------

Signed-off-by: Oliver Calder <oliver.calder@canonical.com>
2024-06-11 18:13:00 +01:00
Valentin David
d25e47407a tests/main/snapd-snap: stop testing building of snapd snap on 14.04 (#14030)
Not very useful to build snapd snap from 14.04 given it has to use
lxd. The VMs for 14.04 are not enough. So let's disable the test.
2024-06-05 13:27:29 +02:00
Sergio Costas
1e0d03f761 api-snaps: add refresh-observe access to /v2/snaps/{name} (#13931)
Access to /v2/snaps/{name} is required for snap-refresh-observe
because it is needed to get the path for the XXXXX.desktop file,
which is needed for the icon and the visible name.

It should not be a problem because /v2/snaps is already
enabled.
2024-06-05 12:46:07 +02:00
Zeyad Yasser
3fc2456b9c run-checks: skip high-level tests requirement for interfaces with a standalone test (#14033)
* run-checks: skip high-level tests requirement for interfaces with a standalone test

interfaces-many-{core,snap}-provided tests are doing minimal testing for
all interfaces. This became one of the slowest tests that it started to timeout.

A check is added to relax the requirement for high-level tests and
skip if a standalone test already exists for the interface which at
least connects and disconnects the interface.

The requirement can be relaxed further in the future to skip the
connect/disconnect checks allowing more tests to be skipped.

Signed-off-by: Zeyad Gouda <zeyad.gouda@canonical.com>

* run-checks: relax interface checks and error on redundant tests

Signed-off-by: Zeyad Gouda <zeyad.gouda@canonical.com>

* tests: s/interfaces-input/interfaces-raw-input

Signed-off-by: Zeyad Gouda <zeyad.gouda@canonical.com>

---------

Signed-off-by: Zeyad Gouda <zeyad.gouda@canonical.com>
2024-06-05 12:12:51 +02:00
Andrew Phelps
e532d3f8ae daemon: make sure to re-pin validation sets that were already pinned when enforcing new validation sets (#13989)
* daemon: make sure to re-pin validation sets that were already pinned when enforcing new validation sets

* tests: update snap-refresh-enforce to verify that validation sets do not become unpinned when enforcing new sets
2024-06-03 17:26:59 +02:00