usb_upgrade.feature 6.94 KB
Newer Older
anonym's avatar
anonym committed
1
@product
2
3
4
5
6
7
8
Feature: Installing Tails to a USB drive
  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
  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"

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

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

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

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

73
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
74
  Scenario: Upgrading an old Tails USB installation from another Tails USB drive
75
    Given Tails has booted without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
anonym's avatar
anonym committed
76
77
    And I log in to a new session
    And Tails seems to have booted normally
78
79
    And I clone USB drive "old" to a new USB drive "to_upgrade"
    And I plug USB drive "to_upgrade"
80
    When I "Clone & Upgrade" Tails to USB drive "to_upgrade"
81
82
83
84
    Then the running Tails is installed on USB drive "to_upgrade"
    And I unplug USB drive "to_upgrade"
    And I unplug USB drive "current"

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

95
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
96
97
98
99
100
101
102
103
104
105
  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"

106
  # Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
107
108
109
110
111
112
113
114
115
116
  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"

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