summaryrefslogtreecommitdiffstats
path: root/features/step_definitions/snapshots.rb
diff options
context:
space:
mode:
Diffstat (limited to 'features/step_definitions/snapshots.rb')
-rw-r--r--features/step_definitions/snapshots.rb257
1 files changed, 0 insertions, 257 deletions
diff --git a/features/step_definitions/snapshots.rb b/features/step_definitions/snapshots.rb
deleted file mode 100644
index 13e4a5b6..00000000
--- a/features/step_definitions/snapshots.rb
+++ /dev/null
@@ -1,257 +0,0 @@
-def checkpoints
- {
- 'boot-d-i-to-tasksel' => {
- :description => "I have started Debian Installer and stopped at the Tasksel prompt",
- #:parent_checkpoint => 'no-network-logged-in',
- :steps => [
- 'I create a 8 GiB disk named "target"',
- 'I plug ide drive "target"',
- 'I start the computer',
- 'the computer boots DebianInstaller',
- 'I select British English',
- 'I accept the hostname, using "example.com" as the domain',
- 'I set the root password to "rootme"',
- 'I set the password for "Philip Hands" to be "verysecret"',
- 'I select full-disk, single-filesystem partitioning',
- 'I note that the Base system is being installed',
- 'I accept the default mirror',
- 'I ignore Popcon',
- 'we reach the Tasksel prompt',
- ],
- },
-
- 'debian-minimal-install' => {
- :description => "I have installed Minimal Debian",
- :parent_checkpoint => 'boot-d-i-to-tasksel',
- :steps => [
- 'I hit ENTER',
- 'I install GRUB',
- 'I allow reboot after the install is complete',
- 'I wait for the reboot',
- 'I power off the computer',
- 'the computer is set to boot from ide drive "target"',
- ],
- },
-
- 'debian-gnome-install' => {
- :description => "I have installed Gnome Desktop Debian",
- :parent_checkpoint => 'boot-d-i-to-tasksel',
- :steps => [
- 'I select the Desktop task',
- 'I install GRUB',
- 'I allow reboot after the install is complete',
- 'I wait for the reboot',
- 'I power off the computer',
- 'the computer is set to boot from ide drive "target"',
- ],
- },
-
- 'tails-greeter' => {
- :description => "I have started Tails from DVD without network and stopped at Tails Greeter's login screen",
- :parent_checkpoint => nil,
- :steps => [
- 'the network is unplugged',
- 'I start the computer',
- 'the computer boots Tails'
- ],
- },
-
- 'no-network-logged-in' => {
- :description => "I have started Tails from DVD without network and logged in",
- :parent_checkpoint => "tails-greeter",
- :steps => [
- 'I log in to a new session',
- 'Tails Greeter has dealt with the sudo password',
- 'the Tails desktop is ready',
- ],
- },
-
- 'with-no-network-and-i2p' => {
- :temporary => true,
- :description => 'I have started Tails from DVD with I2P enabled and logged in',
- :steps => [
- 'I set Tails to boot with options "i2p"',
- 'the network is unplugged',
- 'I start the computer',
- 'the computer boots Tails',
- 'I log in to a new session',
- 'the Tails desktop is ready',
- ],
- },
-
- 'with-network-and-i2p' => {
- :temporary => true,
- :description => 'I have started Tails from DVD with I2P enabled and logged in and the network is connected',
- :parent_checkpoint => "with-no-network-and-i2p",
- :steps => [
- 'the network is plugged',
- 'Tor is ready',
- 'I2P is running',
- 'all notifications have disappeared',
- 'available upgrades have been checked',
- "I2P's reseeding completed",
- ],
- },
-
- 'with-network-logged-in' => {
- :description => "I have started Tails from DVD and logged in and the network is connected",
- :parent_checkpoint => "no-network-logged-in",
- :steps => [
- 'the network is plugged',
- 'Tor is ready',
- 'all notifications have disappeared',
- 'available upgrades have been checked',
- ],
- },
-
- 'no-network-bridge-mode' => {
- :temporary => true,
- :description => "I have started Tails from DVD without network and logged in with bridge mode enabled",
- :parent_checkpoint => "tails-greeter",
- :steps => [
- 'I enable more Tails Greeter options',
- 'I enable the specific Tor configuration option',
- 'I log in to a new session',
- 'Tails Greeter has dealt with the sudo password',
- 'the Tails desktop is ready',
- 'all notifications have disappeared',
- ],
- },
-
- 'no-network-logged-in-sudo-passwd' => {
- :temporary => true,
- :description => "I have started Tails from DVD without network and logged in with an administration password",
- :parent_checkpoint => "tails-greeter",
- :steps => [
- 'I enable more Tails Greeter options',
- 'I set an administration password',
- 'I log in to a new session',
- 'Tails Greeter has dealt with the sudo password',
- 'the Tails desktop is ready',
- ],
- },
-
- 'with-network-logged-in-sudo-passwd' => {
- :temporary => true,
- :description => "I have started Tails from DVD and logged in with an administration password and the network is connected",
- :parent_checkpoint => "no-network-logged-in-sudo-passwd",
- :steps => [
- 'the network is plugged',
- 'Tor is ready',
- 'all notifications have disappeared',
- 'available upgrades have been checked',
- ],
- },
-
- 'usb-install-tails-greeter' => {
- :description => "I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen",
- :parent_checkpoint => 'no-network-logged-in',
- :steps => [
- 'I create a 4 GiB disk named "__internal"',
- 'I plug USB drive "__internal"',
- 'I "Clone & Install" Tails to USB drive "__internal"',
- 'the running Tails is installed on USB drive "__internal"',
- 'there is no persistence partition on USB drive "__internal"',
- 'I shutdown Tails and wait for the computer to power off',
- 'I start Tails from USB drive "__internal" with network unplugged',
- 'the boot device has safe access rights',
- 'Tails is running from USB drive "__internal"',
- 'there is no persistence partition on USB drive "__internal"',
- 'process "udev-watchdog" is running',
- 'udev-watchdog is monitoring the correct device',
- ],
- },
-
- 'usb-install-logged-in' => {
- :description => "I have started Tails without network from a USB drive without a persistent partition and logged in",
- :parent_checkpoint => 'usb-install-tails-greeter',
- :steps => [
- 'I log in to a new session',
- 'the Tails desktop is ready',
- ],
- },
-
- 'usb-install-with-persistence-tails-greeter' => {
- :description => "I have started Tails without network from a USB drive with a persistent partition and stopped at Tails Greeter's login screen",
- :parent_checkpoint => 'usb-install-logged-in',
- :steps => [
- 'I create a persistent partition',
- 'a Tails persistence partition exists on USB drive "__internal"',
- 'I shutdown Tails and wait for the computer to power off',
- 'I start Tails from USB drive "__internal" with network unplugged',
- 'the boot device has safe access rights',
- 'Tails is running from USB drive "__internal"',
- 'process "udev-watchdog" is running',
- 'udev-watchdog is monitoring the correct device',
- ],
- },
-
- 'usb-install-with-persistence-logged-in' => {
- :description => "I have started Tails without network from a USB drive with a persistent partition enabled and logged in",
- :parent_checkpoint => 'usb-install-with-persistence-tails-greeter',
- :steps => [
- 'I enable persistence',
- 'I log in to a new session',
- 'the Tails desktop is ready',
- 'all persistence presets are enabled',
- 'all persistent filesystems have safe access rights',
- 'all persistence configuration files have safe access rights',
- 'all persistent directories have safe access rights',
- ],
- },
- }
-end
-
-def reach_checkpoint(name)
- scenario_indent = " "*4
- step_indent = " "*6
-
- step "a computer"
- if VM.snapshot_exists?(name)
- $vm.restore_snapshot(name)
- post_snapshot_restore_hook
- else
- checkpoint = checkpoints[name]
- checkpoint_description = checkpoint[:description]
- parent_checkpoint = checkpoint[:parent_checkpoint]
- steps = checkpoint[:steps]
- if parent_checkpoint
- if VM.snapshot_exists?(parent_checkpoint)
- $vm.restore_snapshot(parent_checkpoint)
- else
- reach_checkpoint(parent_checkpoint)
- end
- post_snapshot_restore_hook
- end
- debug_log(scenario_indent + "Checkpoint: #{checkpoint_description}",
- :color => :white)
- step_action = "Given"
- if parent_checkpoint
- parent_description = checkpoints[parent_checkpoint][:description]
- debug_log(step_indent + "#{step_action} #{parent_description}",
- :color => :green)
- step_action = "And"
- end
- steps.each do |s|
- begin
- step(s)
- rescue Exception => e
- debug_log(scenario_indent +
- "Step failed while creating checkpoint: #{s}",
- :color => :red)
- raise e
- end
- debug_log(step_indent + "#{step_action} #{s}", :color => :green)
- step_action = "And"
- end
- $vm.save_snapshot(name)
- end
-end
-
-# For each checkpoint we generate a step to reach it.
-checkpoints.each do |name, desc|
- step_regex = Regexp.new("^#{Regexp.escape(desc[:description])}$")
- Given step_regex do
- reach_checkpoint(name)
- end
-end