2 Feature: Upgrading an old Tails USB installation
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 Scenario: Installing an old version of Tails to a pristine USB drive
23 And the computer is set to boot from the old Tails DVD
24 And the network is unplugged
25 And I start the computer
26 When the computer boots Tails
27 And I log in to a new session
28 And all notifications have disappeared
29 And I create a 7200 MiB disk named "old"
30 And I plug USB drive "old"
31 When I install Tails to USB drive "old" by cloning
32 Then the running Tails is installed on USB drive "old"
33 But there is no persistence partition on USB drive "old"
34 And I unplug USB drive "old"
36 # Depends on scenario: Installing an old version of Tails to a pristine USB drive
37 Scenario: Creating a persistent partition with the old Tails USB installation
39 And I start Tails from USB drive "old" with network unplugged and I login
40 Then Tails is running from USB drive "old"
41 And I create a persistent partition
42 And I take note of which persistence presets are available
43 Then a Tails persistence partition exists on USB drive "old"
44 And I shutdown Tails and wait for the computer to power off
46 # Depends on scenario: Creating a persistent partition with the old Tails USB installation
47 Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
49 And I start Tails from USB drive "old" with network unplugged and I login with persistence enabled
50 Then Tails is running from USB drive "old"
51 And all persistence presets are enabled
52 When I write some files expected to persist
53 And all persistent filesystems have safe access rights
54 And all persistence configuration files have safe access rights
55 And all persistent directories from the old Tails version have safe access rights
56 And I take note of which persistence presets are available
57 And I shutdown Tails and wait for the computer to power off
58 # XXX: how does guestfs work vs snapshots?
59 Then only the expected files are present on the persistence partition on USB drive "old"
61 # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
62 Scenario: Upgrading an old Tails USB installation from a Tails DVD
63 Given I have started Tails from DVD without network and logged in
64 And I clone USB drive "old" to a new USB drive "to_upgrade"
65 And I plug USB drive "to_upgrade"
66 When I upgrade Tails to USB drive "to_upgrade" by cloning
67 Then the running Tails is installed on USB drive "to_upgrade"
68 And I unplug USB drive "to_upgrade"
70 # Depends on scenario: Upgrading an old Tails USB installation from a Tails DVD
71 Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
73 And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
74 Then all persistence presets from the old Tails version are enabled
75 And Tails is running from USB drive "to_upgrade"
76 And the boot device has safe access rights
77 And the expected persistent files created with the old Tails version are present in the filesystem
78 And all persistent directories from the old Tails version have safe access rights
80 # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
81 Scenario: Upgrading an old Tails USB installation from another Tails USB drive
82 Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
83 And I log in to a new session
84 And I clone USB drive "old" to a new USB drive "to_upgrade"
85 And I plug USB drive "to_upgrade"
86 When I upgrade Tails to USB drive "to_upgrade" by cloning
87 Then the running Tails is installed on USB drive "to_upgrade"
88 And I unplug USB drive "to_upgrade"
89 And I unplug USB drive "__internal"
91 # Depends on scenario: Upgrading an old Tails USB installation from another Tails USB drive
92 Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
94 And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
95 Then all persistence presets from the old Tails version are enabled
96 And Tails is running from USB drive "to_upgrade"
97 And the boot device has safe access rights
98 And the expected persistent files created with the old Tails version are present in the filesystem
99 And all persistent directories from the old Tails version have safe access rights
101 # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
102 Scenario: Upgrading an old Tails USB installation from an ISO image, running on the old version
104 And I clone USB drive "old" to a new USB drive "to_upgrade"
105 When I start Tails from USB drive "old" with network unplugged and I login
106 And I plug and mount a USB drive containing the Tails ISO
107 And I plug USB drive "to_upgrade"
108 And I upgrade Tails on USB drive "to_upgrade" from an ISO
109 Then the ISO's Tails is installed on USB drive "to_upgrade"
110 And I unplug USB drive "to_upgrade"
112 # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
113 Scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
114 Given I have started Tails from DVD without network and logged in
115 And I plug and mount a USB drive containing the Tails ISO
116 And I clone USB drive "old" to a new USB drive "to_upgrade"
117 And I plug USB drive "to_upgrade"
118 And I upgrade Tails on USB drive "to_upgrade" from an ISO
119 Then the ISO's Tails is installed on USB drive "to_upgrade"
120 And I unplug USB drive "to_upgrade"
122 # Depends on scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
123 Scenario: Booting a USB drive upgraded from ISO with persistence enabled
125 And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
126 Then all persistence presets from the old Tails version are enabled
127 And Tails is running from USB drive "to_upgrade"
128 And the boot device has safe access rights
129 And the expected persistent files created with the old Tails version are present in the filesystem
130 And all persistent directories from the old Tails version have safe access rights
132 Scenario: Upgrading Tails with Tails Upgrader through an incremental upgrade
133 Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
134 And Tails is fooled to think it is running version 1.0~test
135 And the file system changes introduced in version 1.1~test are not present
136 When the network is plugged
138 And all notifications have disappeared
139 Then I am proposed to install an incremental upgrade to version 1.1~test
140 And I can successfully install the incremental upgrade to version 1.1~test
141 Given I shutdown Tails and wait for the computer to power off
142 When I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
143 Then Tails is running version 1.1~test
144 And all persistence presets are enabled
145 And the file system changes introduced in version 1.1~test are present
146 # Our IUK sets a release date that can make Tor bootstrapping impossible
147 Given Tails system time is magically synchronized
148 When the network is plugged
150 And all notifications have disappeared
151 # Regression test on #8158 (i.e. the IUK's filesystem is not part of the Unsafe Browser's chroot)
152 And I successfully start the Unsafe Browser
153 Then the file system changes introduced in version 1.1~test are present in the Unsafe Browser's chroot