firecracker
40 строк · 1.1 Кб
1#!/usr/bin/env python3
2# Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3# SPDX-License-Identifier: Apache-2.0
4
5# pylint:disable=invalid-name
6
7"""
8Test all the ext4 rootfs in the current directory
9"""
10
11import os
12import sys
13from pathlib import Path
14
15# Hack to be able to import testing framework functions.
16sys.path.append(os.path.join(os.getcwd(), "tests"))
17
18# pylint: disable=wrong-import-position
19from framework.artifacts import kernels
20from framework.microvm import MicroVMFactory
21from host_tools.cargo_build import get_firecracker_binaries
22
23# pylint: enable=wrong-import-position
24
25kernels = list(kernels("vmlinux-*"))
26# Use the latest guest kernel
27kernel = kernels[-1]
28
29vmfcty = MicroVMFactory(*get_firecracker_binaries())
30# (may take a while to compile Firecracker...)
31
32for rootfs in Path(".").glob("*.ext4"):
33print(f">>>> Testing {rootfs}")
34uvm = vmfcty.build(kernel, rootfs)
35uvm.spawn()
36uvm.add_net_iface()
37uvm.basic_config()
38uvm.start()
39rc, stdout, stderr = uvm.ssh.run("cat /etc/issue")
40print(rc, stdout, stderr)
41