qemu-command-builder 11.0.0-1

Type safe command line builder for qemu
Documentation
use pretty_assertions::assert_eq;
use qemu_command_builder::args::memory::{Memory, MemoryUnit};
use qemu_command_builder::to_command::ToCommand;
use std::str::FromStr;

#[test]
fn memory_displays_canonical_hotplug_form() {
    let memory = Memory::builder().mem(MemoryUnit::GigaBytes(1)).slots(3).maxmem(MemoryUnit::GigaBytes(4)).build();

    assert_eq!("1G,slots=3,maxmem=4G", memory.to_args()[0]);
}

#[test]
fn memory_accepts_size_prefix_alias() {
    let parsed = Memory::from_str("size=1G,slots=3,maxmem=4G").unwrap();

    assert_eq!("1G,slots=3,maxmem=4G", parsed.to_args()[0]);
    assert_eq!(parsed, Memory::from_str(&parsed.to_args()[0]).unwrap());
}

#[test]
fn memory_parses_hotplug_options_in_any_order() {
    let parsed = Memory::from_str("1024M,maxmem=4G,slots=8").unwrap();

    assert_eq!("1024M,slots=8,maxmem=4G", parsed.to_args()[0]);
    assert_eq!(parsed, Memory::from_str(&parsed.to_args()[0]).unwrap());
}