usb_upgrade.feature 8.84 KB
Newer Older
anonym's avatar
anonym committed
1
@product
anonym's avatar
anonym committed
2
Feature: Upgrading an old Tails USB installation
3
4
5
6
7
8
  As a Tails user
  If I have an old versoin of Tails installed on a USB device
  and the USB device has a persistent partition
  I want to upgrade Tails on it
  and keep my persistent partition in the process

9
10
11
12
  # An issue with this feature is that scenarios depend on each
  # other. When editing this feature, make sure you understand these
  # dependencies (which are documented below).

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
  Scenario: Try to "Upgrade from ISO" Tails to a pristine USB drive
    Given a computer
    And I setup a filesystem share containing the Tails ISO
    And I start Tails from DVD with network unplugged and I login
    And I temporarily create a 4 GiB disk named "pristine"
    And I plug USB drive "pristine"
    And I start Tails Installer in "Upgrade from ISO" mode
    Then a suitable USB device is not found
    And I am told that the destination device cannot be upgraded

  Scenario: Try to "Clone & Upgrade" Tails to a pristine USB drive
    Given I have started Tails from DVD without network and logged in
    And I temporarily create a 4 GiB disk named "pristine"
    And I plug USB drive "pristine"
    And I start Tails Installer in "Clone & Upgrade" mode
    Then a suitable USB device is not found
    And I am told that the destination device cannot be upgraded

  Scenario: Try to "Upgrade from ISO" Tails to a USB drive with GPT and a FAT partition
    Given a computer
    And I setup a filesystem share containing the Tails ISO
    And I start Tails from DVD with network unplugged and I login
    And I temporarily create a 4 GiB disk named "gptfat"
    And I create a gpt partition with a vfat filesystem on disk "gptfat"
    And I plug USB drive "gptfat"
    And I start Tails Installer in "Upgrade from ISO" mode
    Then a suitable USB device is not found
    And I am told that the destination device cannot be upgraded

  Scenario: Try to "Clone & Upgrade" Tails to a USB drive with GPT and a FAT partition
    Given I have started Tails from DVD without network and logged in
    And I temporarily create a 4 GiB disk named "gptfat"
    And I create a gpt partition with a vfat filesystem on disk "gptfat"
    And I plug USB drive "gptfat"
    And I start Tails Installer in "Upgrade from ISO" mode
    Then a suitable USB device is not found
    And I am told that the destination device cannot be upgraded

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  Scenario: Installing an old version of Tails to a pristine USB drive
    Given a computer
    And the computer is set to boot from the old Tails DVD
    And the network is unplugged
    And I start the computer
    When the computer boots Tails
    And I log in to a new session
    And the Tails desktop is ready
    And all notifications have disappeared
    And I create a 4 GiB disk named "old"
    And I plug USB drive "old"
    And I "Clone & Install" Tails to USB drive "old"
    Then the running Tails is installed on USB drive "old"
    But there is no persistence partition on USB drive "old"
    And I unplug USB drive "old"

67
  # Depends on scenario: Installing an old version of Tails to a pristine USB drive
68
69
70
71
  Scenario: Creating a persistent partition with the old Tails USB installation
    Given a computer
    And I start Tails from USB drive "old" with network unplugged and I login
    Then Tails is running from USB drive "old"
72
    And I create a persistent partition
73
    And I take note of which persistence presets are available
anonym's avatar
anonym committed
74
    Then a Tails persistence partition exists on USB drive "old"
75
76
    And I shutdown Tails and wait for the computer to power off

77
  # Depends on scenario: Creating a persistent partition with the old Tails USB installation
78
79
  Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
    Given a computer
80
    And I start Tails from USB drive "old" with network unplugged and I login with persistence enabled
81
82
83
84
85
86
87
88
89
    Then Tails is running from USB drive "old"
    And all persistence presets are enabled
    And I write some files expected to persist
    And all persistent filesystems have safe access rights
    And all persistence configuration files have safe access rights
    And all persistent directories from the old Tails version have safe access rights
    And I take note of which persistence presets are available
    And I shutdown Tails and wait for the computer to power off
    # XXX: how does guestfs work vs snapshots?
90
    Then only the expected files are present on the persistence partition on USB drive "old"
91

92
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
93
  Scenario: Upgrading an old Tails USB installation from a Tails DVD
94
    Given I have started Tails from DVD without network and logged in
95
96
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I plug USB drive "to_upgrade"
97
    When I "Clone & Upgrade" Tails to USB drive "to_upgrade"
98
99
100
    Then the running Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"

101
  # Depends on scenario: Upgrading an old Tails USB installation from a Tails DVD
102
103
  Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
    Given a computer
104
    And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
105
    Then all persistence presets from the old Tails version are enabled
anonym's avatar
anonym committed
106
    And Tails is running from USB drive "to_upgrade"
107
108
109
110
    And the boot device has safe access rights
    And the expected persistent files created with the old Tails version are present in the filesystem
    And all persistent directories from the old Tails version have safe access rights

111
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
112
  Scenario: Upgrading an old Tails USB installation from another Tails USB drive
113
    Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
anonym's avatar
anonym committed
114
115
    And I log in to a new session
    And Tails seems to have booted normally
116
117
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I plug USB drive "to_upgrade"
118
    When I "Clone & Upgrade" Tails to USB drive "to_upgrade"
119
120
121
122
    Then the running Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"
    And I unplug USB drive "current"

123
  # Depends on scenario: Upgrading an old Tails USB installation from another Tails USB drive
124
125
  Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
    Given a computer
126
    And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
127
128
129
130
131
132
    Then all persistence presets from the old Tails version are enabled
    And Tails is running from USB drive "to_upgrade"
    And the boot device has safe access rights
    And the expected persistent files created with the old Tails version are present in the filesystem
    And all persistent directories from the old Tails version have safe access rights

133
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
134
135
136
137
138
139
140
141
142
143
  Scenario: Upgrading an old Tails USB installation from an ISO image, running on the old version
    Given a computer
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I setup a filesystem share containing the Tails ISO
    When I start Tails from USB drive "old" with network unplugged and I login
    And I plug USB drive "to_upgrade"
    And I do a "Upgrade from ISO" on USB drive "to_upgrade"
    Then the ISO's Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"

144
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
145
146
147
148
149
150
151
152
153
154
  Scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
    Given a computer
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I setup a filesystem share containing the Tails ISO
    And I start Tails from DVD with network unplugged and I login
    And I plug USB drive "to_upgrade"
    And I do a "Upgrade from ISO" on USB drive "to_upgrade"
    Then the ISO's Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"

155
  # Depends on scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
156
157
  Scenario: Booting a USB drive upgraded from ISO with persistence enabled
    Given a computer
158
    And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
159
160
161
162
163
    Then all persistence presets from the old Tails version are enabled
    And Tails is running from USB drive "to_upgrade"
    And the boot device has safe access rights
    And the expected persistent files created with the old Tails version are present in the filesystem
    And all persistent directories from the old Tails version have safe access rights