diff mbox

[04/12] docker: Add test runner

Message ID 1454664263-25969-5-git-send-email-famz@redhat.com
State New
Headers show

Commit Message

Fam Zheng Feb. 5, 2016, 9:24 a.m. UTC
It's better to have a launcher for all tests, to make it easier to
initialize and manage the environment.

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/docker/run | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100755 tests/docker/run

Comments

Alex Bennée Feb. 15, 2016, 10:55 a.m. UTC | #1
Fam Zheng <famz@redhat.com> writes:

> It's better to have a launcher for all tests, to make it easier to
> initialize and manage the environment.
>
> Signed-off-by: Fam Zheng <famz@redhat.com>
> ---
>  tests/docker/run | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100755 tests/docker/run
>
> diff --git a/tests/docker/run b/tests/docker/run
> new file mode 100755
> index 0000000..739ecf9
> --- /dev/null
> +++ b/tests/docker/run
> @@ -0,0 +1,23 @@
> +#!/bin/bash -e
> +#
> +# Docker test runner
> +#
> +# Copyright (c) 2016 Red Hat Inc.
> +#
> +# Authors:
> +#  Fam Zheng <famz@redhat.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2
> +# or (at your option) any later version. See the COPYING file in
> +# the top-level directory.
> +
> +# Prepare the environment
> +. /etc/profile || true
> +export PATH=/usr/lib/ccache:$PATH
> +
> +tmp=$QEMU_SRC
> +QEMU_SRC=/var/tmp/qemu.tmp
> +cp -r $tmp $QEMU_SRC

The first time I ran the fedora target it seems to hang, the second time
with V=1 it reported my source tree was an in-tree build.

Could we perhaps use git-archive to grab a pristine copy of the tree?
Something like:

STATUS=`git stash create`
git archive -1 ${STATUS} -o ${TAR}

Would give a clean source tree with current unstaged/uncommited files.
Unfortunately this wouldn't include new files yet to be committed in any
form to the source tree but using git stash save -u might include a
bunch of unwanted stuff.

> +
> +cd $QEMU_SRC/tests/docker
> +"$@"


--
Alex Bennée
Alex Bennée Feb. 15, 2016, 12:45 p.m. UTC | #2
Alex Bennée <alex.bennee@linaro.org> writes:

> Fam Zheng <famz@redhat.com> writes:
>
>> It's better to have a launcher for all tests, to make it easier to
>> initialize and manage the environment.
>>
>> Signed-off-by: Fam Zheng <famz@redhat.com>
>> ---
>>  tests/docker/run | 23 +++++++++++++++++++++++
>>  1 file changed, 23 insertions(+)
>>  create mode 100755 tests/docker/run
>>
>> diff --git a/tests/docker/run b/tests/docker/run
>> new file mode 100755
>> index 0000000..739ecf9
>> --- /dev/null
>> +++ b/tests/docker/run
>> @@ -0,0 +1,23 @@
>> +#!/bin/bash -e
>> +#
>> +# Docker test runner
>> +#
>> +# Copyright (c) 2016 Red Hat Inc.
>> +#
>> +# Authors:
>> +#  Fam Zheng <famz@redhat.com>
>> +#
>> +# This work is licensed under the terms of the GNU GPL, version 2
>> +# or (at your option) any later version. See the COPYING file in
>> +# the top-level directory.
>> +
>> +# Prepare the environment
>> +. /etc/profile || true
>> +export PATH=/usr/lib/ccache:$PATH
>> +
>> +tmp=$QEMU_SRC
>> +QEMU_SRC=/var/tmp/qemu.tmp
>> +cp -r $tmp $QEMU_SRC
>
> The first time I ran the fedora target it seems to hang, the second time
> with V=1 it reported my source tree was an in-tree build.
>
> Could we perhaps use git-archive to grab a pristine copy of the tree?
> Something like:
>
> STATUS=`git stash create`
> git archive -1 ${STATUS} -o ${TAR}
>
> Would give a clean source tree with current unstaged/uncommited files.
> Unfortunately this wouldn't include new files yet to be committed in any
> form to the source tree but using git stash save -u might include a
> bunch of unwanted stuff.

