The magic command has to be run from inside Tails (#16289)
[tails.git] / features / usb_upgrade.feature
blob55375392c88b708a35b68b2241721706100bcd92
1 @product
2 Feature: Upgrading an old Tails USB installation
3   As a Tails user
4   If I have an old version of Tails installed on a USB device
5   and the USB device has a persistent partition
6   I want to upgrade Tails on it
7   and keep my persistent partition in the process
9   # An issue with this feature is that scenarios depend on each
10   # other. When editing this feature, make sure you understand these
11   # dependencies (which are documented below).
13   Scenario: Try cloning Tails to a too small partition
14     Given I have started Tails from DVD without network and logged in
15     And I temporarily create a 7200 MiB disk named "too-small-partition"
16     And I create a 500 MiB gpt partition labeled "Tails" with a vfat filesystem on disk "too-small-partition"
17     And I plug USB drive "too-small-partition"
18     When I start Tails Installer
19     Then I am told by Tails Installer that I "need to use a downloaded Tails ISO image"
21   # Installation method inspired by the usb-install-tails-greeter
22   # checkpoint, variations are using the old Tails USB image and a
23   # different device name ("old" instead of "__internal")
24   Scenario: Installing an old version of Tails to a pristine USB drive
25     Given a computer
26     And I create a 7200 MiB disk named "old"
27     And I plug USB drive "old"
28     And I write an old version of the Tails USB image to disk "old"
29     When I start Tails from USB drive "old" with network unplugged
30     Then the boot device has safe access rights
31     And Tails is running from USB drive "old"
32     And there is no persistence partition on USB drive "old"
33     And process "udev-watchdog" is running
34     And udev-watchdog is monitoring the correct device
35     And I shutdown Tails and wait for the computer to power off
37   # Depends on scenario: Installing an old version of Tails to a pristine USB drive
38   Scenario: Creating a persistent partition with the old Tails USB installation
39     Given a computer
40     And I start Tails from USB drive "old" with network unplugged and I login
41     Then Tails is running from USB drive "old"
42     And I create a persistent partition
43     And I take note of which persistence presets are available
44     Then a Tails persistence partition exists on USB drive "old"
45     And I shutdown Tails and wait for the computer to power off
47   # Depends on scenario: Creating a persistent partition with the old Tails USB installation
48   Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
49     Given a computer
50     And I start Tails from USB drive "old" with network unplugged and I login with persistence enabled
51     Then Tails is running from USB drive "old"
52     And all persistence presets are enabled
53     When I write some files expected to persist
54     And all persistent filesystems have safe access rights
55     And all persistence configuration files have safe access rights
56     And all persistent directories from the old Tails version have safe access rights
57     And I take note of which persistence presets are available
58     And I shutdown Tails and wait for the computer to power off
59     # XXX: how does guestfs work vs snapshots?
60     Then only the expected files are present on the persistence partition on USB drive "old"
62   # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
63   Scenario: Upgrading an old Tails USB installation from a Tails DVD
64     Given I have started Tails from DVD without network and logged in
65     And I clone USB drive "old" to a new USB drive "to_upgrade"
66     And I plug USB drive "to_upgrade"
67     When I upgrade Tails to USB drive "to_upgrade" by cloning
68     Then the running Tails is installed on USB drive "to_upgrade"
69     And I unplug USB drive "to_upgrade"
71   # Depends on scenario: Upgrading an old Tails USB installation from a Tails DVD
72   Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
73     Given a computer
74     And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
75     Then all persistence presets from the old Tails version are enabled
76     And Tails is running from USB drive "to_upgrade"
77     And the boot device has safe access rights
78     And the expected persistent files created with the old Tails version are present in the filesystem
79     And all persistent directories from the old Tails version have safe access rights
81   # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
82   Scenario: Upgrading an old Tails USB installation from another Tails USB drive
83     Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
84     And I log in to a new session
85     And I clone USB drive "old" to a new USB drive "to_upgrade"
86     And I plug USB drive "to_upgrade"
87     When I upgrade Tails to USB drive "to_upgrade" by cloning
88     Then the running Tails is installed on USB drive "to_upgrade"
89     And I unplug USB drive "to_upgrade"
90     And I unplug USB drive "__internal"
92   # Depends on scenario: Upgrading an old Tails USB installation from another Tails USB drive
93   Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
94     Given a computer
95     And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
96     Then all persistence presets from the old Tails version are enabled
97     And Tails is running from USB drive "to_upgrade"
98     And the boot device has safe access rights
99     And the expected persistent files created with the old Tails version are present in the filesystem
100     And all persistent directories from the old Tails version have safe access rights
102   Scenario: Upgrading Tails with Tails Upgrader through an incremental upgrade
103     Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
104     And Tails is fooled to think it is running version 1.0~test
105     And the file system changes introduced in version 1.1~test are not present
106     When the network is plugged
107     And Tor is ready
108     And all notifications have disappeared
109     Then I am proposed to install an incremental upgrade to version 1.1~test
110     And I can successfully install the incremental upgrade to version 1.1~test
111     Given I shutdown Tails and wait for the computer to power off
112     When I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
113     Then Tails is running version 1.1~test
114     And all persistence presets are enabled
115     And the file system changes introduced in version 1.1~test are present
116     # Our IUK sets a release date that can make Tor bootstrapping impossible
117     Given Tails system time is magically synchronized
118     When the network is plugged
119     And Tor is ready
120     And all notifications have disappeared
121     # Regression test on #8158 (i.e. the IUK's filesystem is not part of the Unsafe Browser's chroot)
122     And I successfully start the Unsafe Browser
123     Then the file system changes introduced in version 1.1~test are present in the Unsafe Browser's chroot