[lxc-devel] [lxc/master] tests: add tests making sure the exit code is appropriate.
ralt on Github
lxc-bot at linuxcontainers.org
Tue Oct 29 09:55:51 UTC 2019
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 449 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20191029/c49c3f22/attachment.bin>
-------------- next part --------------
From 2c44fc3d0fdd006a93790fe43f4c3902c583a0b1 Mon Sep 17 00:00:00 2001
From: Florian Margaine <florian at platform.sh>
Date: Tue, 29 Oct 2019 10:53:17 +0100
Subject: [PATCH] tests: add tests making sure the exit code is appropriate.
lxc2 broke this feature for lxc-execute, and lxc3 broke it for
lxc-attach. This adds a test making sure we don't do the same mistake
a third time.
---
src/tests/Makefile.am | 1 +
src/tests/lxc-test-exit-code | 53 ++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+)
create mode 100755 src/tests/lxc-test-exit-code
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index 309212e9c9..6fad5c18ca 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -83,6 +83,7 @@ bin_PROGRAMS = lxc-test-api-reboot \
lxc-test-cve-2019-5736 \
lxc-test-destroytest \
lxc-test-device-add-remove \
+ lxc-test-exit-code \
lxc-test-getkeys \
lxc-test-get_item \
lxc-test-list \
diff --git a/src/tests/lxc-test-exit-code b/src/tests/lxc-test-exit-code
new file mode 100755
index 0000000000..21c6dc7f3d
--- /dev/null
+++ b/src/tests/lxc-test-exit-code
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# lxc: linux Container library
+
+# Authors:
+# Florian Margaine <florian at platform.sh>
+#
+# This is a test script for the lxc-attach and lxc-execute
+# programs. It tests whether the exit code is not 0 when a script
+# fails to execute.
+
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+set -e
+
+FAIL() {
+ echo -n "Failed " >&2
+ echo "$*" >&2
+ lxc-destroy -n busy -f
+ exit 1
+}
+
+# Create a container
+lxc-create -t busybox -n busy || FAIL "creating busybox container"
+
+# Run lxc-execute to make sure it fails when the command fails, and
+# succeed when the command succeeds.
+lxc-execute -n busy -- sh -c 'exit 1' && FAIL "should be failing" || true
+lxc-execute -n busy -- sh -c 'exit 0' || FAIL "should be succeeding"
+
+# Now, start the container and wait for it to be in running state.
+lxc-start -n busy -d || FAIL "starting busybox container"
+lxc-wait -n busy -s RUNNING || FAIL "waiting for busybox container to run"
+
+# And run the same tests on lxc-attach.
+lxc-attach -n busy -- sh -c 'exit 1' && FAIL "should be failing" || true
+lxc-attach -n busy -- sh -c 'exit 0' || FAIL "should be failing"
+
+lxc-destroy -n busy -f
+
+exit 0
More information about the lxc-devel
mailing list