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.
This commit is contained in:
Christian Breunig 2025-01-03 15:00:49 +01:00
parent 7720dfa743
commit dabd5b2a6a

View File

@ -44,6 +44,7 @@ import logging
import re import re
import tomli import tomli
import shutil import shutil
import json
from io import BytesIO from io import BytesIO
from datetime import datetime from datetime import datetime
@ -97,9 +98,17 @@ parser.add_argument('--qemu-cmd', help='Only generate QEMU launch command',
args = parser.parse_args() args = parser.parse_args()
# This is what we requested the build to contain
with open('data/defaults.toml', 'rb') as f: with open('data/defaults.toml', 'rb') as f:
vyos_defaults = tomli.load(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): class StreamToLogger(object):
""" """
Fake file-like stream object that redirects writes to a logger instance. Fake file-like stream object that redirects writes to a logger instance.
@ -538,6 +547,16 @@ try:
c.expect('kvm') c.expect('kvm')
c.expect(op_mode_prompt) 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 # Ensure ephemeral key is loaded
vyos_kernel_key = 'VyOS build time autogenerated kernel key' vyos_kernel_key = 'VyOS build time autogenerated kernel key'
c.sendline(f'show log kernel | match "{vyos_kernel_key}"') c.sendline(f'show log kernel | match "{vyos_kernel_key}"')