diff options
author | Christian Breunig <christian@breunig.cc> | 2025-01-03 15:00:49 +0100 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2025-01-03 17:00:52 +0100 |
commit | dabd5b2a6a6b9550439f9258a0a01dac2d0c0e60 (patch) | |
tree | 5eb6f7f5b1d85f969291aae8650d7a428a18dcd3 | |
parent | 7720dfa74309345fbbaf57e9bf83fb2a603264c6 (diff) | |
download | vyos-build-dabd5b2a6a6b9550439f9258a0a01dac2d0c0e60.tar.gz vyos-build-dabd5b2a6a6b9550439f9258a0a01dac2d0c0e60.zip |
Testsuite: T6999: validate content of /etc/os-release in target system
The file /etc/os-release is written during image build, but it's content is not
validated that it can be used by e.g. "lsb_release -a" command.
-rwxr-xr-x | scripts/check-qemu-install | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/check-qemu-install b/scripts/check-qemu-install index dc4bdd31..4eb5dd16 100755 --- a/scripts/check-qemu-install +++ b/scripts/check-qemu-install @@ -44,6 +44,7 @@ import logging import re import tomli import shutil +import json from io import BytesIO from datetime import datetime @@ -97,9 +98,17 @@ parser.add_argument('--qemu-cmd', help='Only generate QEMU launch command', args = parser.parse_args() +# This is what we requested the build to contain with open('data/defaults.toml', 'rb') as f: vyos_defaults = tomli.load(f) +# This is what we got from the build +with open('build/manifest.json', 'rb') as f: + manifest = json.load(f) + +vyos_version = manifest['build_config']['version'] +vyos_codename = manifest['build_config']['debian_distribution'] + class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. @@ -538,6 +547,16 @@ try: c.expect('kvm') c.expect(op_mode_prompt) + ################################################# + # Verify /etc/os-release via lsb_release + ################################################# + c.sendline('lsb_release --short --id 2>/dev/null') + c.expect('VyOS') + c.sendline('lsb_release --short --release 2>/dev/null') + c.expect(vyos_version) + c.sendline('lsb_release --short --codename 2>/dev/null') + c.expect(vyos_codename) + # Ensure ephemeral key is loaded vyos_kernel_key = 'VyOS build time autogenerated kernel key' c.sendline(f'show log kernel | match "{vyos_kernel_key}"') |