mirror of
https://github.com/token2/snapd.git
synced 2026-03-13 11:15:47 -07:00
tests: start using remote tools from snapd-testing-tools project in nested tests (#12074)
* Start using remote tools in nested tests This change introduces the new tools for remote commands from the snapd-testing-tools project This change starts using the remote.exec which replaces the tests.nested exec and the remote.push by the tests.nested copy The new remote commands have the same implementation then the tests.nested but those include tests and are being used in other projects successfully. * fix inclusive wording * adding missing placeholder file * add binaries for remote tools * Fix how remote tools are linked * replace nested_exec by remote.exec * Squashed 'tests/lib/external/snapd-testing-tools/' changes from 3b56339b88..fea2bac306 fea2bac306 fix shellcheck 0b5d8cfe51 fix wrong spelling 05fd783a65 Allow to use a custom config file for the remote configuration b438b3ef03 Skip remote tests on kinetic because no sshpass f323ee2c9c Add support for ubuntu 22.10 and remove 21.10 6fe0fa0e74 Fix shellcheck in tests.pkgs a1f7a72ce1 Add disable refresh 507f8bd7c7 improve refresh and wait-for for remote tools 5e7e210e52 Fix refresh_core_base function e798cb8cca Disable refreshes to make the full refresh e5a20b9945 initial wait for ssh before checking refreshes a20c608202 Adding more logs for refresh status and fix error waiting for ssh f57cd75f09 New default values for wait-for efdc966b7d More logs in remote refresh 83703b516d Both refreshes unified and more details in logs 32df7bfcc3 Reboot detection for refreshes cf7fea5f57 Improving remote.wait-for and remote.refresh tools 35b2afcd19 adding more logging for refresh and wait-for remote tools 20547c2347 New remote and systemd tools with tests (#30) b8eb20d069 Merge pull request #31 from snapcore/run-without-spread 5b8f214d03 Fix spelling 4fe5d64a5c Include a comment in the setup.sh script 03feb2ce2b fix bash error 84e70d2ac5 Make tools work when are not in the spread env 54909c304d Merge pull request #29 from snapcore/udpate-os-query-new-systems cc1729c2f4 preserve size for amazon-linux bb3d8db60e preserve size for centos d1089d5ce3 Fixing the tests 47793a6465 Fix auto-merge problem f50be4ac5e Merge branch 'main' into udpate-os-query-new-systems 1a40a224c9 os.query tool cli simplified 9b7b4e9bf1 Merge pull request #28 from snapcore/add-centos-9-support 7fe2087423 Add support for centos-9 64a830b933 Merge pull request #27 from snapcore/improve-log-analyzer 7fe27d4aea Improve log analyzer utility 207536268e Merge pull request #19 from snapcore/new-spread-manager 2f2ff2e282 Update spread manager to support csv 33a44ca3be Merge branch 'main' into new-spread-manager b4654950d4 Merge pull request #26 from snapcore/support-csv-for-expressions 3250bbd885 Support expressions with comma separation 2540135b90 Merge pull request #25 from snapcore/add-indent-to-log-parser 2536b0f070 Minor improvements in log-parser and log-analyzer based con review comments 84dc8092b1 Merge pull request #24 from snapcore/improve-log-parser 515770b3bf Add support for fedora-35 875c29b5ce Updated results with latest log-parser changes d27f2bcdb7 Fix log-parser b2cce1fcce fix wording 14d15e4fe4 Fixes for log-parser and changes for log analyzer 438d92d241 Log analyzer updated to support reexecute in all the scenarios 1c9dff58ff Merge pull request #23 from snapcore/improve-log-parser cc7ee488d1 Fix shellcheck 324b99e719 revert change in log-analyzer test f746f40ebe Fix shellcheck 2d7dbbe1bd Fix spelling 728dd64c2c Last set of changes for log analizer tools bf389dcd01 New fixes for log parses 6b2b56afc3 Fix another shellcheck 56163e170b Fix shellcheck d96ab8094f Merge branch 'main' into new-spread-manager 60fb99f02f new dir task5 259a7e188c Fix spread test e674234454 New spread-manager tool git-subtree-dir: tests/lib/external/snapd-testing-tools git-subtree-split: fea2bac306a463f4c97f79a6e934e85ec00e804c * Using a custom remote configuration file This is to avoid issues when the helpers try to use the remote tools * Squashed 'tests/lib/external/snapd-testing-tools/' changes from fea2bac306..4a994e96b3 4a994e96b3 Fix new config path in tests git-subtree-dir: tests/lib/external/snapd-testing-tools git-subtree-split: 4a994e96b33d5966053645ec87563d0ea8fd019b * Squashed 'tests/lib/external/snapd-testing-tools/' changes from 4a994e96b3..53e6c8f315 53e6c8f315 Use the new ubuntu kinetic image git-subtree-dir: tests/lib/external/snapd-testing-tools git-subtree-split: 53e6c8f315fbdd379b59d6458eb869e68f34c9b3 * fix tests with wrong use of the new tools * Update test with remote.push command This test seems to be updated during last merge. * Update sprad.yaml which fails on debug * Update the number of workers for nested tests on uc20 and uc22 * Squashed 'tests/lib/external/snapd-testing-tools/' changes from 53e6c8f315..4d6088ec8c 4d6088ec8c Fix shellcheck in spread-manager util edb4f3f51b fix shell check errors in remote tools git-subtree-dir: tests/lib/external/snapd-testing-tools git-subtree-split: 4d6088ec8c5d43e7b4d45faf904978175c418120 * Squashed 'tests/lib/external/snapd-testing-tools/' changes from 4d6088ec8c..f46dccb464 f46dccb464 Fix sshpass command in remote.exec git-subtree-dir: tests/lib/external/snapd-testing-tools git-subtree-split: f46dccb464f3a82932c0a89ecabffb6ef84ec6df
This commit is contained in:
@@ -7,88 +7,88 @@ systems: [ubuntu-20.04-64]
|
||||
|
||||
execute: |
|
||||
echo "Wait for the system to be seeded first"
|
||||
tests.nested exec "sudo snap wait system seed.loaded"
|
||||
remote.exec "sudo snap wait system seed.loaded"
|
||||
|
||||
echo "Wait for device initialisation to be done"
|
||||
tests.nested exec "retry --wait 5 -n 10 sh -c 'snap changes | MATCH \"Done.*Initialize device\"'"
|
||||
remote.exec "retry --wait 5 -n 10 sh -c 'snap changes | MATCH \"Done.*Initialize device\"'"
|
||||
|
||||
echo "Ensure 'snap install' works"
|
||||
# The install command could cause a ssh break, so || true is used
|
||||
# and then we check the installation was completed successfully
|
||||
tests.nested exec "sudo snap install test-snapd-sh" || true
|
||||
remote.exec "sudo snap install test-snapd-sh" || true
|
||||
|
||||
echo "Ensure 'snap list' works and test-snapd-sh snap is installed"
|
||||
tests.nested exec "snap list" | MATCH test-snapd-sh
|
||||
remote.exec "snap list" | MATCH test-snapd-sh
|
||||
|
||||
echo "Ensure 'snap find' works"
|
||||
tests.nested exec "snap find test-snapd-sh" | MATCH ^test-snapd-sh
|
||||
remote.exec "snap find test-snapd-sh" | MATCH ^test-snapd-sh
|
||||
|
||||
echo "Ensure 'snap info' works"
|
||||
tests.nested exec "snap info test-snapd-sh" | MATCH '^name:\ +test-snapd-sh'
|
||||
remote.exec "snap info test-snapd-sh" | MATCH '^name:\ +test-snapd-sh'
|
||||
|
||||
echo "Ensure 'snap remove' works"
|
||||
# The install command could cause a ssh break, so || true is used
|
||||
# and then we check the removal was completed successfully
|
||||
tests.nested exec "sudo snap remove test-snapd-sh" || true
|
||||
remote.exec "sudo snap remove test-snapd-sh" || true
|
||||
|
||||
echo "Ensure 'snap list' works and test-snapd-sh snap is removed"
|
||||
tests.nested exec "! snap list test-snapd-sh"
|
||||
remote.exec "! snap list test-snapd-sh"
|
||||
|
||||
echo "Ensure that recovery keys are not present in fresh install"
|
||||
tests.nested exec "test ! -f /var/lib/snapd/device/fde/recovery.key"
|
||||
tests.nested exec "test ! -f /var/lib/snapd/device/fde/reinstall.key"
|
||||
remote.exec "test ! -f /var/lib/snapd/device/fde/recovery.key"
|
||||
remote.exec "test ! -f /var/lib/snapd/device/fde/reinstall.key"
|
||||
|
||||
# single key for ubuntu-data and ubuntu-save
|
||||
test "$(tests.nested exec "sudo cryptsetup luksDump /dev/vda4 |grep Key:" | wc -l)" = "1"
|
||||
test "$(tests.nested exec "sudo cryptsetup luksDump /dev/vda5 |grep Key:" | wc -l)" = "1"
|
||||
test "$(remote.exec "sudo cryptsetup luksDump /dev/vda4 |grep Key:" | wc -l)" = "1"
|
||||
test "$(remote.exec "sudo cryptsetup luksDump /dev/vda5 |grep Key:" | wc -l)" = "1"
|
||||
|
||||
echo "Ensure 'snap debug show-keys' works as root"
|
||||
tests.nested exec "sudo snap recovery --show-keys" > show-keys.out
|
||||
remote.exec "sudo snap recovery --show-keys" > show-keys.out
|
||||
MATCH 'recovery:\s+[0-9]{5}-[0-9]{5}-[0-9]{5}-[0-9]{5}-[0-9]{5}-[0-9]{5}-[0-9]{5}-[0-9]{5}' < show-keys.out
|
||||
# reinstall key is not generated anymore
|
||||
# show-keys should be idempotent, so let's call it multiple times
|
||||
tests.nested exec "sudo snap recovery --show-keys" > show-keys-again.out
|
||||
remote.exec "sudo snap recovery --show-keys" > show-keys-again.out
|
||||
# outputs are identical
|
||||
diff -u show-keys.out show-keys-again.out
|
||||
|
||||
# key files are present
|
||||
tests.nested exec "test -f /var/lib/snapd/device/fde/recovery.key"
|
||||
tests.nested exec "test ! -f /var/lib/snapd/device/fde/reinstall.key"
|
||||
remote.exec "test -f /var/lib/snapd/device/fde/recovery.key"
|
||||
remote.exec "test ! -f /var/lib/snapd/device/fde/reinstall.key"
|
||||
# and each partition has 2 keys now
|
||||
test "$(tests.nested exec "sudo cryptsetup luksDump /dev/vda4 |grep Key:" | wc -l)" = "2"
|
||||
test "$(tests.nested exec "sudo cryptsetup luksDump /dev/vda5 |grep Key:" | wc -l)" = "2"
|
||||
test "$(remote.exec "sudo cryptsetup luksDump /dev/vda4 |grep Key:" | wc -l)" = "2"
|
||||
test "$(remote.exec "sudo cryptsetup luksDump /dev/vda5 |grep Key:" | wc -l)" = "2"
|
||||
|
||||
echo "But not as user (normal file permissions prevent this)"
|
||||
if tests.nested exec "snap recovery --show-keys"; then
|
||||
if remote.exec "snap recovery --show-keys"; then
|
||||
echo "snap recovery --show-keys should not work as a user"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# the remove API isn't exposed by snap recovery yet
|
||||
tests.nested exec "sudo snap install --devmode --edge test-snapd-curl"
|
||||
tests.nested exec "sudo test-snapd-curl.curl --unix-socket /run/snapd.socket -D- -d '{\"action\":\"remove\"}' http://localhost/v2/system-recovery-keys"
|
||||
remote.exec "sudo snap install --devmode --edge test-snapd-curl"
|
||||
remote.exec "sudo test-snapd-curl.curl --unix-socket /run/snapd.socket -D- -d '{\"action\":\"remove\"}' http://localhost/v2/system-recovery-keys"
|
||||
|
||||
# keys were removed
|
||||
tests.nested exec "test ! -f /var/lib/snapd/device/fde/recovery.key"
|
||||
tests.nested exec "test ! -f /var/lib/snapd/device/fde/reinstall.key"
|
||||
remote.exec "test ! -f /var/lib/snapd/device/fde/recovery.key"
|
||||
remote.exec "test ! -f /var/lib/snapd/device/fde/reinstall.key"
|
||||
# back to having just one key
|
||||
test "$(tests.nested exec "sudo cryptsetup luksDump /dev/vda4 |grep Key:" | wc -l)" = "1"
|
||||
test "$(tests.nested exec "sudo cryptsetup luksDump /dev/vda5 |grep Key:" | wc -l)" = "1"
|
||||
test "$(remote.exec "sudo cryptsetup luksDump /dev/vda4 |grep Key:" | wc -l)" = "1"
|
||||
test "$(remote.exec "sudo cryptsetup luksDump /dev/vda5 |grep Key:" | wc -l)" = "1"
|
||||
|
||||
echo "Check that the serial backed up to save is as expected"
|
||||
tests.nested exec 'cat /var/lib/snapd/save/device/asserts-v0/serial/'"$(tests.nested get model-authority)"'/pc/*/active' >serial.saved
|
||||
tests.nested exec snap model --serial --assertion >serial
|
||||
remote.exec 'cat /var/lib/snapd/save/device/asserts-v0/serial/'"$(tests.nested get model-authority)"'/pc/*/active' >serial.saved
|
||||
remote.exec snap model --serial --assertion >serial
|
||||
cmp serial serial.saved
|
||||
|
||||
echo "Check that we go the install log after the transition to run mode"
|
||||
tests.nested exec "test -e /var/log/install-mode.log.gz"
|
||||
remote.exec "test -e /var/log/install-mode.log.gz"
|
||||
|
||||
echo "Transparently verify that the format is gzip"
|
||||
tests.nested exec "zcat /var/log/install-mode.log.gz" | MATCH 'installing a new system'
|
||||
remote.exec "zcat /var/log/install-mode.log.gz" | MATCH 'installing a new system'
|
||||
|
||||
echo "Check that we go the timings after the transition to run mode"
|
||||
tests.nested exec "test -e /var/log/install-timings.txt.gz"
|
||||
tests.nested exec "zcat /var/log/install-timings.txt.gz" > install-timings.txt
|
||||
remote.exec "test -e /var/log/install-timings.txt.gz"
|
||||
remote.exec "zcat /var/log/install-timings.txt.gz" > install-timings.txt
|
||||
MATCH "Install the system" < install-timings.txt
|
||||
MATCH "^seed" < install-timings.txt
|
||||
MATCH "Mark system seeded" < install-timings.txt
|
||||
@@ -96,5 +96,5 @@ execute: |
|
||||
MATCH "ensure=install-system" < install-timings.txt
|
||||
|
||||
echo "Check seeding info"
|
||||
tests.nested exec "snap debug seeding" | MATCH "^seeded: +true"
|
||||
tests.nested exec "snap debug seeding" | MATCH "^preseeded: +false"
|
||||
remote.exec "snap debug seeding" | MATCH "^seeded: +true"
|
||||
remote.exec "snap debug seeding" | MATCH "^preseeded: +false"
|
||||
|
||||
Reference in New Issue
Block a user