From 9707cf5282ee74cc40adedec96f010f39ca389cb Mon Sep 17 00:00:00 2001
From: Matthew Thode <mthode@mthode.org>
Date: Wed, 9 Mar 2016 16:44:49 -0600
Subject: [PATCH] Add testing for the Gentoo element

This commit adds testing for the gentoo element based off of the debian
element.  In adding testing support a couple of additional errors were
found and corrected, namely the following.

* shm is not in /proc/mounts though it is valid for use based off of
  the sticky flag.
* The path in ELEMENTS_PATH needs to be pruned to be usable.
* Added uuidgen-runtime to the list of packages installed for Ubuntu
  as the new ubuntu-trusty image does not ship with it.

Change-Id: I0d2768a912b350e1b2cf40d2fd227fdc767b1bcb
---
 elements/gentoo/bin/install-packages                      | 8 +++++---
 elements/gentoo/root.d/10-gentoo-image                    | 2 +-
 elements/gentoo/test-elements/build-succeeds/README.rst   | 1 +
 elements/gentoo/test-elements/build-succeeds/element-deps | 1 +
 tests/install_test_deps.sh                                | 3 ++-
 5 files changed, 10 insertions(+), 5 deletions(-)
 create mode 100644 elements/gentoo/test-elements/build-succeeds/README.rst
 create mode 100644 elements/gentoo/test-elements/build-succeeds/element-deps

diff --git a/elements/gentoo/bin/install-packages b/elements/gentoo/bin/install-packages
index e60cf5f8c..d452b1776 100755
--- a/elements/gentoo/bin/install-packages
+++ b/elements/gentoo/bin/install-packages
@@ -58,12 +58,14 @@ function unfix_shm {
 
 function install_gentoo_packages {
     RUN_ONCE_SHM='1'
-    if ! grep -q /dev/shm /proc/mounts; then
+    if grep -q /dev/shm /proc/mounts; then
+        emerge $@
+    elif [[ -k /dev/shm ]]; then
+        emerge $@
+    else
         fix_shm
         emerge $@
         unfix_shm
-    else
-        emerge $@
     fi
 }
 
diff --git a/elements/gentoo/root.d/10-gentoo-image b/elements/gentoo/root.d/10-gentoo-image
index 8a2c632ed..6b2218244 100755
--- a/elements/gentoo/root.d/10-gentoo-image
+++ b/elements/gentoo/root.d/10-gentoo-image
@@ -34,7 +34,7 @@ if ! [ 'x86_64' = "${ARCH}" ] ; then
 fi
 
 # get the element location so we can refrence things relative to it
-ELEMENT_DIR=${ELEMENT_DIR:-"${ELEMENTS_PATH}/gentoo"}
+ELEMENT_DIR=${ELEMENT_DIR:-"${ELEMENTS_PATH##*:}/gentoo"}
 # valid gentoo profiles are as follows
 # default/linux/amd64/13.0
 # default/linux/amd64/13.0/no-multilib
diff --git a/elements/gentoo/test-elements/build-succeeds/README.rst b/elements/gentoo/test-elements/build-succeeds/README.rst
new file mode 100644
index 000000000..179516dc1
--- /dev/null
+++ b/elements/gentoo/test-elements/build-succeeds/README.rst
@@ -0,0 +1 @@
+Test that we can successfully build a gentoo image.
diff --git a/elements/gentoo/test-elements/build-succeeds/element-deps b/elements/gentoo/test-elements/build-succeeds/element-deps
new file mode 100644
index 000000000..df967b96a
--- /dev/null
+++ b/elements/gentoo/test-elements/build-succeeds/element-deps
@@ -0,0 +1 @@
+base
diff --git a/tests/install_test_deps.sh b/tests/install_test_deps.sh
index bbf661518..031ab1966 100755
--- a/tests/install_test_deps.sh
+++ b/tests/install_test_deps.sh
@@ -8,7 +8,8 @@ sudo apt-get install -y \
         debootstrap \
         inetutils-ping \
         kpartx \
-        qemu-utils || \
+        qemu-utils \
+        uuid-runtime || \
     sudo yum -y install \
         debootstrap \
         kpartx \