summaryrefslogtreecommitdiffstats
path: root/wiki/src/contribute/release_process/test/setup.mdwn
blob: a20d0cc5a783ce6f6aaf5a083b18dc95e9c51ef4 (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
[[!meta title="Test suite installation and setup"]]

Here's how to set up an environment to run our automated test suite.
Alternatively, you way want to use the `tails::tester` class from the
[[!tails_gitweb_repo puppet-tails]] Puppet module.

Once you have a working environment, see [[test/usage]].

[[!toc levels=2]]

Install dependencies
====================

First of all, one needs a Debian Stretch system with:

 * the `non-free` APT component enabled;
 * the official backports repository configured.

The following packages are necessary on Debian Stretch:

    sudo apt update && \
    sudo apt install \
        cucumber \
        devscripts \
        dnsmasq-base \
        gawk \
        git \
        i18nspector \
        libav-tools \
        libcap2-bin \
        libsikulixapi-java \
        libvirt-clients \
        libvirt-daemon-system \
        libvirt-dev \
        libvirt0 \
        obfs4proxy \
        openssh-server \
        ovmf \
        pry \
        python-jabberbot \
        python-potr \
        qemu-kvm \
        qemu-system-common \
        qemu-system-x86 \
        qemu-utils \
        redir \
        ruby-guestfs \
        ruby-json \
        ruby-libvirt \
        ruby-net-irc \
        ruby-packetfu \
        ruby-rb-inotify \
        ruby-rjb \
        ruby-rspec \
        ruby-test-unit \
        seabios \
        tcpdump \
        tcplay \
        tor \
        unclutter \
        virt-viewer \
        x11vnc \
        tigervnc-viewer \
        x264 \
        xvfb \
        && \
    sudo service libvirtd restart
        
Other requirements
==================

Synchronized clock
------------------

The system running the test suite needs an accurate clock since we
sync the clock from the host to the Tails guest after a background
snapshot restore to appease Tor.

You might want to enable `systemd-timesyncd.service` or your favorite
time synchronization tool for this.

File permissions
----------------

The user that runs QEMU (via libvirt) needs read-access at least to
the content of `features/misc_files/` in the Git checkout.

AppArmor tweaks
---------------

If libvirt has the `apparmor` security driver enabled:

* you may need to add the `/tmp/TailsToaster/TailsToasterStorage/*
  rw,` line to `/etc/apparmor.d/libvirt/TEMPLATE.qemu`, in the
  `profile LIBVIRT_TEMPLATE` section.

Special use cases
=================

Access the system under test with VNC
-------------------------------------

If you're running the test suite in a nested environnement, install
`tigervnc-viewer` on the bare metal level-0 host. Then you can use vncviewer's
`-via` option so that it automatically setup a ssh tunnel to your first level
test suite domain for you and display the Tails VM. E.g.
where `$DISPLAY` is the display given to you by `run_test_suite` (often 0):

    vncviewer -viewonly -via user@level0 localhost:$DISPLAY