OK that won't work if you have alternates in your git setup. It seems to
me the creation of the pristine tree for docker should be done before we
enter the docker environment.

There is a slight wrinkle as to what happens if the user wants to enter
an interactive session for debugging. However that doesn't seem possible
via the makefile and perhaps that is just as well. Perhaps that should
be a helper script for the user?

>
>> +
>> +cd $QEMU_SRC/tests/docker
>> +"$@"


--
Alex Bennée
Fam Zheng Feb. 15, 2016, 1:29 p.m. UTC | #3
On Mon, 02/15 12:45, Alex Bennée wrote:
> 
> Alex Bennée <alex.bennee@linaro.org> writes:
> 
> > Fam Zheng <famz@redhat.com> writes:
> >
> >> It's better to have a launcher for all tests, to make it easier to
> >> initialize and manage the environment.
> >>
> >> Signed-off-by: Fam Zheng <famz@redhat.com>
> >> ---
> >>  tests/docker/run | 23 +++++++++++++++++++++++
> >>  1 file changed, 23 insertions(+)
> >>  create mode 100755 tests/docker/run
> >>
> >> diff --git a/tests/docker/run b/tests/docker/run
> >> new file mode 100755
> >> index 0000000..739ecf9
> >> --- /dev/null
> >> +++ b/tests/docker/run
> >> @@ -0,0 +1,23 @@
> >> +#!/bin/bash -e
> >> +#
> >> +# Docker test runner
> >> +#
> >> +# Copyright (c) 2016 Red Hat Inc.
> >> +#
> >> +# Authors:
> >> +#  Fam Zheng <famz@redhat.com>
> >> +#
> >> +# This work is licensed under the terms of the GNU GPL, version 2
> >> +# or (at your option) any later version. See the COPYING file in
> >> +# the top-level directory.
> >> +
> >> +# Prepare the environment
> >> +. /etc/profile || true
> >> +export PATH=/usr/lib/ccache:$PATH
> >> +
> >> +tmp=$QEMU_SRC
> >> +QEMU_SRC=/var/tmp/qemu.tmp
> >> +cp -r $tmp $QEMU_SRC
> >
> > The first time I ran the fedora target it seems to hang, the second time
> > with V=1 it reported my source tree was an in-tree build.
> >
> > Could we perhaps use git-archive to grab a pristine copy of the tree?
> > Something like:
> >
> > STATUS=`git stash create`
> > git archive -1 ${STATUS} -o ${TAR}
> >
> > Would give a clean source tree with current unstaged/uncommited files.
> > Unfortunately this wouldn't include new files yet to be committed in any
> > form to the source tree but using git stash save -u might include a
> > bunch of unwanted stuff.
> 
> OK that won't work if you have alternates in your git setup. It seems to
> me the creation of the pristine tree for docker should be done before we
> enter the docker environment.
> 
> There is a slight wrinkle as to what happens if the user wants to enter
> an interactive session for debugging. However that doesn't seem possible
> via the makefile and perhaps that is just as well. Perhaps that should
> be a helper script for the user?

We can use "make distclean" in the copied tree.

Fam
diff mbox

Patch

diff --git a/tests/docker/run b/tests/docker/run
new file mode 100755
index 0000000..739ecf9
--- /dev/null
+++ b/tests/docker/run
@@ -0,0 +1,23 @@ 
+#!/bin/bash -e
+#
+# Docker test runner
+#
+# Copyright (c) 2016 Red Hat Inc.
+#
+# Authors:
+#  Fam Zheng <famz@redhat.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2
+# or (at your option) any later version. See the COPYING file in
+# the top-level directory.
+
+# Prepare the environment
+. /etc/profile || true
+export PATH=/usr/lib/ccache:$PATH
+
+tmp=$QEMU_SRC
+QEMU_SRC=/var/tmp/qemu.tmp
+cp -r $tmp $QEMU_SRC
+
+cd $QEMU_SRC/tests/docker
+"$@"