From 88d376c9b7d2e52dee57fc67b2cbd07422a4e5bd Mon Sep 17 00:00:00 2001 From: Philip Hands Date: Wed, 11 May 2016 17:22:32 +0200 Subject: combined diff with most of the cucmber changes, plus update_jdn stuff --- cucumber/README-sikuli-cucumber | 34 +++ cucumber/bin/run_test_suite | 4 +- .../images/DebianInstallerCountrySelection.png | Bin 5303 -> 0 bytes .../images/DebianInstallerDomainPrompt.png | Bin 2225 -> 0 bytes .../images/DebianInstallerHostnamePrompt.png | Bin 5643 -> 0 bytes .../features/images/DebianInstallerHttpProxy.png | Bin 485 -> 0 bytes .../images/DebianInstallerInstallingBaseSystem.png | Bin 3554 -> 0 bytes .../images/DebianInstallerMirrorCountry.png | Bin 3769 -> 0 bytes .../features/images/DebianInstallerNameOfUser.png | Bin 3792 -> 0 bytes .../features/images/DebianInstallerNoDiskFound.png | Bin 4005 -> 0 bytes .../images/DebianInstallerPartitioningMethod.png | Bin 13953 -> 0 bytes .../images/DebianInstallerPartitioningScheme.png | Bin 2879 -> 0 bytes .../images/DebianInstallerRootPassword.png | Bin 3226 -> 0 bytes .../DebianInstallerSelectDiskToPartition.png | Bin 5403 -> 0 bytes .../images/DebianInstallerSelectLangEnglish.png | Bin 7229 -> 0 bytes .../images/DebianInstallerSelectLangEnglishUK.png | Bin 4853 -> 0 bytes .../images/DebianInstallerUserPassword.png | Bin 4892 -> 0 bytes cucumber/features/images/d-i_ArchiveMirror.png | Bin 2908 -> 0 bytes cucumber/features/images/d-i_ChooseSoftware.png | Bin 4204 -> 0 bytes cucumber/features/images/d-i_DesktopTask_No.png | Bin 7161 -> 0 bytes cucumber/features/images/d-i_DesktopTask_Yes.png | Bin 4152 -> 0 bytes cucumber/features/images/d-i_F12BootMenu.png | Bin 482 -> 0 bytes .../features/images/d-i_FinishPartitioning.png | Bin 8734 -> 0 bytes cucumber/features/images/d-i_GRUBEnterDev.png | Bin 2490 -> 0 bytes cucumber/features/images/d-i_GRUB_Debian.png | Bin 387 -> 0 bytes cucumber/features/images/d-i_GRUBdev.png | Bin 1765 -> 0 bytes cucumber/features/images/d-i_HttpProxy.png | Bin 5324 -> 0 bytes cucumber/features/images/d-i_InstallComplete.png | Bin 2740 -> 0 bytes cucumber/features/images/d-i_InstallGRUB.png | Bin 6367 -> 0 bytes cucumber/features/images/d-i_No.png | Bin 995 -> 0 bytes cucumber/features/images/d-i_ScanCD.png | Bin 3216 -> 0 bytes cucumber/features/images/d-i_SelectBootDev.png | Bin 559 -> 0 bytes cucumber/features/images/d-i_UseNetMirror.png | Bin 2975 -> 0 bytes cucumber/features/images/d-i_Yes.png | Bin 1163 -> 0 bytes cucumber/features/images/d-i_gui_ArchiveMirror.png | Bin 0 -> 5265 bytes .../features/images/d-i_gui_BritishEnglish.png | Bin 0 -> 3841 bytes .../features/images/d-i_gui_CONTINUEselected.png | Bin 0 -> 3919 bytes .../features/images/d-i_gui_CONTINUEunselected.png | Bin 0 -> 2814 bytes .../features/images/d-i_gui_ChooseSoftware.png | Bin 0 -> 5924 bytes cucumber/features/images/d-i_gui_Desktop+Gnome.png | Bin 0 -> 15335 bytes .../features/images/d-i_gui_DesktopTask_No.png | Bin 0 -> 1322 bytes .../features/images/d-i_gui_DesktopTask_Yes.png | Bin 0 -> 8920 bytes cucumber/features/images/d-i_gui_DomainName.png | Bin 0 -> 2880 bytes cucumber/features/images/d-i_gui_English.png | Bin 0 -> 2768 bytes .../features/images/d-i_gui_EnterTheHostname.png | Bin 0 -> 7878 bytes .../features/images/d-i_gui_FinishPartitioning.png | Bin 0 -> 14728 bytes cucumber/features/images/d-i_gui_GRUBEnterDev.png | Bin 0 -> 19466 bytes cucumber/features/images/d-i_gui_GRUBdev.png | Bin 0 -> 12068 bytes cucumber/features/images/d-i_gui_HttpProxy.png | Bin 0 -> 5087 bytes .../features/images/d-i_gui_InstallComplete.png | Bin 0 -> 9404 bytes cucumber/features/images/d-i_gui_InstallGRUB.png | Bin 0 -> 15554 bytes .../features/images/d-i_gui_InstallSoftware.png | Bin 0 -> 7357 bytes .../images/d-i_gui_InstallingBaseSystem.png | Bin 0 -> 5818 bytes .../images/d-i_gui_InstallingGRUBprogress.png | Bin 0 -> 8928 bytes cucumber/features/images/d-i_gui_MirrorCountry.png | Bin 0 -> 8224 bytes cucumber/features/images/d-i_gui_NameOfUser.png | Bin 0 -> 5622 bytes cucumber/features/images/d-i_gui_No.png | Bin 0 -> 4330 bytes .../features/images/d-i_gui_PartitioningMethod.png | Bin 0 -> 9878 bytes .../features/images/d-i_gui_PartitioningScheme.png | Bin 0 -> 8981 bytes cucumber/features/images/d-i_gui_RootPassword.png | Bin 0 -> 3650 bytes cucumber/features/images/d-i_gui_ScanCD.png | Bin 0 -> 1779 bytes .../images/d-i_gui_SelectDiskToPartition.png | Bin 0 -> 7584 bytes .../features/images/d-i_gui_SelectYourLocation.png | Bin 0 -> 4229 bytes cucumber/features/images/d-i_gui_UnitedKingdom.png | Bin 0 -> 4256 bytes cucumber/features/images/d-i_gui_UseNetMirror.png | Bin 0 -> 1663 bytes cucumber/features/images/d-i_gui_UserPassword.png | Bin 0 -> 7667 bytes cucumber/features/images/d-i_gui_Yes.png | Bin 0 -> 4147 bytes cucumber/features/images/d-i_gui_popcon.png | Bin 0 -> 13176 bytes cucumber/features/images/d-i_popcon.png | Bin 3894 -> 0 bytes .../features/images/d-i_text_ArchiveMirror.png | Bin 0 -> 2908 bytes .../features/images/d-i_text_BritishEnglish.png | Bin 0 -> 4853 bytes .../features/images/d-i_text_ChooseSoftware.png | Bin 0 -> 4204 bytes .../features/images/d-i_text_Desktop+Gnome.png | Bin 0 -> 5135 bytes .../features/images/d-i_text_DesktopTask_No.png | Bin 0 -> 7161 bytes .../features/images/d-i_text_DesktopTask_Yes.png | Bin 0 -> 4152 bytes cucumber/features/images/d-i_text_DomainName.png | Bin 0 -> 2225 bytes cucumber/features/images/d-i_text_English.png | Bin 0 -> 7229 bytes .../features/images/d-i_text_EnterTheHostname.png | Bin 0 -> 5643 bytes cucumber/features/images/d-i_text_F12BootMenu.png | Bin 0 -> 482 bytes .../images/d-i_text_FinishPartitioning.png | Bin 0 -> 8734 bytes cucumber/features/images/d-i_text_GRUBEnterDev.png | Bin 0 -> 2490 bytes cucumber/features/images/d-i_text_GRUBdev.png | Bin 0 -> 1765 bytes cucumber/features/images/d-i_text_HttpProxy.png | Bin 0 -> 5346 bytes .../features/images/d-i_text_InstallComplete.png | Bin 0 -> 2740 bytes cucumber/features/images/d-i_text_InstallGRUB.png | Bin 0 -> 3221 bytes .../features/images/d-i_text_InstallSoftware.png | Bin 0 -> 9341 bytes .../images/d-i_text_InstallingBaseSystem.png | Bin 0 -> 3554 bytes .../images/d-i_text_InstallingGRUBprogress.png | Bin 0 -> 10406 bytes .../features/images/d-i_text_MirrorCountry.png | Bin 0 -> 3769 bytes cucumber/features/images/d-i_text_NameOfUser.png | Bin 0 -> 3792 bytes cucumber/features/images/d-i_text_No.png | Bin 0 -> 995 bytes cucumber/features/images/d-i_text_NoDiskFound.png | Bin 0 -> 4005 bytes .../images/d-i_text_PartitioningMethod.png | Bin 0 -> 13953 bytes .../images/d-i_text_PartitioningScheme.png | Bin 0 -> 2879 bytes cucumber/features/images/d-i_text_RootPassword.png | Bin 0 -> 3226 bytes cucumber/features/images/d-i_text_ScanCD.png | Bin 0 -> 3216 bytes .../features/images/d-i_text_SelectBootDev.png | Bin 0 -> 559 bytes .../images/d-i_text_SelectDiskToPartition.png | Bin 0 -> 5403 bytes .../images/d-i_text_SelectYourLocation.png | Bin 0 -> 5303 bytes .../features/images/d-i_text_UnitedKingdom.png | Bin 0 -> 4162 bytes cucumber/features/images/d-i_text_UseNetMirror.png | Bin 0 -> 2975 bytes cucumber/features/images/d-i_text_UserPassword.png | Bin 0 -> 4892 bytes cucumber/features/images/d-i_text_Yes.png | Bin 0 -> 1163 bytes .../images/d-i_text_bootmenu_graphical.png | Bin 0 -> 15704 bytes cucumber/features/images/d-i_text_popcon.png | Bin 0 -> 10013 bytes cucumber/features/install.feature | 27 ++- cucumber/features/scripts/vm-execute | 4 +- cucumber/features/step_definitions/common_steps.rb | 241 ++++++++++++++------ cucumber/features/step_definitions/snapshots.rb | 242 +++++++-------------- cucumber/features/support/config.rb | 18 +- cucumber/features/support/env.rb | 2 +- 111 files changed, 321 insertions(+), 251 deletions(-) delete mode 100644 cucumber/features/images/DebianInstallerCountrySelection.png delete mode 100644 cucumber/features/images/DebianInstallerDomainPrompt.png delete mode 100644 cucumber/features/images/DebianInstallerHostnamePrompt.png delete mode 100644 cucumber/features/images/DebianInstallerHttpProxy.png delete mode 100644 cucumber/features/images/DebianInstallerInstallingBaseSystem.png delete mode 100644 cucumber/features/images/DebianInstallerMirrorCountry.png delete mode 100644 cucumber/features/images/DebianInstallerNameOfUser.png delete mode 100644 cucumber/features/images/DebianInstallerNoDiskFound.png delete mode 100644 cucumber/features/images/DebianInstallerPartitioningMethod.png delete mode 100644 cucumber/features/images/DebianInstallerPartitioningScheme.png delete mode 100644 cucumber/features/images/DebianInstallerRootPassword.png delete mode 100644 cucumber/features/images/DebianInstallerSelectDiskToPartition.png delete mode 100644 cucumber/features/images/DebianInstallerSelectLangEnglish.png delete mode 100644 cucumber/features/images/DebianInstallerSelectLangEnglishUK.png delete mode 100644 cucumber/features/images/DebianInstallerUserPassword.png delete mode 100644 cucumber/features/images/d-i_ArchiveMirror.png delete mode 100644 cucumber/features/images/d-i_ChooseSoftware.png delete mode 100644 cucumber/features/images/d-i_DesktopTask_No.png delete mode 100644 cucumber/features/images/d-i_DesktopTask_Yes.png delete mode 100644 cucumber/features/images/d-i_F12BootMenu.png delete mode 100644 cucumber/features/images/d-i_FinishPartitioning.png delete mode 100644 cucumber/features/images/d-i_GRUBEnterDev.png delete mode 100644 cucumber/features/images/d-i_GRUB_Debian.png delete mode 100644 cucumber/features/images/d-i_GRUBdev.png delete mode 100644 cucumber/features/images/d-i_HttpProxy.png delete mode 100644 cucumber/features/images/d-i_InstallComplete.png delete mode 100644 cucumber/features/images/d-i_InstallGRUB.png delete mode 100644 cucumber/features/images/d-i_No.png delete mode 100644 cucumber/features/images/d-i_ScanCD.png delete mode 100644 cucumber/features/images/d-i_SelectBootDev.png delete mode 100644 cucumber/features/images/d-i_UseNetMirror.png delete mode 100644 cucumber/features/images/d-i_Yes.png create mode 100644 cucumber/features/images/d-i_gui_ArchiveMirror.png create mode 100644 cucumber/features/images/d-i_gui_BritishEnglish.png create mode 100644 cucumber/features/images/d-i_gui_CONTINUEselected.png create mode 100644 cucumber/features/images/d-i_gui_CONTINUEunselected.png create mode 100644 cucumber/features/images/d-i_gui_ChooseSoftware.png create mode 100644 cucumber/features/images/d-i_gui_Desktop+Gnome.png create mode 100644 cucumber/features/images/d-i_gui_DesktopTask_No.png create mode 100644 cucumber/features/images/d-i_gui_DesktopTask_Yes.png create mode 100644 cucumber/features/images/d-i_gui_DomainName.png create mode 100644 cucumber/features/images/d-i_gui_English.png create mode 100644 cucumber/features/images/d-i_gui_EnterTheHostname.png create mode 100644 cucumber/features/images/d-i_gui_FinishPartitioning.png create mode 100644 cucumber/features/images/d-i_gui_GRUBEnterDev.png create mode 100644 cucumber/features/images/d-i_gui_GRUBdev.png create mode 100644 cucumber/features/images/d-i_gui_HttpProxy.png create mode 100644 cucumber/features/images/d-i_gui_InstallComplete.png create mode 100644 cucumber/features/images/d-i_gui_InstallGRUB.png create mode 100644 cucumber/features/images/d-i_gui_InstallSoftware.png create mode 100644 cucumber/features/images/d-i_gui_InstallingBaseSystem.png create mode 100644 cucumber/features/images/d-i_gui_InstallingGRUBprogress.png create mode 100644 cucumber/features/images/d-i_gui_MirrorCountry.png create mode 100644 cucumber/features/images/d-i_gui_NameOfUser.png create mode 100644 cucumber/features/images/d-i_gui_No.png create mode 100644 cucumber/features/images/d-i_gui_PartitioningMethod.png create mode 100644 cucumber/features/images/d-i_gui_PartitioningScheme.png create mode 100644 cucumber/features/images/d-i_gui_RootPassword.png create mode 100644 cucumber/features/images/d-i_gui_ScanCD.png create mode 100644 cucumber/features/images/d-i_gui_SelectDiskToPartition.png create mode 100644 cucumber/features/images/d-i_gui_SelectYourLocation.png create mode 100644 cucumber/features/images/d-i_gui_UnitedKingdom.png create mode 100644 cucumber/features/images/d-i_gui_UseNetMirror.png create mode 100644 cucumber/features/images/d-i_gui_UserPassword.png create mode 100644 cucumber/features/images/d-i_gui_Yes.png create mode 100644 cucumber/features/images/d-i_gui_popcon.png delete mode 100644 cucumber/features/images/d-i_popcon.png create mode 100644 cucumber/features/images/d-i_text_ArchiveMirror.png create mode 100644 cucumber/features/images/d-i_text_BritishEnglish.png create mode 100644 cucumber/features/images/d-i_text_ChooseSoftware.png create mode 100644 cucumber/features/images/d-i_text_Desktop+Gnome.png create mode 100644 cucumber/features/images/d-i_text_DesktopTask_No.png create mode 100644 cucumber/features/images/d-i_text_DesktopTask_Yes.png create mode 100644 cucumber/features/images/d-i_text_DomainName.png create mode 100644 cucumber/features/images/d-i_text_English.png create mode 100644 cucumber/features/images/d-i_text_EnterTheHostname.png create mode 100644 cucumber/features/images/d-i_text_F12BootMenu.png create mode 100644 cucumber/features/images/d-i_text_FinishPartitioning.png create mode 100644 cucumber/features/images/d-i_text_GRUBEnterDev.png create mode 100644 cucumber/features/images/d-i_text_GRUBdev.png create mode 100644 cucumber/features/images/d-i_text_HttpProxy.png create mode 100644 cucumber/features/images/d-i_text_InstallComplete.png create mode 100644 cucumber/features/images/d-i_text_InstallGRUB.png create mode 100644 cucumber/features/images/d-i_text_InstallSoftware.png create mode 100644 cucumber/features/images/d-i_text_InstallingBaseSystem.png create mode 100644 cucumber/features/images/d-i_text_InstallingGRUBprogress.png create mode 100644 cucumber/features/images/d-i_text_MirrorCountry.png create mode 100644 cucumber/features/images/d-i_text_NameOfUser.png create mode 100644 cucumber/features/images/d-i_text_No.png create mode 100644 cucumber/features/images/d-i_text_NoDiskFound.png create mode 100644 cucumber/features/images/d-i_text_PartitioningMethod.png create mode 100644 cucumber/features/images/d-i_text_PartitioningScheme.png create mode 100644 cucumber/features/images/d-i_text_RootPassword.png create mode 100644 cucumber/features/images/d-i_text_ScanCD.png create mode 100644 cucumber/features/images/d-i_text_SelectBootDev.png create mode 100644 cucumber/features/images/d-i_text_SelectDiskToPartition.png create mode 100644 cucumber/features/images/d-i_text_SelectYourLocation.png create mode 100644 cucumber/features/images/d-i_text_UnitedKingdom.png create mode 100644 cucumber/features/images/d-i_text_UseNetMirror.png create mode 100644 cucumber/features/images/d-i_text_UserPassword.png create mode 100644 cucumber/features/images/d-i_text_Yes.png create mode 100644 cucumber/features/images/d-i_text_bootmenu_graphical.png create mode 100644 cucumber/features/images/d-i_text_popcon.png (limited to 'cucumber') diff --git a/cucumber/README-sikuli-cucumber b/cucumber/README-sikuli-cucumber index 24d90aaf..34430c5e 100644 --- a/cucumber/README-sikuli-cucumber +++ b/cucumber/README-sikuli-cucumber @@ -11,3 +11,37 @@ FIXME - I added a git repo to: /var/lib/jenkins/workspace/lvc_debian-installer_jessie_standard_apt in order to shut-up Tail's script that looks for git repos to populate some variables -- need to strip that out, or make it overridable. + + +FIXME - we don't need the OLD_ISO stuff -- make it so that it still works when not specified, so we can push the change upwards + + +FIXME - we need to be able to run multiple VMs in parallel, and so multiple jobs + +FIXME - the VM's network currnetly needs to be started by hand + +FIXME - snapshots get destroyed if one clears the workspace, but virsh remembers them -- we need to either move them or know how to delete them with e.g: virsh snapshot-delete DebianToaster debian-gui-minimal-install + + +Workflow: + + update in local git, then run lvc-kick (FIXME add lvc-kick to git) + use the web interface to build the job (FIXME see if we can nudge the job from lvc-kick) + + ssh -Y -C -L 5900:localhost:5900 jekinstest + + Then we can look at the install (if the --vnc-server-only option has been passed to cucumber ... see bin/lvc.sh) with this: + + xvncviewer -ViewOnly localhost:0 + + (you should make sure to use -ViewOnly, since any mouse movement can affect the ability of Sikuli to recognise things on the screen) + + (run from the local system, which gets forwarded via the ssh connection) + + When the install fails, you should get a screenshot of the last moment -- that can be grabbed and cut down for the next match) + + It seems that including a colour transition, such as the edge of a frame, in the thing you're looking for makes life easier for sikuli to find it, but may make it more fragile, we'll see) + + At present, sadly the tesseract OCR stuff spews vast numbers of vlog messages, making it unusable -- this has been fixed upstream (in sikuli IIRC, or maybe cucumber -- something that's now version 1.x but which has not yet hit Debian ... we can use that once it's packaged) + + diff --git a/cucumber/bin/run_test_suite b/cucumber/bin/run_test_suite index 5b40c389..86e7ea7d 100755 --- a/cucumber/bin/run_test_suite +++ b/cucumber/bin/run_test_suite @@ -262,9 +262,9 @@ if [ -n "${VNC_VIEWER:-}" ]; then fi export SIKULI_HOME="/usr/share/java" -export SIKULI_IMAGE_PATH="/srv/jenkins/features/images/" +export SIKULI_IMAGE_PATH="/srv/jenkins/cucumber/features/images/" export RUBYLIB="/srv/jenkins" -export VM_XML_PATH="/srv/jenkins/features/domains" +export VM_XML_PATH="/srv/jenkins/cucumber/features/domains" export DISPLAY=${TARGET_DISPLAY} check_dependencies cucumber diff --git a/cucumber/features/images/DebianInstallerCountrySelection.png b/cucumber/features/images/DebianInstallerCountrySelection.png deleted file mode 100644 index fe130993..00000000 Binary files a/cucumber/features/images/DebianInstallerCountrySelection.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerDomainPrompt.png b/cucumber/features/images/DebianInstallerDomainPrompt.png deleted file mode 100644 index d7fca5f8..00000000 Binary files a/cucumber/features/images/DebianInstallerDomainPrompt.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerHostnamePrompt.png b/cucumber/features/images/DebianInstallerHostnamePrompt.png deleted file mode 100644 index f1325c8d..00000000 Binary files a/cucumber/features/images/DebianInstallerHostnamePrompt.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerHttpProxy.png b/cucumber/features/images/DebianInstallerHttpProxy.png deleted file mode 100644 index 04b3e13e..00000000 Binary files a/cucumber/features/images/DebianInstallerHttpProxy.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerInstallingBaseSystem.png b/cucumber/features/images/DebianInstallerInstallingBaseSystem.png deleted file mode 100644 index 0b9e1c7f..00000000 Binary files a/cucumber/features/images/DebianInstallerInstallingBaseSystem.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerMirrorCountry.png b/cucumber/features/images/DebianInstallerMirrorCountry.png deleted file mode 100644 index 9b4df5ea..00000000 Binary files a/cucumber/features/images/DebianInstallerMirrorCountry.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerNameOfUser.png b/cucumber/features/images/DebianInstallerNameOfUser.png deleted file mode 100644 index e37c7ec4..00000000 Binary files a/cucumber/features/images/DebianInstallerNameOfUser.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerNoDiskFound.png b/cucumber/features/images/DebianInstallerNoDiskFound.png deleted file mode 100644 index 671f52d6..00000000 Binary files a/cucumber/features/images/DebianInstallerNoDiskFound.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerPartitioningMethod.png b/cucumber/features/images/DebianInstallerPartitioningMethod.png deleted file mode 100644 index 9e44360e..00000000 Binary files a/cucumber/features/images/DebianInstallerPartitioningMethod.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerPartitioningScheme.png b/cucumber/features/images/DebianInstallerPartitioningScheme.png deleted file mode 100644 index 97105b62..00000000 Binary files a/cucumber/features/images/DebianInstallerPartitioningScheme.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerRootPassword.png b/cucumber/features/images/DebianInstallerRootPassword.png deleted file mode 100644 index 27368fd7..00000000 Binary files a/cucumber/features/images/DebianInstallerRootPassword.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerSelectDiskToPartition.png b/cucumber/features/images/DebianInstallerSelectDiskToPartition.png deleted file mode 100644 index 1f14bb1a..00000000 Binary files a/cucumber/features/images/DebianInstallerSelectDiskToPartition.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerSelectLangEnglish.png b/cucumber/features/images/DebianInstallerSelectLangEnglish.png deleted file mode 100644 index 85f848d5..00000000 Binary files a/cucumber/features/images/DebianInstallerSelectLangEnglish.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerSelectLangEnglishUK.png b/cucumber/features/images/DebianInstallerSelectLangEnglishUK.png deleted file mode 100644 index c0da761f..00000000 Binary files a/cucumber/features/images/DebianInstallerSelectLangEnglishUK.png and /dev/null differ diff --git a/cucumber/features/images/DebianInstallerUserPassword.png b/cucumber/features/images/DebianInstallerUserPassword.png deleted file mode 100644 index bf9964aa..00000000 Binary files a/cucumber/features/images/DebianInstallerUserPassword.png and /dev/null differ diff --git a/cucumber/features/images/d-i_ArchiveMirror.png b/cucumber/features/images/d-i_ArchiveMirror.png deleted file mode 100644 index 7e53f189..00000000 Binary files a/cucumber/features/images/d-i_ArchiveMirror.png and /dev/null differ diff --git a/cucumber/features/images/d-i_ChooseSoftware.png b/cucumber/features/images/d-i_ChooseSoftware.png deleted file mode 100644 index 93447158..00000000 Binary files a/cucumber/features/images/d-i_ChooseSoftware.png and /dev/null differ diff --git a/cucumber/features/images/d-i_DesktopTask_No.png b/cucumber/features/images/d-i_DesktopTask_No.png deleted file mode 100644 index 6dbf9df4..00000000 Binary files a/cucumber/features/images/d-i_DesktopTask_No.png and /dev/null differ diff --git a/cucumber/features/images/d-i_DesktopTask_Yes.png b/cucumber/features/images/d-i_DesktopTask_Yes.png deleted file mode 100644 index 02cbaa5d..00000000 Binary files a/cucumber/features/images/d-i_DesktopTask_Yes.png and /dev/null differ diff --git a/cucumber/features/images/d-i_F12BootMenu.png b/cucumber/features/images/d-i_F12BootMenu.png deleted file mode 100644 index 67a21856..00000000 Binary files a/cucumber/features/images/d-i_F12BootMenu.png and /dev/null differ diff --git a/cucumber/features/images/d-i_FinishPartitioning.png b/cucumber/features/images/d-i_FinishPartitioning.png deleted file mode 100644 index 50396500..00000000 Binary files a/cucumber/features/images/d-i_FinishPartitioning.png and /dev/null differ diff --git a/cucumber/features/images/d-i_GRUBEnterDev.png b/cucumber/features/images/d-i_GRUBEnterDev.png deleted file mode 100644 index 6df484ed..00000000 Binary files a/cucumber/features/images/d-i_GRUBEnterDev.png and /dev/null differ diff --git a/cucumber/features/images/d-i_GRUB_Debian.png b/cucumber/features/images/d-i_GRUB_Debian.png deleted file mode 100644 index 3b67cfbe..00000000 Binary files a/cucumber/features/images/d-i_GRUB_Debian.png and /dev/null differ diff --git a/cucumber/features/images/d-i_GRUBdev.png b/cucumber/features/images/d-i_GRUBdev.png deleted file mode 100644 index 9d554d74..00000000 Binary files a/cucumber/features/images/d-i_GRUBdev.png and /dev/null differ diff --git a/cucumber/features/images/d-i_HttpProxy.png b/cucumber/features/images/d-i_HttpProxy.png deleted file mode 100644 index 4163a5b3..00000000 Binary files a/cucumber/features/images/d-i_HttpProxy.png and /dev/null differ diff --git a/cucumber/features/images/d-i_InstallComplete.png b/cucumber/features/images/d-i_InstallComplete.png deleted file mode 100644 index a8564464..00000000 Binary files a/cucumber/features/images/d-i_InstallComplete.png and /dev/null differ diff --git a/cucumber/features/images/d-i_InstallGRUB.png b/cucumber/features/images/d-i_InstallGRUB.png deleted file mode 100644 index e491fbd1..00000000 Binary files a/cucumber/features/images/d-i_InstallGRUB.png and /dev/null differ diff --git a/cucumber/features/images/d-i_No.png b/cucumber/features/images/d-i_No.png deleted file mode 100644 index 1108addc..00000000 Binary files a/cucumber/features/images/d-i_No.png and /dev/null differ diff --git a/cucumber/features/images/d-i_ScanCD.png b/cucumber/features/images/d-i_ScanCD.png deleted file mode 100644 index 5790bcce..00000000 Binary files a/cucumber/features/images/d-i_ScanCD.png and /dev/null differ diff --git a/cucumber/features/images/d-i_SelectBootDev.png b/cucumber/features/images/d-i_SelectBootDev.png deleted file mode 100644 index 7abef3ec..00000000 Binary files a/cucumber/features/images/d-i_SelectBootDev.png and /dev/null differ diff --git a/cucumber/features/images/d-i_UseNetMirror.png b/cucumber/features/images/d-i_UseNetMirror.png deleted file mode 100644 index 2b41228b..00000000 Binary files a/cucumber/features/images/d-i_UseNetMirror.png and /dev/null differ diff --git a/cucumber/features/images/d-i_Yes.png b/cucumber/features/images/d-i_Yes.png deleted file mode 100644 index 17fab5b9..00000000 Binary files a/cucumber/features/images/d-i_Yes.png and /dev/null differ diff --git a/cucumber/features/images/d-i_gui_ArchiveMirror.png b/cucumber/features/images/d-i_gui_ArchiveMirror.png new file mode 100644 index 00000000..d9658437 Binary files /dev/null and b/cucumber/features/images/d-i_gui_ArchiveMirror.png differ diff --git a/cucumber/features/images/d-i_gui_BritishEnglish.png b/cucumber/features/images/d-i_gui_BritishEnglish.png new file mode 100644 index 00000000..466fbecf Binary files /dev/null and b/cucumber/features/images/d-i_gui_BritishEnglish.png differ diff --git a/cucumber/features/images/d-i_gui_CONTINUEselected.png b/cucumber/features/images/d-i_gui_CONTINUEselected.png new file mode 100644 index 00000000..436eeb61 Binary files /dev/null and b/cucumber/features/images/d-i_gui_CONTINUEselected.png differ diff --git a/cucumber/features/images/d-i_gui_CONTINUEunselected.png b/cucumber/features/images/d-i_gui_CONTINUEunselected.png new file mode 100644 index 00000000..be82588b Binary files /dev/null and b/cucumber/features/images/d-i_gui_CONTINUEunselected.png differ diff --git a/cucumber/features/images/d-i_gui_ChooseSoftware.png b/cucumber/features/images/d-i_gui_ChooseSoftware.png new file mode 100644 index 00000000..c34906c4 Binary files /dev/null and b/cucumber/features/images/d-i_gui_ChooseSoftware.png differ diff --git a/cucumber/features/images/d-i_gui_Desktop+Gnome.png b/cucumber/features/images/d-i_gui_Desktop+Gnome.png new file mode 100644 index 00000000..3d34917c Binary files /dev/null and b/cucumber/features/images/d-i_gui_Desktop+Gnome.png differ diff --git a/cucumber/features/images/d-i_gui_DesktopTask_No.png b/cucumber/features/images/d-i_gui_DesktopTask_No.png new file mode 100644 index 00000000..7e2cbc2d Binary files /dev/null and b/cucumber/features/images/d-i_gui_DesktopTask_No.png differ diff --git a/cucumber/features/images/d-i_gui_DesktopTask_Yes.png b/cucumber/features/images/d-i_gui_DesktopTask_Yes.png new file mode 100644 index 00000000..c92a8f61 Binary files /dev/null and b/cucumber/features/images/d-i_gui_DesktopTask_Yes.png differ diff --git a/cucumber/features/images/d-i_gui_DomainName.png b/cucumber/features/images/d-i_gui_DomainName.png new file mode 100644 index 00000000..045ab5ab Binary files /dev/null and b/cucumber/features/images/d-i_gui_DomainName.png differ diff --git a/cucumber/features/images/d-i_gui_English.png b/cucumber/features/images/d-i_gui_English.png new file mode 100644 index 00000000..4aadb347 Binary files /dev/null and b/cucumber/features/images/d-i_gui_English.png differ diff --git a/cucumber/features/images/d-i_gui_EnterTheHostname.png b/cucumber/features/images/d-i_gui_EnterTheHostname.png new file mode 100644 index 00000000..c3c9b7da Binary files /dev/null and b/cucumber/features/images/d-i_gui_EnterTheHostname.png differ diff --git a/cucumber/features/images/d-i_gui_FinishPartitioning.png b/cucumber/features/images/d-i_gui_FinishPartitioning.png new file mode 100644 index 00000000..2d721761 Binary files /dev/null and b/cucumber/features/images/d-i_gui_FinishPartitioning.png differ diff --git a/cucumber/features/images/d-i_gui_GRUBEnterDev.png b/cucumber/features/images/d-i_gui_GRUBEnterDev.png new file mode 100644 index 00000000..05ec9e8e Binary files /dev/null and b/cucumber/features/images/d-i_gui_GRUBEnterDev.png differ diff --git a/cucumber/features/images/d-i_gui_GRUBdev.png b/cucumber/features/images/d-i_gui_GRUBdev.png new file mode 100644 index 00000000..2e96df0a Binary files /dev/null and b/cucumber/features/images/d-i_gui_GRUBdev.png differ diff --git a/cucumber/features/images/d-i_gui_HttpProxy.png b/cucumber/features/images/d-i_gui_HttpProxy.png new file mode 100644 index 00000000..bed3ade3 Binary files /dev/null and b/cucumber/features/images/d-i_gui_HttpProxy.png differ diff --git a/cucumber/features/images/d-i_gui_InstallComplete.png b/cucumber/features/images/d-i_gui_InstallComplete.png new file mode 100644 index 00000000..c38b9cb3 Binary files /dev/null and b/cucumber/features/images/d-i_gui_InstallComplete.png differ diff --git a/cucumber/features/images/d-i_gui_InstallGRUB.png b/cucumber/features/images/d-i_gui_InstallGRUB.png new file mode 100644 index 00000000..63332a58 Binary files /dev/null and b/cucumber/features/images/d-i_gui_InstallGRUB.png differ diff --git a/cucumber/features/images/d-i_gui_InstallSoftware.png b/cucumber/features/images/d-i_gui_InstallSoftware.png new file mode 100644 index 00000000..a2551fc1 Binary files /dev/null and b/cucumber/features/images/d-i_gui_InstallSoftware.png differ diff --git a/cucumber/features/images/d-i_gui_InstallingBaseSystem.png b/cucumber/features/images/d-i_gui_InstallingBaseSystem.png new file mode 100644 index 00000000..90147bef Binary files /dev/null and b/cucumber/features/images/d-i_gui_InstallingBaseSystem.png differ diff --git a/cucumber/features/images/d-i_gui_InstallingGRUBprogress.png b/cucumber/features/images/d-i_gui_InstallingGRUBprogress.png new file mode 100644 index 00000000..4bbec3c6 Binary files /dev/null and b/cucumber/features/images/d-i_gui_InstallingGRUBprogress.png differ diff --git a/cucumber/features/images/d-i_gui_MirrorCountry.png b/cucumber/features/images/d-i_gui_MirrorCountry.png new file mode 100644 index 00000000..ef5fe2af Binary files /dev/null and b/cucumber/features/images/d-i_gui_MirrorCountry.png differ diff --git a/cucumber/features/images/d-i_gui_NameOfUser.png b/cucumber/features/images/d-i_gui_NameOfUser.png new file mode 100644 index 00000000..bbe538f4 Binary files /dev/null and b/cucumber/features/images/d-i_gui_NameOfUser.png differ diff --git a/cucumber/features/images/d-i_gui_No.png b/cucumber/features/images/d-i_gui_No.png new file mode 100644 index 00000000..7bca8a10 Binary files /dev/null and b/cucumber/features/images/d-i_gui_No.png differ diff --git a/cucumber/features/images/d-i_gui_PartitioningMethod.png b/cucumber/features/images/d-i_gui_PartitioningMethod.png new file mode 100644 index 00000000..cb668f15 Binary files /dev/null and b/cucumber/features/images/d-i_gui_PartitioningMethod.png differ diff --git a/cucumber/features/images/d-i_gui_PartitioningScheme.png b/cucumber/features/images/d-i_gui_PartitioningScheme.png new file mode 100644 index 00000000..7d3acf94 Binary files /dev/null and b/cucumber/features/images/d-i_gui_PartitioningScheme.png differ diff --git a/cucumber/features/images/d-i_gui_RootPassword.png b/cucumber/features/images/d-i_gui_RootPassword.png new file mode 100644 index 00000000..58a4a663 Binary files /dev/null and b/cucumber/features/images/d-i_gui_RootPassword.png differ diff --git a/cucumber/features/images/d-i_gui_ScanCD.png b/cucumber/features/images/d-i_gui_ScanCD.png new file mode 100644 index 00000000..43ff7643 Binary files /dev/null and b/cucumber/features/images/d-i_gui_ScanCD.png differ diff --git a/cucumber/features/images/d-i_gui_SelectDiskToPartition.png b/cucumber/features/images/d-i_gui_SelectDiskToPartition.png new file mode 100644 index 00000000..f5c045c7 Binary files /dev/null and b/cucumber/features/images/d-i_gui_SelectDiskToPartition.png differ diff --git a/cucumber/features/images/d-i_gui_SelectYourLocation.png b/cucumber/features/images/d-i_gui_SelectYourLocation.png new file mode 100644 index 00000000..b253eb1e Binary files /dev/null and b/cucumber/features/images/d-i_gui_SelectYourLocation.png differ diff --git a/cucumber/features/images/d-i_gui_UnitedKingdom.png b/cucumber/features/images/d-i_gui_UnitedKingdom.png new file mode 100644 index 00000000..c3cc54e5 Binary files /dev/null and b/cucumber/features/images/d-i_gui_UnitedKingdom.png differ diff --git a/cucumber/features/images/d-i_gui_UseNetMirror.png b/cucumber/features/images/d-i_gui_UseNetMirror.png new file mode 100644 index 00000000..58dd466a Binary files /dev/null and b/cucumber/features/images/d-i_gui_UseNetMirror.png differ diff --git a/cucumber/features/images/d-i_gui_UserPassword.png b/cucumber/features/images/d-i_gui_UserPassword.png new file mode 100644 index 00000000..6be34915 Binary files /dev/null and b/cucumber/features/images/d-i_gui_UserPassword.png differ diff --git a/cucumber/features/images/d-i_gui_Yes.png b/cucumber/features/images/d-i_gui_Yes.png new file mode 100644 index 00000000..2c84ad22 Binary files /dev/null and b/cucumber/features/images/d-i_gui_Yes.png differ diff --git a/cucumber/features/images/d-i_gui_popcon.png b/cucumber/features/images/d-i_gui_popcon.png new file mode 100644 index 00000000..7eb0fe2e Binary files /dev/null and b/cucumber/features/images/d-i_gui_popcon.png differ diff --git a/cucumber/features/images/d-i_popcon.png b/cucumber/features/images/d-i_popcon.png deleted file mode 100644 index ed0ba618..00000000 Binary files a/cucumber/features/images/d-i_popcon.png and /dev/null differ diff --git a/cucumber/features/images/d-i_text_ArchiveMirror.png b/cucumber/features/images/d-i_text_ArchiveMirror.png new file mode 100644 index 00000000..7e53f189 Binary files /dev/null and b/cucumber/features/images/d-i_text_ArchiveMirror.png differ diff --git a/cucumber/features/images/d-i_text_BritishEnglish.png b/cucumber/features/images/d-i_text_BritishEnglish.png new file mode 100644 index 00000000..c0da761f Binary files /dev/null and b/cucumber/features/images/d-i_text_BritishEnglish.png differ diff --git a/cucumber/features/images/d-i_text_ChooseSoftware.png b/cucumber/features/images/d-i_text_ChooseSoftware.png new file mode 100644 index 00000000..93447158 Binary files /dev/null and b/cucumber/features/images/d-i_text_ChooseSoftware.png differ diff --git a/cucumber/features/images/d-i_text_Desktop+Gnome.png b/cucumber/features/images/d-i_text_Desktop+Gnome.png new file mode 100644 index 00000000..476c8ab7 Binary files /dev/null and b/cucumber/features/images/d-i_text_Desktop+Gnome.png differ diff --git a/cucumber/features/images/d-i_text_DesktopTask_No.png b/cucumber/features/images/d-i_text_DesktopTask_No.png new file mode 100644 index 00000000..6dbf9df4 Binary files /dev/null and b/cucumber/features/images/d-i_text_DesktopTask_No.png differ diff --git a/cucumber/features/images/d-i_text_DesktopTask_Yes.png b/cucumber/features/images/d-i_text_DesktopTask_Yes.png new file mode 100644 index 00000000..02cbaa5d Binary files /dev/null and b/cucumber/features/images/d-i_text_DesktopTask_Yes.png differ diff --git a/cucumber/features/images/d-i_text_DomainName.png b/cucumber/features/images/d-i_text_DomainName.png new file mode 100644 index 00000000..d7fca5f8 Binary files /dev/null and b/cucumber/features/images/d-i_text_DomainName.png differ diff --git a/cucumber/features/images/d-i_text_English.png b/cucumber/features/images/d-i_text_English.png new file mode 100644 index 00000000..85f848d5 Binary files /dev/null and b/cucumber/features/images/d-i_text_English.png differ diff --git a/cucumber/features/images/d-i_text_EnterTheHostname.png b/cucumber/features/images/d-i_text_EnterTheHostname.png new file mode 100644 index 00000000..f1325c8d Binary files /dev/null and b/cucumber/features/images/d-i_text_EnterTheHostname.png differ diff --git a/cucumber/features/images/d-i_text_F12BootMenu.png b/cucumber/features/images/d-i_text_F12BootMenu.png new file mode 100644 index 00000000..67a21856 Binary files /dev/null and b/cucumber/features/images/d-i_text_F12BootMenu.png differ diff --git a/cucumber/features/images/d-i_text_FinishPartitioning.png b/cucumber/features/images/d-i_text_FinishPartitioning.png new file mode 100644 index 00000000..50396500 Binary files /dev/null and b/cucumber/features/images/d-i_text_FinishPartitioning.png differ diff --git a/cucumber/features/images/d-i_text_GRUBEnterDev.png b/cucumber/features/images/d-i_text_GRUBEnterDev.png new file mode 100644 index 00000000..6df484ed Binary files /dev/null and b/cucumber/features/images/d-i_text_GRUBEnterDev.png differ diff --git a/cucumber/features/images/d-i_text_GRUBdev.png b/cucumber/features/images/d-i_text_GRUBdev.png new file mode 100644 index 00000000..9d554d74 Binary files /dev/null and b/cucumber/features/images/d-i_text_GRUBdev.png differ diff --git a/cucumber/features/images/d-i_text_HttpProxy.png b/cucumber/features/images/d-i_text_HttpProxy.png new file mode 100644 index 00000000..5b1d0042 Binary files /dev/null and b/cucumber/features/images/d-i_text_HttpProxy.png differ diff --git a/cucumber/features/images/d-i_text_InstallComplete.png b/cucumber/features/images/d-i_text_InstallComplete.png new file mode 100644 index 00000000..a8564464 Binary files /dev/null and b/cucumber/features/images/d-i_text_InstallComplete.png differ diff --git a/cucumber/features/images/d-i_text_InstallGRUB.png b/cucumber/features/images/d-i_text_InstallGRUB.png new file mode 100644 index 00000000..80c53023 Binary files /dev/null and b/cucumber/features/images/d-i_text_InstallGRUB.png differ diff --git a/cucumber/features/images/d-i_text_InstallSoftware.png b/cucumber/features/images/d-i_text_InstallSoftware.png new file mode 100644 index 00000000..b03e369e Binary files /dev/null and b/cucumber/features/images/d-i_text_InstallSoftware.png differ diff --git a/cucumber/features/images/d-i_text_InstallingBaseSystem.png b/cucumber/features/images/d-i_text_InstallingBaseSystem.png new file mode 100644 index 00000000..0b9e1c7f Binary files /dev/null and b/cucumber/features/images/d-i_text_InstallingBaseSystem.png differ diff --git a/cucumber/features/images/d-i_text_InstallingGRUBprogress.png b/cucumber/features/images/d-i_text_InstallingGRUBprogress.png new file mode 100644 index 00000000..4cae1548 Binary files /dev/null and b/cucumber/features/images/d-i_text_InstallingGRUBprogress.png differ diff --git a/cucumber/features/images/d-i_text_MirrorCountry.png b/cucumber/features/images/d-i_text_MirrorCountry.png new file mode 100644 index 00000000..9b4df5ea Binary files /dev/null and b/cucumber/features/images/d-i_text_MirrorCountry.png differ diff --git a/cucumber/features/images/d-i_text_NameOfUser.png b/cucumber/features/images/d-i_text_NameOfUser.png new file mode 100644 index 00000000..e37c7ec4 Binary files /dev/null and b/cucumber/features/images/d-i_text_NameOfUser.png differ diff --git a/cucumber/features/images/d-i_text_No.png b/cucumber/features/images/d-i_text_No.png new file mode 100644 index 00000000..1108addc Binary files /dev/null and b/cucumber/features/images/d-i_text_No.png differ diff --git a/cucumber/features/images/d-i_text_NoDiskFound.png b/cucumber/features/images/d-i_text_NoDiskFound.png new file mode 100644 index 00000000..671f52d6 Binary files /dev/null and b/cucumber/features/images/d-i_text_NoDiskFound.png differ diff --git a/cucumber/features/images/d-i_text_PartitioningMethod.png b/cucumber/features/images/d-i_text_PartitioningMethod.png new file mode 100644 index 00000000..9e44360e Binary files /dev/null and b/cucumber/features/images/d-i_text_PartitioningMethod.png differ diff --git a/cucumber/features/images/d-i_text_PartitioningScheme.png b/cucumber/features/images/d-i_text_PartitioningScheme.png new file mode 100644 index 00000000..97105b62 Binary files /dev/null and b/cucumber/features/images/d-i_text_PartitioningScheme.png differ diff --git a/cucumber/features/images/d-i_text_RootPassword.png b/cucumber/features/images/d-i_text_RootPassword.png new file mode 100644 index 00000000..27368fd7 Binary files /dev/null and b/cucumber/features/images/d-i_text_RootPassword.png differ diff --git a/cucumber/features/images/d-i_text_ScanCD.png b/cucumber/features/images/d-i_text_ScanCD.png new file mode 100644 index 00000000..5790bcce Binary files /dev/null and b/cucumber/features/images/d-i_text_ScanCD.png differ diff --git a/cucumber/features/images/d-i_text_SelectBootDev.png b/cucumber/features/images/d-i_text_SelectBootDev.png new file mode 100644 index 00000000..7abef3ec Binary files /dev/null and b/cucumber/features/images/d-i_text_SelectBootDev.png differ diff --git a/cucumber/features/images/d-i_text_SelectDiskToPartition.png b/cucumber/features/images/d-i_text_SelectDiskToPartition.png new file mode 100644 index 00000000..1f14bb1a Binary files /dev/null and b/cucumber/features/images/d-i_text_SelectDiskToPartition.png differ diff --git a/cucumber/features/images/d-i_text_SelectYourLocation.png b/cucumber/features/images/d-i_text_SelectYourLocation.png new file mode 100644 index 00000000..fe130993 Binary files /dev/null and b/cucumber/features/images/d-i_text_SelectYourLocation.png differ diff --git a/cucumber/features/images/d-i_text_UnitedKingdom.png b/cucumber/features/images/d-i_text_UnitedKingdom.png new file mode 100644 index 00000000..279d2cff Binary files /dev/null and b/cucumber/features/images/d-i_text_UnitedKingdom.png differ diff --git a/cucumber/features/images/d-i_text_UseNetMirror.png b/cucumber/features/images/d-i_text_UseNetMirror.png new file mode 100644 index 00000000..2b41228b Binary files /dev/null and b/cucumber/features/images/d-i_text_UseNetMirror.png differ diff --git a/cucumber/features/images/d-i_text_UserPassword.png b/cucumber/features/images/d-i_text_UserPassword.png new file mode 100644 index 00000000..bf9964aa Binary files /dev/null and b/cucumber/features/images/d-i_text_UserPassword.png differ diff --git a/cucumber/features/images/d-i_text_Yes.png b/cucumber/features/images/d-i_text_Yes.png new file mode 100644 index 00000000..17fab5b9 Binary files /dev/null and b/cucumber/features/images/d-i_text_Yes.png differ diff --git a/cucumber/features/images/d-i_text_bootmenu_graphical.png b/cucumber/features/images/d-i_text_bootmenu_graphical.png new file mode 100644 index 00000000..f1c116a7 Binary files /dev/null and b/cucumber/features/images/d-i_text_bootmenu_graphical.png differ diff --git a/cucumber/features/images/d-i_text_popcon.png b/cucumber/features/images/d-i_text_popcon.png new file mode 100644 index 00000000..487457c2 Binary files /dev/null and b/cucumber/features/images/d-i_text_popcon.png differ diff --git a/cucumber/features/install.feature b/cucumber/features/install.feature index 3b71b6c2..85406871 100644 --- a/cucumber/features/install.feature +++ b/cucumber/features/install.feature @@ -1,14 +1,23 @@ @product -Feature: Doing a trivial d-i install +Feature: Doing variations on d-i installs As a normal user - I should be able to do a text-mode install + I should be able to install Debian - Scenario Outline: Install Debian and boot to login prompt - Given I have installed Debian - And I start the computer - Then I wait for a Login Prompt + Scenario Outline: Install Debian, and boot to a login prompt + Given I install a Debian system, in mode + When I start the computer + Then I should see a Login prompt Examples: - | type | - | Minimal | - | Gnome Desktop | + | install_ui | target_ui | + | gui | Minimal | + | gui | non-GUI | + | gui | Gnome Desktop | + | text | Minimal | + | text | non-GUI | + | text | Gnome Desktop | + +# Scenario: Get a useful error from a bogus HTTP proxy +# Given I get d-i to the HTTP proxy prompt +# When I set the proxy to "172.23.23.23" +# Then I should get an error message that mentions the proxy diff --git a/cucumber/features/scripts/vm-execute b/cucumber/features/scripts/vm-execute index fc1bf459..c2082177 100755 --- a/cucumber/features/scripts/vm-execute +++ b/cucumber/features/scripts/vm-execute @@ -2,7 +2,7 @@ require 'optparse' begin - require "#{`git rev-parse --show-toplevel`.chomp}/features/support/helpers/exec_helper.rb" + require "#{`git rev-parse --show-toplevel`.chomp}/cucumber/features/support/helpers/exec_helper.rb" rescue LoadError => e raise "This script must be run from within Tails' Git directory." end @@ -22,7 +22,7 @@ cmd_opts = { } opt_parser = OptionParser.new do |opts| - opts.banner = "Usage: features/scripts/vm-execute [opts] COMMAND" + opts.banner = "Usage: cucumber/features/scripts/vm-execute [opts] COMMAND" opts.separator "" opts.separator "Runs commands in the VM guest being tested. This script " \ "must be run from within Tails' Git directory." diff --git a/cucumber/features/step_definitions/common_steps.rb b/cucumber/features/step_definitions/common_steps.rb index bd03cebb..69fd238f 100644 --- a/cucumber/features/step_definitions/common_steps.rb +++ b/cucumber/features/step_definitions/common_steps.rb @@ -91,7 +91,9 @@ def robust_notification_wait(notification_image, time_to_wait) end def post_snapshot_restore_hook - $vm.wait_until_remote_shell_is_up + # FIXME -- we've got a brain-damaged version of this, unlike Tails, so it breaks after restores at present + # that being the case, let's not worry until we actually miss the feature + #$vm.wait_until_remote_shell_is_up post_vm_start_hook # XXX-9p: See XXX-9p above @@ -122,6 +124,10 @@ def post_snapshot_restore_hook #end end +def diui_png(name,ui_mode) + return "d-i_" + ui_mode + "_" + name + ".png" +end + Given /^a computer$/ do $vm.destroy_and_undefine if $vm $vm = VM.new($virt, VM_XML_PATH, $vmnet, $vmstorage, DISPLAY) @@ -257,136 +263,243 @@ When /^I destroy the computer$/ do $vm.destroy_and_undefine end -Given /^the computer (re)?boots DebianInstaller(|\d+)$/ do |reboot,version| +Given /^I boot the computer, and select ([a-z]*) mode$/ do |ui_mode| boot_timeout = 30 - # We need some extra time for memory wiping if rebooting @screen.wait("d-i8_bootsplash.png", boot_timeout) - @screen.type(Sikuli::Key.TAB) - @screen.type(' preseed/early_command="echo ttyS0::askfirst:-/bin/sh>>/etc/inittab;kill -HUP 1"' + " blacklist=psmouse #{@boot_options}" + + if "gui" == ui_mode + @screen.type(Sikuli::Key.DOWN) + @screen.wait("d-i_bootmenu_graphical.png", 10) + end + + @screen.type(Sikuli::Key.TAB) + @screen.type(' preseed/early_command="echo DPMS=-s\\\\ 0 > /lib/debian-installer.d/S61Xnoblank ; echo ttyS0::askfirst:-/bin/sh>>/etc/inittab;kill -HUP 1"' + " blacklist=psmouse #{@boot_options}" + Sikuli::Key.ENTER) $vm.wait_until_remote_shell_is_up end -Given /^I select British English$/ do - @screen.wait("DebianInstallerSelectLangEnglish.png", 30) +Given /^in ([a-z]*) mode I select British English$/ do |ui_mode| + @screen.wait(diui_png("English",ui_mode), 30) @screen.type(Sikuli::Key.ENTER) - @screen.wait("DebianInstallerCountrySelection.png", 10) + @screen.wait(diui_png("SelectYourLocation",ui_mode), 10) @screen.type(Sikuli::Key.UP) - @screen.waitVanish("DebianInstallerCountrySelection.png", 10) + @screen.wait(diui_png("UnitedKingdom",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) - @screen.wait("DebianInstallerSelectLangEnglishUK.png", 10) + @screen.wait(diui_png("BritishEnglish",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) end -Given /^I accept the hostname, using "([^"]*)" as the domain$/ do |domain| - @screen.wait("DebianInstallerHostnamePrompt.png", 5*60) +Given /^in ([a-z]*) mode I accept the hostname, using "([^"]*)" as the domain$/ do |ui_mode,domain| + @screen.wait(diui_png("EnterTheHostname",ui_mode), 5*60) @screen.type(Sikuli::Key.ENTER) - @screen.wait("DebianInstallerDomainPrompt.png", 10) + @screen.wait(diui_png("DomainName",ui_mode), 10) @screen.type(domain + Sikuli::Key.ENTER) - @screen.waitVanish("DebianInstallerDomainPrompt.png", 10) + @screen.waitVanish(diui_png("DomainName",ui_mode), 10) end -Given /^I set the root password to "([^"]*)"$/ do |rootpw| +Given /^in ([a-z]*) mode I set the root password to "([^"]*)"$/ do |ui_mode, rootpw| # Root Password, twice - @screen.wait("DebianInstallerRootPassword.png", 30) - @screen.type(rootpw + Sikuli::Key.ENTER) - @screen.waitVanish("DebianInstallerRootPassword.png", 10) + @screen.wait(diui_png("RootPassword",ui_mode), 30) + @screen.type(rootpw) + if "gui" == ui_mode + @screen.type(Sikuli::Key.TAB) + else + @screen.type(Sikuli::Key.ENTER) + @screen.waitVanish(diui_png("RootPassword",ui_mode), 10) + end @screen.type(rootpw + Sikuli::Key.ENTER) end -Given /^I set the password for "([^"]*)" to be "([^"]*)"$/ do |fullname,password| +Given /^in ([a-z]*) mode I set the password for "([^"]*)" to be "([^"]*)"$/ do |ui_mode,fullname,password| # Username, and password twice - @screen.wait("DebianInstallerNameOfUser.png", 10) + @screen.wait(diui_png("NameOfUser",ui_mode), 10) @screen.type(fullname + Sikuli::Key.ENTER) - @screen.waitVanish("DebianInstallerNameOfUser.png", 10) + @screen.waitVanish(diui_png("NameOfUser",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) - @screen.wait("DebianInstallerUserPassword.png", 10) - @screen.type(password + Sikuli::Key.ENTER) - @screen.waitVanish("DebianInstallerUserPassword.png", 10) + @screen.wait(diui_png("UserPassword",ui_mode), 10) + @screen.type(password) + if "gui" == ui_mode + @screen.type(Sikuli::Key.TAB) + else + @screen.type(Sikuli::Key.ENTER) + @screen.waitVanish(diui_png("UserPassword",ui_mode), 10) + end @screen.type(password + Sikuli::Key.ENTER) end - #@screen.wait("DebianInstallerNoDiskFound.png", 60) + #@screen.wait(diui_png("NoDiskFound",ui_mode), 60) -Given /^I select full-disk, single-filesystem partitioning$/ do - @screen.wait("DebianInstallerPartitioningMethod.png", 60) +Given /^in ([a-z]*) mode I select full-disk, single-filesystem partitioning$/ do |ui_mode| + @screen.wait(diui_png("PartitioningMethod",ui_mode), 60) + sleep(10) + @screen.wait(diui_png("PartitioningMethod",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) - @screen.wait("DebianInstallerSelectDiskToPartition.png", 10) + @screen.wait(diui_png("SelectDiskToPartition",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) - @screen.wait("DebianInstallerPartitioningScheme.png", 10) + @screen.wait(diui_png("PartitioningScheme",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) - @screen.wait("d-i_FinishPartitioning.png", 10) + @screen.wait(diui_png("FinishPartitioning",ui_mode), 10) sleep(5) # FIXME -- why do we need this? It's weird that the wait is not enough @screen.type(Sikuli::Key.ENTER) # prompt about Writing Partitions to disk: - @screen.wait("d-i_No.png", 10) - @screen.type(Sikuli::Key.TAB) - @screen.wait("d-i_Yes.png", 10) + @screen.wait(diui_png("No",ui_mode), 10) + if "gui" == ui_mode + @screen.type(Sikuli::Key.DOWN) + else + @screen.type(Sikuli::Key.TAB) + end + @screen.wait(diui_png("Yes",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) end -Given /^I note that the Base system is being installed$/ do - @screen.wait("DebianInstallerInstallingBaseSystem.png", 30) - @screen.waitVanish("DebianInstallerInstallingBaseSystem.png", 15 * 60) +Given /^in ([a-z]*) mode I note that the Base system is being installed$/ do |ui_mode| + @screen.wait(diui_png("InstallingBaseSystem",ui_mode), 30) + @screen.waitVanish(diui_png("InstallingBaseSystem",ui_mode), 15 * 60) end -Given /^I accept the default mirror$/ do - @screen.wait("DebianInstallerMirrorCountry.png", 10 * 60) +Given /^in ([a-z]*) mode I accept the default mirror$/ do |ui_mode| + @screen.wait(diui_png("MirrorCountry",ui_mode), 10 * 60) @screen.type(Sikuli::Key.ENTER) - @screen.wait("d-i_ArchiveMirror.png", 5) + @screen.wait(diui_png("ArchiveMirror",ui_mode), 5) @screen.type(Sikuli::Key.ENTER) - @screen.wait("d-i_HttpProxy.png", 5) + @screen.wait(diui_png("HttpProxy",ui_mode), 5) + #@screen.type("http://local-http-proxy:3128/" + Sikuli::Key.ENTER) @screen.type(Sikuli::Key.ENTER) end -Given /^I neglect to scan more CDs$/ do - @screen.wait("d-i_ScanCD.png", 15 * 60) +Given /^in ([a-z]*) mode I neglect to scan more CDs$/ do |ui_mode| + @screen.wait(diui_png("ScanCD",ui_mode), 15 * 60) @screen.type(Sikuli::Key.ENTER) - @screen.wait("d-i_UseNetMirror.png", 10) - @screen.wait("d-i_Yes.png", 10) - @screen.type(Sikuli::Key.TAB) - @screen.wait("d-i_No.png", 10) + @screen.wait(diui_png("UseNetMirror",ui_mode), 10) + @screen.wait(diui_png("Yes",ui_mode), 10) + if "gui" == ui_mode + @screen.type(Sikuli::Key.DOWN) + else + @screen.type(Sikuli::Key.TAB) + end + @screen.wait(diui_png("No",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) end -Given /^I ignore Popcon$/ do - #@screen.wait("d-i_popcon.png", 10 * 60) - @screen.wait("d-i_No.png", 10 * 60) +Given /^in ([a-z]*) mode I ignore Popcon$/ do |ui_mode| + @screen.wait(diui_png("popcon",ui_mode), 10 * 60) @screen.type(Sikuli::Key.ENTER) + @screen.waitVanish(diui_png("popcon",ui_mode), 10) end -Given /^we reach the Tasksel prompt$/ do - @screen.wait("d-i_ChooseSoftware.png", 5 * 60) +Given /^in ([a-z]*) mode we reach the Tasksel prompt$/ do |ui_mode| + @screen.wait(diui_png("ChooseSoftware",ui_mode), 5 * 60) end -Given /^I hit ENTER$/ do +Given /^in ([a-z]*) mode I unset the Desktop task$/ do |ui_mode| + @screen.wait(diui_png("DesktopTask_Yes",ui_mode), 2 * 60) + + # deal with post-snapshot screen flicker FIXME -- check if we really need this + sleep(5) + @screen.wait(diui_png("DesktopTask_Yes",ui_mode), 10) + + @screen.type(Sikuli::Key.SPACE) + @screen.waitVanish(diui_png("DesktopTask_Yes",ui_mode), 10) + + if "gui" == ui_mode + @screen.wait(diui_png("CONTINUEunselected",ui_mode), 10) + @screen.type(Sikuli::Key.TAB) + @screen.wait(diui_png("CONTINUEselected",ui_mode), 10) + end @screen.type(Sikuli::Key.ENTER) end -Given /^I select the Desktop task$/ do - @screen.wait("d-i_ChooseSoftware.png", 10) +Given /^in ([a-z]*) mode I unset the Desktop and Print tasks$/ do |ui_mode| + @screen.wait(diui_png("DesktopTask_Yes",ui_mode), 2 * 60) + + # deal with post-snapshot screen flicker FIXME -- check if we really need this + sleep(5) + @screen.wait(diui_png("DesktopTask_Yes",ui_mode), 10) + @screen.type(Sikuli::Key.SPACE) @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) + @screen.type(Sikuli::Key.DOWN) @screen.type(Sikuli::Key.SPACE) - @screen.wait("d-i_DesktopTask_Yes.png", 10) + @screen.waitVanish(diui_png("DesktopTask_Yes",ui_mode), 10) + + if "gui" == ui_mode + @screen.wait(diui_png("CONTINUEunselected",ui_mode), 10) + @screen.type(Sikuli::Key.TAB) + @screen.wait(diui_png("CONTINUEselected",ui_mode), 10) + end + @screen.type(Sikuli::Key.ENTER) +end + +Given /^in ([a-z]*) mode I select the Desktop task$/ do |ui_mode| + @screen.wait(diui_png("DesktopTask_Yes",ui_mode), 2 * 60) + + # deal with post-snapshot screen flicker -- FIXME this needs to be fixed via looking to see if the remote login is working before we look at the screen + debug_log("debug: Found DesktopTask_Yes, pausing for 20s", :color => :blue) + sleep(20) + + @screen.type(Sikuli::Key.DOWN+Sikuli::Key.SPACE) + @screen.wait(diui_png("Desktop+Gnome",ui_mode), 10) + if "gui" == ui_mode + @screen.wait(diui_png("CONTINUEunselected",ui_mode), 10) + @screen.type(Sikuli::Key.TAB) + @screen.wait(diui_png("CONTINUEselected",ui_mode), 10) + end @screen.type(Sikuli::Key.ENTER) + @screen.waitVanish(diui_png("Desktop+Gnome",ui_mode), 10) +end + +Given /^in ([a-z]*) mode I wait while the bulk of the packages are installed$/ do |ui_mode| + @screen.wait(diui_png("InstallSoftware",ui_mode), 10) + @screen.waitVanish(diui_png("InstallSoftware",ui_mode), 80 * 60) end -Given /^I install GRUB$/ do - @screen.wait("d-i_InstallGRUB.png", 80 * 60) +Given /^in ([a-z]*) mode I install GRUB$/ do |ui_mode| #@screen.wait("Install the GRUB", 80 * 60) + debug_log("debug: Look for InstallingGRUBprogress", :color => :blue) + @screen.wait(diui_png("InstallingGRUBprogress",ui_mode), 2 * 60) + debug_log("debug: Found InstallingGRUBprogress", :color => :blue) + @screen.waitVanish(diui_png("InstallingGRUBprogress",ui_mode), 2 * 60) + debug_log("debug: InstallingGRUBprogress gone again", :color => :blue) + debug_log("debug: Look for InstallGRUB", :color => :blue) + @screen.wait(diui_png("InstallGRUB",ui_mode), 2 * 60) + debug_log("debug: Found InstallGRUB", :color => :blue) + sleep(10) + @screen.wait(diui_png("InstallGRUB",ui_mode), 10) + debug_log("debug: Found InstallGRUB (again)", :color => :blue) + if "gui" == ui_mode + debug_log("debug: We're in GUI mode", :color => :blue) + @screen.wait(diui_png("CONTINUEunselected",ui_mode), 10) + debug_log("debug: Found CONTINUEunselected", :color => :blue) + sleep(10) + debug_log("debug: Press UP", :color => :blue) + @screen.type(Sikuli::Key.UP) + sleep(10) + debug_log("debug: Press DOWN", :color => :blue) + @screen.type(Sikuli::Key.DOWN) + sleep(10) + debug_log("debug: Press TAB", :color => :blue) + @screen.type(Sikuli::Key.TAB) + @screen.wait(diui_png("CONTINUEselected",ui_mode), 10) + debug_log("debug: Found CONTINUEselected", :color => :blue) + end + debug_log("debug: Press ENTER", :color => :blue) @screen.type(Sikuli::Key.ENTER) - @screen.wait("d-i_GRUBEnterDev.png", 10 * 60) + @screen.wait(diui_png("GRUBEnterDev",ui_mode), 10 * 60) @screen.type(Sikuli::Key.DOWN) - @screen.wait("d-i_GRUBdev.png", 10) + @screen.wait(diui_png("GRUBdev",ui_mode), 10) @screen.type(Sikuli::Key.ENTER) end -Given /^I allow reboot after the install is complete$/ do - @screen.wait("d-i_InstallComplete.png", 2 * 60) +Given /^in ([a-z]*) mode I allow reboot after the install is complete$/ do |ui_mode| + @screen.wait(diui_png("InstallComplete",ui_mode), 2 * 60) @screen.type(Sikuli::Key.ENTER) end @@ -394,11 +507,7 @@ Given /^I wait for the reboot$/ do @screen.wait(bootsplash, 10 * 60) end -Given /^I make sure that we boot from disk$/ do - @screen.wait("d-i_GRUB_Debian.png", 5 * 60) -end - -Given /^I wait for a Login Prompt$/ do +Given /^I should see a Login prompt$/ do @screen.wait("DebianLoginPromptVT.png", 2 * 60) end diff --git a/cucumber/features/step_definitions/snapshots.rb b/cucumber/features/step_definitions/snapshots.rb index 13e4a5b6..2e064107 100644 --- a/cucumber/features/step_definitions/snapshots.rb +++ b/cucumber/features/step_definitions/snapshots.rb @@ -2,201 +2,125 @@ 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', + :parent_checkpoint => nil, :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', + 'I boot the computer, and select text mode', + 'in text mode I select British English', + 'in text mode I accept the hostname, using "example.com" as the domain', + 'in text mode I set the root password to "rootme"', + 'in text mode I set the password for "Philip Hands" to be "verysecret"', + 'in text mode I select full-disk, single-filesystem partitioning', + 'in text mode I note that the Base system is being installed', + 'in text mode I accept the default mirror', + 'in text mode I ignore Popcon', + 'in text mode we reach the Tasksel prompt', ], }, - 'debian-minimal-install' => { - :description => "I have installed Minimal Debian", - :parent_checkpoint => 'boot-d-i-to-tasksel', + 'boot-g-i-to-tasksel' => { + :description => "I have started GUI Debian Installer and stopped at the Tasksel prompt", + :parent_checkpoint => nil, :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"', + 'I create a 8 GiB disk named "target"', + 'I plug ide drive "target"', + 'I start the computer', + 'I boot the computer, and select gui mode', + 'in gui mode I select British English', + 'in gui mode I accept the hostname, using "example.com" as the domain', + 'in gui mode I set the root password to "rootme"', + 'in gui mode I set the password for "Philip Hands" to be "verysecret"', + 'in gui mode I select full-disk, single-filesystem partitioning', + 'in gui mode I note that the Base system is being installed', + 'in gui mode I accept the default mirror', + 'in gui mode I ignore Popcon', + 'in gui mode we reach the Tasksel prompt', ], }, - 'debian-gnome-install' => { - :description => "I have installed Gnome Desktop Debian", + 'debian-console-install' => { + :description => "I install a non-GUI Debian system, in text mode", :parent_checkpoint => 'boot-d-i-to-tasksel', :steps => [ - 'I select the Desktop task', - 'I install GRUB', - 'I allow reboot after the install is complete', + 'in text mode I unset the Desktop task', + 'in text mode I wait while the bulk of the packages are installed', + 'in text mode I install GRUB', + 'in text mode 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', + 'debian-gui-console-install' => { + :description => "I install a non-GUI Debian system, in gui mode", + :parent_checkpoint => 'boot-g-i-to-tasksel', :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', + 'in gui mode I unset the Desktop task', + 'in gui mode I wait while the bulk of the packages are installed', + 'in gui mode I install GRUB', + 'in gui mode 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"', ], }, - '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', + 'debian-minimal-install' => { + :description => "I install a Minimal Debian system, in text mode", + :parent_checkpoint => 'boot-d-i-to-tasksel', :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', + 'in text mode I unset the Desktop and Print tasks', + 'in text mode I wait while the bulk of the packages are installed', + 'in text mode I install GRUB', + 'in text mode 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"', ], }, - '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', + 'debian-gui-minimal-install' => { + :description => "I install a Minimal Debian system, in gui mode", + :parent_checkpoint => 'boot-g-i-to-tasksel', :steps => [ - 'I log in to a new session', - 'the Tails desktop is ready', + 'in gui mode I unset the Desktop and Print tasks', + 'in gui mode I wait while the bulk of the packages are installed', + 'in gui mode I install GRUB', + 'in gui mode 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"', ], }, - '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', + 'debian-gnome-install' => { + :description => "I install a Gnome Desktop Debian system, in text mode", + :parent_checkpoint => 'boot-d-i-to-tasksel', :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', + 'in text mode I select the Desktop task', + 'in text mode I wait while the bulk of the packages are installed', + 'in text mode I install GRUB', + 'in text mode 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"', ], }, - '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', + 'debian-gui-gnome-install' => { + :description => "I install a Gnome Desktop Debian system, in gui mode", + :parent_checkpoint => 'boot-g-i-to-tasksel', :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', + 'in gui mode I select the Desktop task', + 'in gui mode I wait while the bulk of the packages are installed', + 'in gui mode I install GRUB', + 'in gui mode 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"', ], }, } diff --git a/cucumber/features/support/config.rb b/cucumber/features/support/config.rb index 25c107b4..60432246 100644 --- a/cucumber/features/support/config.rb +++ b/cucumber/features/support/config.rb @@ -1,11 +1,11 @@ require 'fileutils' require 'yaml' -require "features/support/helpers/misc_helpers.rb" +require "cucumber/features/support/helpers/misc_helpers.rb" # These files deal with options like some of the settings passed # to the `run_test_suite` script, and "secrets" like credentials # (passwords, SSH keys) to be used in tests. -CONFIG_DIR = "/srv/jenkins/features/config" +CONFIG_DIR = "/srv/jenkins/cucumber/features/config" DEFAULTS_CONFIG_FILE = "#{CONFIG_DIR}/defaults.yml" LOCAL_CONFIG_FILE = "#{CONFIG_DIR}/local.yml" LOCAL_CONFIG_DIRS_FILES_GLOB = "#{CONFIG_DIR}/*.d/*.yml" @@ -15,7 +15,7 @@ $tails_iso = ENV['ISO'] || get_newest_iso $old_tails_iso = ENV['OLD_ISO'] || get_oldest_iso $tmp_dir = ENV['PWD'] $vm_xml_path = ENV['VM_XML_PATH'] -$misc_files_dir = "features/misc_files" +$misc_files_dir = "cucumber/features/misc_files" $keep_snapshots = !ENV['KEEP_SNAPSHOTS'].nil? $x_display = ENV['DISPLAY'] $debug = !ENV['DEBUG'].nil? @@ -58,13 +58,7 @@ LIVE_USER = "live_user" TAILS_ISO = ENV['ISO'] OLD_TAILS_ISO = ENV['OLD_ISO'] || TAILS_ISO TIME_AT_START = Time.now -loop do - ARTIFACTS_DIR = $config['TMPDIR'] + "/results" - if not(File.exist?(ARTIFACTS_DIR)) - FileUtils.mkdir_p(ARTIFACTS_DIR) - break - end -end +ARTIFACTS_DIR = $config['TMPDIR'] + "/results" # Constants that are statically initialized. CONFIGURED_KEYSERVER_HOSTNAME = 'hkps.pool.sks-keyservers.net' @@ -72,7 +66,7 @@ LIBVIRT_DOMAIN_NAME = "DebianToaster" LIBVIRT_DOMAIN_UUID = "203552d5-819c-41f3-800e-2c8ef2545404" LIBVIRT_NETWORK_NAME = "DebianToasterNet" LIBVIRT_NETWORK_UUID = "f2305af3-2a64-4f16-afe6-b9dbf02a597e" -MISC_FILES_DIR = "/srv/jenkins/features/misc_files" +MISC_FILES_DIR = "/srv/jenkins/cucumber/features/misc_files" SERVICES_EXPECTED_ON_ALL_IFACES = [ ["cupsd", "0.0.0.0", "631"], @@ -94,7 +88,7 @@ TOR_AUTHORITIES = "171.25.193.9", "154.35.175.225", ] -VM_XML_PATH = "/srv/jenkins/features/domains" +VM_XML_PATH = "/srv/jenkins/cucumber/features/domains" #TAILS_SIGNING_KEY = cmd_helper(". #{Dir.pwd}/config/amnesia; echo ${AMNESIA_DEV_KEYID}").tr(' ', '').chomp TAILS_DEBIAN_REPO_KEY = "221F9A3C6FA3E09E182E060BC7988EA7A358D82E" diff --git a/cucumber/features/support/env.rb b/cucumber/features/support/env.rb index 2e17ae76..53f502e1 100644 --- a/cucumber/features/support/env.rb +++ b/cucumber/features/support/env.rb @@ -1,5 +1,5 @@ require 'rubygems' -require "features/support/extra_hooks.rb" +require "cucumber/features/support/extra_hooks.rb" require 'time' require 'rspec' -- cgit v1.2.3-70-g09d2