summaryrefslogtreecommitdiffhomepage
path: root/test/test-manager/docs/config.md
blob: f86315241d61c2e50eaa7d41a152161cc47fdc91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Introduction

This document outlines the format of the configuration used by `test-manager` to perform end-to-end tests in virtualized environments.

# Format

The configuration is a JSON document with two values:
```json
{
    "mullvad_host": <optional string>,
    "vms": <document>
}
```

The configurable values are prone to change, and for the time being it is probably a good idea to get acquainted with the [Rust struct called "Config"](../src/config.rs) from which the configuration is serialized.
To get started, `test-manager` provides the `test-manager set` command to add and edit VM configurations.
It is also recommended to view the [example section](#Examples) further down this document.

# Location

The configuration is assumed to exist in `$XDG_CONFIG_HOME/mullvad-test/config.json` (most likely `$HOME/.config/mullvad-test/config.json`) on Linux and `$HOME/Library/Application Support/mullvad-test/config.json` on macOS.

# Examples

## Minimal

The minimal valid configuration does not contain any virtual machines
```json
{
    "mullvad_host": "stagemole.eu",
    "vms": { }
}
```

## Complete

A configuration containing one Debian 12 VM and one Windows 11 VM
```json
{
    "mullvad_host": "stagemole.eu",
    "vms": {
        "debian12": {
          "vm_type": "qemu",
          "image_path": "$VM_IMAGES/debian12.qcow2",
          "os_type": "linux",
          "package_type": "deb",
          "architecture": "x64",
          "provisioner": "ssh",
          "ssh_user": "test",
          "ssh_password": "test",
          "disks": [],
          "artifacts_dir": "/opt/testing",
          "tpm": false
        },
        "windows11": {
            "vm_type": "qemu",
            "image_path": "$VM_IMAGES/windows11.qcow2",
            "os_type": "windows",
            "package_type": null,
            "architecture": null,
            "provisioner": "noop",
            "ssh_user": null,
            "ssh_password": null,
            "disks": [
              "$TESTRUNNER_IMAGES/windows-test-runner.img"
            ],
            "artifacts_dir": "E:\\",
            "tpm": false
        }
    }
}
```