usb_upgrade.feature 8.25 KB
Newer Older
1
@product
anonym's avatar
anonym committed
2
Feature: Upgrading an old Tails USB installation
3
  As a Tails user
intrigeri's avatar
intrigeri committed
4
  If I have an old version of Tails installed on a USB device
5
6
7
8
  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
  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 all notifications have disappeared
21
    And I create a 7200 MiB disk named "old"
22
    And I plug USB drive "old"
23
    When I install Tails to USB drive "old" by cloning
24
25
26
27
    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"

28
  # Depends on scenario: Installing an old version of Tails to a pristine USB drive
29
30
31
32
  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"
33
    And I create a persistent partition
34
    And I take note of which persistence presets are available
anonym's avatar
anonym committed
35
    Then a Tails persistence partition exists on USB drive "old"
36
37
    And I shutdown Tails and wait for the computer to power off

38
  # Depends on scenario: Creating a persistent partition with the old Tails USB installation
39
40
  Scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
    Given a computer
41
    And I start Tails from USB drive "old" with network unplugged and I login with persistence enabled
42
43
    Then Tails is running from USB drive "old"
    And all persistence presets are enabled
anonym's avatar
anonym committed
44
    When I write some files expected to persist
45
46
47
48
49
50
    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?
51
    Then only the expected files are present on the persistence partition on USB drive "old"
52

53
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
54
  Scenario: Upgrading an old Tails USB installation from a Tails DVD
55
    Given I have started Tails from DVD without network and logged in
56
57
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I plug USB drive "to_upgrade"
58
    When I upgrade Tails to USB drive "to_upgrade" by cloning
59
60
61
    Then the running Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"

62
  # Depends on scenario: Upgrading an old Tails USB installation from a Tails DVD
63
64
  Scenario: Booting Tails from a USB drive upgraded from DVD with persistence enabled
    Given a computer
65
    And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
66
    Then all persistence presets from the old Tails version are enabled
anonym's avatar
anonym committed
67
    And Tails is running from USB drive "to_upgrade"
68
69
70
71
    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

72
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
73
  Scenario: Upgrading an old Tails USB installation from another Tails USB drive
74
    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
75
    And I log in to a new session
76
77
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I plug USB drive "to_upgrade"
78
    When I upgrade Tails to USB drive "to_upgrade" by cloning
79
80
    Then the running Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"
81
    And I unplug USB drive "__internal"
82

83
  # Depends on scenario: Upgrading an old Tails USB installation from another Tails USB drive
84
85
  Scenario: Booting Tails from a USB drive upgraded from USB with persistence enabled
    Given a computer
86
    And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
87
88
89
90
91
92
    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

93
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
94
95
96
97
  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"
    When I start Tails from USB drive "old" with network unplugged and I login
98
    And I plug and mount a USB drive containing the Tails ISO
99
    And I plug USB drive "to_upgrade"
100
    And I upgrade Tails on USB drive "to_upgrade" from an ISO
101
102
103
    Then the ISO's Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"

104
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
105
  Scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
106
107
    Given I have started Tails from DVD without network and logged in
    And I plug and mount a USB drive containing the Tails ISO
108
109
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I plug USB drive "to_upgrade"
110
    And I upgrade Tails on USB drive "to_upgrade" from an ISO
111
112
113
    Then the ISO's Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"

114
  # Depends on scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
115
116
  Scenario: Booting a USB drive upgraded from ISO with persistence enabled
    Given a computer
117
    And I start Tails from USB drive "to_upgrade" with network unplugged and I login with persistence enabled
118
119
120
121
122
    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
123

bertagaz's avatar
Typo.    
bertagaz committed
124
  Scenario: Upgrading Tails with Tails Upgrader through an incremental upgrade
125
126
127
128
129
    Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
    And Tails is fooled to think it is running version 1.0~test
    And the file system changes introduced in version 1.1~test are not present
    When the network is plugged
    And Tor is ready
130
    And all notifications have disappeared
131
    Then I am proposed to install an incremental upgrade to version 1.1~test
anonym's avatar
anonym committed
132
    And I can successfully install the incremental upgrade to version 1.1~test
133
134
135
136
137
    Given I shutdown Tails and wait for the computer to power off
    When I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
    Then Tails is running version 1.1~test
    And all persistence presets are enabled
    And the file system changes introduced in version 1.1~test are present
138
139
    # Our IUK sets a release date that can make Tor bootstrapping impossible
    Given Tails system time is magically synchronized
140
    When the network is plugged
141
    And Tor is ready
142
    And all notifications have disappeared
anonym's avatar
anonym committed
143
    # Regression test on #8158 (i.e. the IUK's filesystem is not part of the Unsafe Browser's chroot)
144
145
    And I successfully start the Unsafe Browser
    Then the file system changes introduced in version 1.1~test are present in the Unsafe Browser's chroot