A package for performing tests against a Malcolm system
Project description
Malcolm-Test
Package source layout (under src/malcolm_test
)
- 🐍
malcolm_test.py
- A Python script for running Malcolm in a VM with virter (see below) - 🐍
__init__.py
- Python package definition file - 🗁
virter/
- A directory structure containing TOML files for provisioning the virter VMs in which Malcolm will run. Its subdirectories are arranged thusly:- 🗁
debian-12/
- A directory matching the name of the virter image (supplied tomalcolm_test.py
with the-i
/--image
argument)- 🗁
init/
- TOML files for the initial steps of provisioning the OS (before setting up and starting Malcolm) - 🗁
fini/
- TOML files for the final stages of provisioning the OS (after shutting down Malcolm)
- 🗁
- 🗁
malcolm-init/
- Distribution-agnostic provisioning TOML files for setting up Malcolm prior to starting it - 🗁
malcolm-fini/
- Distribution-agnostic provisioning TOML files for tearing down Malcolm after tests are complete
- 🗁
- 🗁
tests/
- A directory structure containing the test definitions, built using the pytest framework
malcolm_test.py
malcolm_test.py
is a Python script for Linux that uses virter (a command line tool for simple creation and cloning of virtual machines) to run an instance of Malcolm against which automated system tests can be run.
Usage
usage: malcolm_test.py <arguments>
options:
--verbose, -v Increase verbosity (e.g., -v, -vv, etc.)
-r [true|false], --rm [true|false]
Remove virtual Malcolm instance after execution is complete
Malcolm Git repo:
-g <string>, --github-url <string>
Malcolm repository url (e.g., https://github.com/idaholab/Malcolm)
-b <string>, --github-branch <string>
Malcolm repository branch (e.g., main)
Virtual machine specifications:
-c <integer>, --cpus <integer>
Number of CPUs for virtual Malcolm instance
-m <integer>, --memory <integer>
System memory (GB) for virtual Malcolm instance
-d <integer>, --disk <integer>
Disk size (GB) for virtual Malcolm instance
-i <string>, --image <string>
Malcolm virtual instance base image name (e.g., debian-12)
--image-user <string>
Malcolm virtual instance base image username (e.g., debian)
--vm-name-prefix <string>
Prefix for Malcolm VM name (e.g., malcolm)
--existing-vm <string>
Name of an existing virter VM to use rather than starting up a new one
--vm-provision [true|false]
Perform VM provisioning
--vm-provision-path <string>
Path containing subdirectories with TOML files for VM provisioning (e.g., /home/user/Malcolm-Test/virter)
Malcolm runtime configuration:
--container-image-file <string>
Malcolm container images .tar.xz file for installation (instead of "docker pull")
-s [true|false], --start [true|false]
Start Malcolm once provisioning is complete (default true)
--sleep <integer> Seconds to sleep after init before starting Malcolm (default 30)
Example
with INFO-level -vv
verbosity, output reduced for length
2024-10-25 12:42:51 INFO: /home/user/Malcolm-Test/malcolm_test.py
2024-10-25 12:42:51 INFO: Arguments: ['-vv', '--rm', '--github-url', 'https://github.com/idaholab/Malcolm', '--github-branch', 'main']
2024-10-25 12:42:51 INFO: Arguments: Namespace(verbose=20, removeAfterExec=True, repoUrl='https://github.com/idaholab/Malcolm', repoBranch='main', vmCpuCount=8, vmMemoryGigabytes=31, vmDiskGigabytes=64, vmImage='debian-12', vmImageUsername='debian', vmNamePrefix='malcolm', vmExistingName='', vmProvision=True, vmProvisionPath='/home/user/Malcolm-Test/virter', containerImageFile='', startMalcolm=True, postInitSleep=30)
2024-10-25 12:42:51 INFO: ['virter', 'vm', 'run', 'debian-12', '--id', '126', '--name', 'malcolm-126', '--vcpus', '8', '--memory', '31GB', '--bootcapacity', '64GB', '--user', 'debian', '--wait-ssh']
2024-10-25 12:43:04 INFO: malcolm-126
2024-10-25 12:43:04 INFO: ['virter', 'vm', 'exec', 'malcolm-126', '--provision', '/home/user/Malcolm-Test/virter/debian-12/init/00-apt-init.toml', '--set', 'env.VERBOSE=false', '--set', 'env.REPO_URL=https://github.com/idaholab/Malcolm', '--set', 'env.REPO_BRANCH=main']
2024-10-25 12:44:27 INFO: malcolm-126 out: Linux malcolm-126 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64
…
2024-10-25 12:44:27 INFO: malcolm-126 out: Installing system packages...
…
2024-10-25 13:03:37 INFO: malcolm-126 out: Pulling Malcolm container images...
…
2024-10-25 13:05:11 INFO: malcolm-126 out: Waiting for Malcolm to become ready...
2024-10-25 13:06:34 INFO: Malcolm is started and ready to process data
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
malcolm_test-0.1.0.tar.gz
(17.1 kB
view details)
Built Distribution
File details
Details for the file malcolm_test-0.1.0.tar.gz
.
File metadata
- Download URL: malcolm_test-0.1.0.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95fc005b6768a9e3a02426918df93d3d04d613e13f44fedd9f2a4d9f45f7a29c |
|
MD5 | 5d61ad01e64179a88be9e20d870d1765 |
|
BLAKE2b-256 | dfb0aa9917ec21fcb297b7b33cd698b40fdcd2465c162e378a3542fba8eac685 |
File details
Details for the file malcolm_test-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: malcolm_test-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fd1defa1f3e86141ee5e10a78a3131dbcffe14736316f8875dc8f7ee7d3554d |
|
MD5 | 8ce65ebb70d83f30eac3ab2c7ad8d475 |
|
BLAKE2b-256 | 2a3dbc5cc308221c077aa2b3fca4c43ddcf980e884b154ade8172d923878ac09 |