← Back to team overview

canonical-ubuntu-qa team mailing list archive

[Merge] ~andersson123/autopkgtest-cloud:remove_obsolete_tests into autopkgtest-cloud:master

 

Tim Andersson has proposed merging ~andersson123/autopkgtest-cloud:remove_obsolete_tests into autopkgtest-cloud:master.

Requested reviews:
  Canonical's Ubuntu QA (canonical-ubuntu-qa)

For more details, see:
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/446492
-- 
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:remove_obsolete_tests into autopkgtest-cloud:master.
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..efded49
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,18 @@
+================================
+ Upgrade Testing Specifications
+================================
+
+This repository contains example and in-use profile yaml files for use with
+lp:auto-upgrade-testing.
+
+Examples
+========
+
+The directory ./examples contain many example profile files highlighting
+different backend options and testing definitions.
+
+Profiles
+========
+
+The directory ./profiles contain profile files that are in use in various
+settings (jenkins runs etc.).
diff --git a/cloudinit/default b/cloudinit/default
new file mode 100644
index 0000000..ee68387
--- /dev/null
+++ b/cloudinit/default
@@ -0,0 +1,16 @@
+#cloud-config
+locale: en_US.UTF-8
+password: ubuntu
+chpasswd: { expire: False }
+ssh_pwauth: True
+manage_etc_hosts: True
+runcmd:
+ - sed -i 's/deb-systemd-invoke/true/' /var/lib/dpkg/info/cloud-init.prerm
+ - mount -r /dev/vdb /mnt
+ - env ADT_SETUP_VM_UPGRADE=false ADT_SETUP_VM_POST_COMMAND=''
+     sh /mnt/adt-setup-vm
+ - if grep -q 'net.ifnames=0' /etc/default/grub; then rm /etc/network/interfaces.d/eth0.cfg; printf "auto ens3\\niface ens3 inet dhcp\\n" > /etc/network/interfaces.d/ens3.cfg; fi
+ - umount /mnt
+ - sed -i 's/deb-systemd-invoke/true/' /var/lib/dpkg/info/cloud-init.prerm
+ - (while [ ! -e /var/lib/cloud/instance/boot-finished ]; do sleep 1; done;
+    apt-get -y purge cloud-init; shutdown -P now) &
diff --git a/cloudinit/ubuntu-desktop b/cloudinit/ubuntu-desktop
new file mode 100644
index 0000000..d63205e
--- /dev/null
+++ b/cloudinit/ubuntu-desktop
@@ -0,0 +1,20 @@
+#cloud-config
+locale: en_US.UTF-8
+password: ubuntu
+chpasswd: { expire: False }
+ssh_pwauth: True
+manage_etc_hosts: True
+runcmd:
+ - sed -i 's/deb-systemd-invoke/true/' /var/lib/dpkg/info/cloud-init.prerm
+ - mount -r /dev/vdb /mnt
+ - env ADT_SETUP_VM_UPGRADE=false ADT_SETUP_VM_POST_COMMAND=''
+     sh /mnt/adt-setup-vm
+ - if grep -q 'net.ifnames=0' /etc/default/grub; then rm /etc/network/interfaces.d/eth0.cfg; printf "auto ens3\\niface ens3 inet dhcp\\n" > /etc/network/interfaces.d/ens3.cfg; fi
+ - umount /mnt
+ - sed -i 's/deb-systemd-invoke/true/' /var/lib/dpkg/info/cloud-init.prerm
+ - (while [ ! -e /var/lib/cloud/instance/boot-finished ]; do sleep 1; done;
+    apt-get -y purge cloud-init; shutdown -P now) &
+apt-update: true
+apt-upgrade: true
+packages:
+ - ubuntu-desktop^
diff --git a/examples/backends/backend-example-lxc.yaml b/examples/backends/backend-example-lxc.yaml
new file mode 100644
index 0000000..96889ca
--- /dev/null
+++ b/examples/backends/backend-example-lxc.yaml
@@ -0,0 +1,16 @@
+---
+- testname: "Testname goes here"
+  provisioning:
+    backend: lxc
+    arch: amd64
+    distribution: ubuntu
+    # First release is the initial and what will be provisioned and
+    # the pre scripts run on.
+    # For each release in the list after that the post scripts will be
+    # run and then the upgrade.
+    releases:
+      - "precise"
+      - "trusty"
+
+
+  # Test details go below here. See examples/specifications/ for examples.
diff --git a/examples/backends/backend-example-qemu.yaml b/examples/backends/backend-example-qemu.yaml
new file mode 100644
index 0000000..cf83645
--- /dev/null
+++ b/examples/backends/backend-example-qemu.yaml
@@ -0,0 +1,15 @@
+---
+- testname: "Testname goes here"
+  provisioning:
+    backend: qemu
+    arch: i386
+    image_name: wily_xenial_basic_i386.img
+    # First release is the initial and what will be provisioned and
+    # the pre scripts run on.
+    # For each release in the list after that the post scripts will be
+    # run and then the upgrade.
+    releases:
+      - "wily"
+      - "xenial"
+
+  # Test details go below here. See examples/specifications/ for examples.
\ No newline at end of file
diff --git a/examples/backends/backend-example-touch.yaml b/examples/backends/backend-example-touch.yaml
new file mode 100644
index 0000000..a2c5e4d
--- /dev/null
+++ b/examples/backends/backend-example-touch.yaml
@@ -0,0 +1,14 @@
+---
+- testname: "Testname goes here"
+  provisioning:
+   backend: touch
+   channel: ubuntu-touch/rc-proposed/bq-aquaris.en
+   password: "0000"
+   # Recovery file is required for Krillin devices.
+   recovery_file: "/path/to/device/recoveryfile.img"
+   # The revision of the provided channel to flash and provison on the
+   # device. The device will be upgraded to the latest revision of the
+   # same channel during the upgrade process.
+   # N.B. There is no mechanism to upgrade to an arbitary revision.
+   revision: "177"
+  # Test details go below here. See examples/specifications/ for examples.
\ No newline at end of file
diff --git a/examples/specifications/example-test-specification.yaml b/examples/specifications/example-test-specification.yaml
new file mode 100644
index 0000000..a2c1543
--- /dev/null
+++ b/examples/specifications/example-test-specification.yaml
@@ -0,0 +1,36 @@
+---
+- testname: "Testname goes here"
+  # Provisioning details go here. See examples/backends for examples.
+
+  # Script location can be a local path.
+  # A relative path (i.e. starting either with ./ or ../) is relative to the
+  # location of the specification file.
+  script_location: file://./tests
+  # Or a bzr path to the location (that will be exported).
+  script_location: lp:auto-upgrade-testing-specifications/
+
+  # Backend arguments are passed through to the adt-run backend section
+  # {script_location} can be used here
+  backend_args: --needed-file={script_location}/../resources/file.ext
+
+  # There are 2 stages of scripts/tests that are run.
+  #  - pre_upgrade_scripts: These are run after the backend has been
+  #    provisioned but before the system is rebooted. Useful for setting things
+  #    up or testing that the system is in an expected state.
+  #  - post_upgrade_tests: These are the scripts that are run after the system
+  #    has been rebooted.
+  # Scripts to be run during a run can be specified either individually
+  pre_upgrade_scripts:
+    - "null"
+
+  post_upgrade_tests:
+    - "null"
+    - "test_pass"
+    - "test_fail"
+
+  # Or you can define a directory where each executable found within will be
+  # run
+  # A relative path (i.e. starting either with ./ or ../) is relative to the
+  # location of the specification file.
+  pre_upgrade_scripts: "./tests"
+  post_upgrade_tests: "./tests"
diff --git a/profiles/ubuntu-bionic-focal-basic-amd64_qemu.yaml b/profiles/ubuntu-bionic-focal-basic-amd64_qemu.yaml
new file mode 100644
index 0000000..7cb013c
--- /dev/null
+++ b/profiles/ubuntu-bionic-focal-basic-amd64_qemu.yaml
@@ -0,0 +1,18 @@
+---
+- testname: "bionic->focal basic upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: bionic_focal_basic_amd64.img
+    releases:
+      - "bionic"
+      - "focal"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "rcS-workaround"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-bionic-focal-desktop-amd64_qemu.yaml b/profiles/ubuntu-bionic-focal-desktop-amd64_qemu.yaml
new file mode 100644
index 0000000..ec4a600
--- /dev/null
+++ b/profiles/ubuntu-bionic-focal-desktop-amd64_qemu.yaml
@@ -0,0 +1,22 @@
+---
+- testname: "bionic->focal desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: bionic_focal_ubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-desktop^' --timeout 14400"
+    releases:
+      - "bionic"
+      - "focal"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "rcS-workaround"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
+
+  run_system_tests: true
diff --git a/profiles/ubuntu-focal-jammy-basic-amd64_qemu.yaml b/profiles/ubuntu-focal-jammy-basic-amd64_qemu.yaml
new file mode 100644
index 0000000..e8b26e9
--- /dev/null
+++ b/profiles/ubuntu-focal-jammy-basic-amd64_qemu.yaml
@@ -0,0 +1,18 @@
+---
+- testname: "focal->jammy basic upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: focal_jammy_basic_amd64.img
+    releases:
+        - "focal"
+        - "jammy"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "null"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-focal-jammy-desktop-amd64_qemu.yaml b/profiles/ubuntu-focal-jammy-desktop-amd64_qemu.yaml
new file mode 100644
index 0000000..7a4a263
--- /dev/null
+++ b/profiles/ubuntu-focal-jammy-desktop-amd64_qemu.yaml
@@ -0,0 +1,22 @@
+---
+- testname: "focal->jammy desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: focal_jammy_ubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "focal"
+      - "jammy"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
+
+  run_system_tests: true
diff --git a/profiles/ubuntu-focal-jammy-kubuntu-amd64_qemu.yaml b/profiles/ubuntu-focal-jammy-kubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..a9e52cc
--- /dev/null
+++ b/profiles/ubuntu-focal-jammy-kubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "focal->jammy desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: kubuntu
+    image_name: focal_jammy_kubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install kubuntu-desktop' -v --timeout 14400"
+    releases:
+      - "focal"
+      - "jammy"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-kubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-focal-jammy-lubuntu-amd64_qemu.yaml b/profiles/ubuntu-focal-jammy-lubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..ba0e699
--- /dev/null
+++ b/profiles/ubuntu-focal-jammy-lubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "focal->jammy desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: lubuntu
+    image_name: focal_jammy_lubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ^lubuntu-desktop' -v --timeout 14400"
+    releases:
+      - "focal"
+      - "jammy"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-lubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-focal-jammy-ubuntu-mate-amd64_qemu.yaml b/profiles/ubuntu-focal-jammy-ubuntu-mate-amd64_qemu.yaml
new file mode 100644
index 0000000..49e9ec8
--- /dev/null
+++ b/profiles/ubuntu-focal-jammy-ubuntu-mate-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "focal->jammy desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu-mate
+    image_name: focal_jammy_ubuntu_mate_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-mate-desktop' -v --timeout 14400"
+    releases:
+      - "focal"
+      - "jammy"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-mate-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-focal-jammy-xubuntu-amd64_qemu.yaml b/profiles/ubuntu-focal-jammy-xubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..666e94a
--- /dev/null
+++ b/profiles/ubuntu-focal-jammy-xubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "focal->jammy desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: xubuntu
+    image_name: focal_jammy_xubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ^xubuntu-desktop' -v --timeout 14400"
+    releases:
+      - "focal"
+      - "jammy"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-xubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-jammy-kinetic-basic-amd64_qemu.yaml b/profiles/ubuntu-jammy-kinetic-basic-amd64_qemu.yaml
new file mode 100644
index 0000000..fce07a3
--- /dev/null
+++ b/profiles/ubuntu-jammy-kinetic-basic-amd64_qemu.yaml
@@ -0,0 +1,18 @@
+---
+- testname: "jammy->kinetic basic upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: jammy_kinetic_basic_amd64.img
+    releases:
+        - "jammy"
+        - "kinetic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "null"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-jammy-kinetic-desktop-amd64_qemu.yaml b/profiles/ubuntu-jammy-kinetic-desktop-amd64_qemu.yaml
new file mode 100644
index 0000000..3b3ffd0
--- /dev/null
+++ b/profiles/ubuntu-jammy-kinetic-desktop-amd64_qemu.yaml
@@ -0,0 +1,22 @@
+---
+- testname: "jammy->kinetic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: jammy_kinetic_ubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "jammy"
+      - "kinetic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
+
+  run_system_tests: true
diff --git a/profiles/ubuntu-jammy-kinetic-kubuntu-amd64_qemu.yaml b/profiles/ubuntu-jammy-kinetic-kubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..38c9469
--- /dev/null
+++ b/profiles/ubuntu-jammy-kinetic-kubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "jammy->kinetic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: kubuntu
+    image_name: jammy_kinetic_kubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install kubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "jammy"
+      - "kinetic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-kubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-jammy-kinetic-lubuntu-amd64_qemu.yaml b/profiles/ubuntu-jammy-kinetic-lubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..933aa47
--- /dev/null
+++ b/profiles/ubuntu-jammy-kinetic-lubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "jammy->kinetic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: lubuntu
+    image_name: jammy_kinetic_lubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install lubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "jammy"
+      - "kinetic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-lubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-jammy-kinetic-ubuntu-mate-amd64_qemu.yaml b/profiles/ubuntu-jammy-kinetic-ubuntu-mate-amd64_qemu.yaml
new file mode 100644
index 0000000..997a370
--- /dev/null
+++ b/profiles/ubuntu-jammy-kinetic-ubuntu-mate-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "jammy->kinetic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu-mate
+    image_name: jammy_kinetic_ubuntu_mate_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-mate-desktop^' -v --timeout 14400"
+    releases:
+      - "jammy"
+      - "kinetic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-mate-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-jammy-kinetic-xubuntu-amd64_qemu.yaml b/profiles/ubuntu-jammy-kinetic-xubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..1a78a1f
--- /dev/null
+++ b/profiles/ubuntu-jammy-kinetic-xubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "jammy->kinetic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: xubuntu
+    image_name: jammy_kinetic_xubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "jammy"
+      - "kinetic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-xubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-lunar-mantic-basic-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-basic-amd64_qemu.yaml
new file mode 100644
index 0000000..30655a6
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-basic-amd64_qemu.yaml
@@ -0,0 +1,18 @@
+---
+- testname: "lunar->mantic basic upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: lunar_mantic_basic_amd64.img
+    releases:
+        - "lunar"
+        - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "null"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
\ No newline at end of file
diff --git a/profiles/ubuntu-lunar-mantic-desktop-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-desktop-amd64_qemu.yaml
new file mode 100644
index 0000000..acedf80
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-desktop-amd64_qemu.yaml
@@ -0,0 +1,22 @@
+---
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu
+    image_name: lunar_mantic_ubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
+
+  run_system_tests: true
\ No newline at end of file
diff --git a/profiles/ubuntu-lunar-mantic-kubuntu-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-kubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..ee608fb
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-kubuntu-amd64_qemu.yaml
@@ -0,0 +1,19 @@
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: kubuntu
+    image_name: lunar_mantic_kubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install kubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-kubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-lunar-mantic-lubuntu-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-lubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..6e15a2d
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-lubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: lubuntu
+    image_name: lunar_mantic_lubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install lubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-lubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/profiles/ubuntu-lunar-mantic-ubuntu-mate-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-ubuntu-mate-amd64_qemu.yaml
new file mode 100644
index 0000000..e67125a
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-ubuntu-mate-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu-mate
+    image_name: lunar_mantic_ubuntu_mate_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-mate-desktop^' -v --timeout 14400"
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-mate-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
\ No newline at end of file
diff --git a/profiles/ubuntu-lunar-mantic-ubuntu-unity-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-ubuntu-unity-amd64_qemu.yaml
new file mode 100644
index 0000000..1d7c351
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-ubuntu-unity-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntu-unity
+    image_name: lunar_mantic_ubuntu_unity_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntu-unity-desktop^' -v --timeout 14400" 
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntu-unity-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
\ No newline at end of file
diff --git a/profiles/ubuntu-lunar-mantic-ubuntucinnamon-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-ubuntucinnamon-amd64_qemu.yaml
new file mode 100644
index 0000000..b349b37
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-ubuntucinnamon-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: ubuntucinnamon
+    image_name: lunar_mantic_ubuntucinnamon_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install ubuntucinnamon-desktop' -v --timeout 14400" 
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-ubuntucinnamon-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
\ No newline at end of file
diff --git a/profiles/ubuntu-lunar-mantic-xubuntu-amd64_qemu.yaml b/profiles/ubuntu-lunar-mantic-xubuntu-amd64_qemu.yaml
new file mode 100644
index 0000000..5f5362c
--- /dev/null
+++ b/profiles/ubuntu-lunar-mantic-xubuntu-amd64_qemu.yaml
@@ -0,0 +1,20 @@
+---
+- testname: "lunar->mantic desktop upgrade"
+  provisioning:
+    backend: qemu
+    arch: amd64
+    flavor: xubuntu
+    image_name: lunar_mantic_xubuntu_desktop_amd64.img
+    build_args:
+      - "--post-command 'sudo apt-get -y update && sudo apt-get -y dist-upgrade && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xubuntu-desktop^' -v --timeout 14400"
+    releases:
+      - "lunar"
+      - "mantic"
+
+  script_location: file://../tests
+  pre_upgrade_scripts:
+    - "check-xubuntu-desktop"
+
+  post_upgrade_tests:
+    - "check-conffile-prompt"
+    - "check-var-crash-empty"
diff --git a/resources/uefi-bios.bin b/resources/uefi-bios.bin
new file mode 100644
index 0000000..6b66cbb
Binary files /dev/null and b/resources/uefi-bios.bin differ
diff --git a/tests/check-conffile-prompt b/tests/check-conffile-prompt
new file mode 100755
index 0000000..eaa3ac2
--- /dev/null
+++ b/tests/check-conffile-prompt
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+LOG_FILE_PATH="/var/log/dist-upgrade/main.log"
+
+# First of all, check log file actually exists.
+if ! test -f "${LOG_FILE_PATH}"; then
+    printf "No dist upgrade log, something must have gone wrong.\n"
+    exit 1
+fi
+
+CHECK_ME="WARNING got a conffile prompt from dpkg"
+
+# Now check the log file for conffile prompts
+if grep -q "${CHECK_ME}" "${LOG_FILE_PATH}"; then
+    printf "Warning: conffile prompts found in log file for dist-upgrade. Log snippet:\n"
+    grep -A 5 -B 5 "${CHECK_ME}" "${LOG_FILE_PATH}"
+    exit 1
+fi
+
+printf "No conffile prompts found in log file for dist-upgrade, success.\n"
diff --git a/tests/check-edubuntu-desktop b/tests/check-edubuntu-desktop
new file mode 100755
index 0000000..1beeac2
--- /dev/null
+++ b/tests/check-edubuntu-desktop
@@ -0,0 +1 @@
+dpkg-query -W edubuntu-desktop
diff --git a/tests/check-kubuntu-desktop b/tests/check-kubuntu-desktop
new file mode 100755
index 0000000..8546ce9
--- /dev/null
+++ b/tests/check-kubuntu-desktop
@@ -0,0 +1 @@
+dpkg-query -W kubuntu-desktop
diff --git a/tests/check-lubuntu-desktop b/tests/check-lubuntu-desktop
new file mode 100755
index 0000000..c618446
--- /dev/null
+++ b/tests/check-lubuntu-desktop
@@ -0,0 +1 @@
+dpkg-query -W lubuntu-desktop
diff --git a/tests/check-ubuntu-desktop b/tests/check-ubuntu-desktop
new file mode 100755
index 0000000..fe100f0
--- /dev/null
+++ b/tests/check-ubuntu-desktop
@@ -0,0 +1 @@
+dpkg-query -W ubuntu-desktop
diff --git a/tests/check-ubuntu-mate-desktop b/tests/check-ubuntu-mate-desktop
new file mode 100755
index 0000000..84ad9c6
--- /dev/null
+++ b/tests/check-ubuntu-mate-desktop
@@ -0,0 +1 @@
+dpkg-query -W ubuntu-mate-desktop
diff --git a/tests/check-ubuntu-unity-desktop b/tests/check-ubuntu-unity-desktop
new file mode 100755
index 0000000..b0c4de0
--- /dev/null
+++ b/tests/check-ubuntu-unity-desktop
@@ -0,0 +1 @@
+dpkg-query -W ubuntu-unity-desktop
diff --git a/tests/check-ubuntucinnamon-desktop b/tests/check-ubuntucinnamon-desktop
new file mode 100755
index 0000000..76ae58c
--- /dev/null
+++ b/tests/check-ubuntucinnamon-desktop
@@ -0,0 +1 @@
+dpkg-query -W ubuntucinnamon-desktop
\ No newline at end of file
diff --git a/tests/check-var-crash-empty b/tests/check-var-crash-empty
new file mode 100755
index 0000000..c7dfa3e
--- /dev/null
+++ b/tests/check-var-crash-empty
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+crashdir=/var/crash
+
+echo "Checking for (absence of) crash files in $crashdir."
+
+if find "$crashdir" -maxdepth 0 ! -empty -exec false {} +; then
+    echo "PASS: $crashdir is empty (good)"
+else
+    echo "FAIL: $crashdir is not empty. Crash files sorted by creation time:"
+    ls -gGh -tr --time=creation --full-time "$crashdir"
+    exit 1
+fi
diff --git a/tests/check-xubuntu-desktop b/tests/check-xubuntu-desktop
new file mode 100755
index 0000000..4ed0334
--- /dev/null
+++ b/tests/check-xubuntu-desktop
@@ -0,0 +1 @@
+dpkg-query -W xubuntu-desktop
diff --git a/tests/install-utopic-hwe b/tests/install-utopic-hwe
new file mode 100755
index 0000000..35902e9
--- /dev/null
+++ b/tests/install-utopic-hwe
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sudo apt-get update
+sudo apt-get install -y --force-yes linux-image-generic-lts-utopic xserver-xorg-lts-utopic
diff --git a/tests/install-vivid-hwe b/tests/install-vivid-hwe
new file mode 100755
index 0000000..dc4402f
--- /dev/null
+++ b/tests/install-vivid-hwe
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sudo apt-get update
+sudo apt-get install -y --force-yes linux-image-generic-lts-vivid xserver-xorg-lts-vivid
diff --git a/tests/install-wily-hwe b/tests/install-wily-hwe
new file mode 100755
index 0000000..36e9196
--- /dev/null
+++ b/tests/install-wily-hwe
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sudo apt-get update
+sudo apt-get install -y --force-yes linux-image-generic-lts-wily xserver-xorg-lts-wily
diff --git a/tests/install-xenial-hwe b/tests/install-xenial-hwe
new file mode 100755
index 0000000..e4799af
--- /dev/null
+++ b/tests/install-xenial-hwe
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+sudo apt-get update
+sudo apt-get install -y --force-yes linux-image-generic-lts-xenial xserver-xorg-lts-xenial
diff --git a/tests/lts-desktop/post b/tests/lts-desktop/post
new file mode 100755
index 0000000..e554710
--- /dev/null
+++ b/tests/lts-desktop/post
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+#
+# This script checks user configuration settings after an Ubuntu 10.04
+# LTS to Ubuntu 12.04 LTS upgrade. Run prepare_lts_upgrade_user.sh in 10.04
+# LTS, then upgrade to 12.04 LTS (or later), and run this script to confirm
+# that settings were migrated properly. In particular this checks for gconf ->
+# gsettings migration (and sometimes changing the format of the values) for
+# popular settings, as well as custom panel/desktop launchers.
+#
+# You need to run both the prepare and this test script as the same user,
+# in a full desktop session.
+#
+# (C) 2012 Canonical Ltd.
+# Author: Martin Pitt <martin.pitt@xxxxxxxxxx>
+# License: GPL v2 or higher
+
+from __future__ import print_function
+
+import unittest
+import os, sys
+import subprocess
+from time import sleep
+
+try:
+    from gi.repository import Gio
+except:
+    # Not a desktop
+    print("Failed to import gi.repository. Not a LTS Desktop Upgrade. Skipping!")
+    sys.exit(0)
+
+class T(unittest.TestCase):
+    def test_background(self):
+        '''background image'''
+
+        bg_settings = Gio.Settings('org.gnome.desktop.background')
+        # note: original gconf value does not have a file:// prefix, but GNOME
+        # 3.x requires this prefix
+        self.assertEqual(bg_settings.get_string('picture-uri'),
+                         'file://%s/mybackground.jpg' % os.environ['HOME'])
+
+#   Theme is not preserved on upgrade. LP: #969569
+#   Test disabled
+#    def test_gtk_theme(self):
+#        '''GTK theme'''
+#
+#        iface_settings = Gio.Settings('org.gnome.desktop.interface')
+#        self.assertEqual(iface_settings.get_string('gtk-theme'), 'Radiance')
+
+    def test_custom_launchers(self):
+        '''Custom panel/desktop launchers appear in Unity launcher'''
+
+        launcher_settings = Gio.Settings('com.canonical.Unity.Launcher')
+        favorites = launcher_settings['favorites']
+
+        # gedit was dragged from Application menu to panel, pointing to system
+        # .desktop file
+        self.assertTrue('gedit.desktop' in favorites)
+
+        # custom "echo hello" panel starter uses its own .desktop file
+        for starter in favorites:
+            if 'echo' in starter:
+                self.assertTrue(os.path.exists(starter))
+                break
+        else:
+            self.fail('custom hello starter not found')
+
+        # gucharmap was dragged from Application menu to desktop, should be
+        # converted to system .desktop file
+        self.assertTrue('gucharmap.desktop' in favorites)
+
+        # custom "bc -l" desktop starter uses its own .desktop file
+        self.assertTrue('%s/Desktop/termcalc.desktop' % os.environ['HOME'] in favorites)
+
+    def test_keyboard_layouts(self):
+        '''Custom keyboard layouts are migrated and applied'''
+
+        # verify gconf->gsettings migration
+        kbd_settings = Gio.Settings('org.gnome.libgnomekbd.keyboard')
+        print(kbd_settings)
+        print(kbd_settings['layouts'])
+        self.assertEqual(kbd_settings['layouts'],
+                ['us','de\tnodeadkeys','gb','gb\tdvorak'])
+
+# NO DISPLAY IN AUTOMATED TEST
+#        # verify that they get applied to the X server correctly
+#        xprop = subprocess.Popen(['xprop', '-root', '_XKB_RULES_NAMES'],
+#                stdout=subprocess.PIPE, universal_newlines=True)
+#        out = xprop.communicate()[0]
+#        self.assertEqual(xprop.returncode, 0)
+#
+#        # chop off key name
+#        out = out.split('=', 1)[1].strip()
+#
+#        self.assertEqual(out, '"evdev", "pc105", "us,de,gb,gb", ",nodeadkeys,,dvorak", "grp:alts_toggle"')
+
+if os.getuid() == 0:
+    # Root ? reexecute itself as user ubuntu
+    ret = subprocess.call('sudo -H -u ubuntu dbus-launch %s' %
+                          os.path.abspath(__file__), shell=True)
+    sys.exit(ret)
+else:
+    # Give 1 minute for the session to start, convert, ...
+    sleep(60)
+    unittest.main()
diff --git a/tests/lts-desktop/pre b/tests/lts-desktop/pre
new file mode 100755
index 0000000..3eb55dd
--- /dev/null
+++ b/tests/lts-desktop/pre
@@ -0,0 +1,43 @@
+#!/bin/sh
+# This script sets some popular user configuration settings in an Ubuntu 10.04
+# LTS GNOME system. Run this, then upgrade to 12.04 LTS (or later), and run
+# test_lts_upgrade_user.py to confirm that settings were migrated properly. In
+# particular this checks for gconf -> gsettings migration (and sometimes
+# changing the format of the values) for popular settings, as well as custom
+# panel/desktop launchers.
+#
+# You need to run this script in a fully running GNOME desktop session.
+
+#
+# (C) 2012 Canonical Ltd.
+# Author: Martin Pitt <martin.pitt@xxxxxxxxxx>
+# License: GPL v2 or higher
+
+set -e
+
+# Install desktop metapackage
+export DEBIAN_FRONTEND=noninteractive
+apt-get update
+apt-get install -y --force-yes ubuntu-desktop
+
+echo "Setting custom background..."
+cp `ls /usr/share/backgrounds/*.jpg | head -n1` $HOME/mybackground.jpg
+gconftool -s /desktop/gnome/background/picture_filename --type string $HOME/mybackground.jpg
+
+echo "Setting Radiance theme..."
+gconftool -s /desktop/gnome/interface/gtk_theme --type string Radiance
+
+echo "Setting custom keyboard layouts..."
+gconftool -s /desktop/gnome/peripherals/keyboard/kbd/layouts --type list --list-type string "[us,de	nodeadkeys,gb,gb	dvorak]"
+gconftool -g /desktop/gnome/peripherals/keyboard/kbd/layouts
+
+echo 'Success. Now upgrade to 12.04 LTS and run test_lts_upgrade_user.py'
+
+# Execute User setup script
+USERSETUP="/upgrade-tester/data/prepare_lts_user"
+TARGETUSER="ubuntu"
+
+if [ -f "$USERSETUP" ]; then
+    chmod +x $USERSETUP
+    sudo -i -u $TARGETUSER sh $USERSETUP
+fi
diff --git a/tests/lts-desktop/x-running b/tests/lts-desktop/x-running
new file mode 100755
index 0000000..a962e57
--- /dev/null
+++ b/tests/lts-desktop/x-running
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+set -ex
+
+echo "Checking for X running"
+pgrep X
+ps auxw | grep X
+echo "Done checking for X running"
diff --git a/tests/null b/tests/null
new file mode 100755
index 0000000..8ac22b4
--- /dev/null
+++ b/tests/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+echo "NULL Test"
+exit 0
diff --git a/tests/rcS-workaround b/tests/rcS-workaround
new file mode 100755
index 0000000..bbe4b2e
--- /dev/null
+++ b/tests/rcS-workaround
@@ -0,0 +1,3 @@
+#!/bin/sh -ex
+echo 'Dpkg::Options { "--force-confdef"; }' | sudo tee /etc/apt/apt.conf.d/local
+sudo rm /etc/default/rcS || true

Follow ups