On 14/09/16 10:17, Michal Privoznik wrote:
Just like we are running 'virsh self-test' from within our
test
suite, we should run 'virt-admin self-test' too.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
.gitignore | 1 +
tests/Makefile.am | 1 +
tests/virsh-self-test | 21 ++++++++++++++++-----
tests/virt-admin-self-test | 1 +
tools/virt-admin.c | 1 +
5 files changed, 20 insertions(+), 5 deletions(-)
create mode 120000 tests/virt-admin-self-test
diff --git a/.gitignore b/.gitignore
index e87c085..879ec24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -169,6 +169,7 @@
/tests/qemucapsprobe
!/tests/virsh-self-test
!/tests/virt-aa-helper-test
+!/tests/virt-admin-self-test
/tests/objectlocking
/tests/objectlocking-files.txt
/tests/objectlocking.cm[ix]
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0cd8391..924029a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -369,6 +369,7 @@ libvirtd_test_scripts = \
virsh-read-non-seekable \
virsh-schedinfo \
virsh-self-test \
+ virt-admin-self-test \
virsh-start \
virsh-undefine \
virsh-uriprecedence \
diff --git a/tests/virsh-self-test b/tests/virsh-self-test
index 641810f..22396bc 100755
--- a/tests/virsh-self-test
+++ b/tests/virsh-self-test
@@ -21,14 +21,25 @@
fail=0
-test_url=test:///default
+basename=$(basename $0)
-test_intro "virsh-self-test"
-$abs_top_builddir/tools/virsh -c $test_url self-test > /dev/null
+if test "x$basename" = "xvirsh-self-test" ; then
+ binary=virsh
+ extra_args="-c test:///default"
+elif test "x$basename" = "xvirt-admin-self-test" ; then
+ binary=virt-admin
+ extra_args=""
+else
+ echo "Unknown binary: $basename";
+ exit 1
+fi
+
+test_intro "$0"
+$abs_top_builddir/tools/${binary} ${extra_args} self-test > /dev/null
status=$?
-test_result 1 "virsh-self-test" $status
+test_result 1 "$0" ${status}
-if test "$status" != "0" ; then
+if test "${status}" != "0" ; then
fail=1
fi
diff --git a/tests/virt-admin-self-test b/tests/virt-admin-self-test
new file mode 120000
Although a working solution, we would end up with two identical scripts.
How about extracting the generic bit (since you've already refactored
the hunk above, thus putting some effort into making it nicely generic),
and enclosing it into a separate function and a separate module, e.g.
self_test() and let's say module virt-shell-test (or whatever) and then
just source it the same way as we do it with test-lib.sh from within
virsh-self-test and virt-admin-self-test.
Erik
index 0000000..d4ad624
--- /dev/null
+++ b/tests/virt-admin-self-test
@@ -0,0 +1 @@
+./virsh-self-test
\ No newline at end of file
diff --git a/tools/virt-admin.c b/tools/virt-admin.c
index 12ec057..36c92f5 100644
--- a/tools/virt-admin.c
+++ b/tools/virt-admin.c
@@ -1242,6 +1242,7 @@ static const vshCmdDef vshAdmCmds[] = {
VSH_CMD_HELP,
VSH_CMD_PWD,
VSH_CMD_QUIT,
+ VSH_CMD_SELF_TEST,
{.name = "uri",
.handler = cmdURI,
.opts = NULL,