* [PATCH 0/3] oeqa related: 3 fixes
@ 2018-12-27 8:59 Robert Yang
2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 7bbc453ac2b8d63680855789948a145fc448017f:
glibc: Enable --with-default-link (2018-12-26 11:19:47 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rbt/oeqa
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/oeqa
Robert Yang (3):
oeqa: make it work for multiple users
runqemu-gen-tapdevs: Allow run --help without sudo
oeqa/utils/qemurunner: Print output when failed to login
meta/classes/testimage.bbclass | 2 +-
meta/lib/oeqa/runtime/context.py | 7 +++----
meta/lib/oeqa/utils/dump.py | 5 ++++-
meta/lib/oeqa/utils/qemurunner.py | 1 +
scripts/runqemu-gen-tapdevs | 12 ++++++------
5 files changed, 15 insertions(+), 12 deletions(-)
--
2.10.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/3] oeqa: make it work for multiple users
2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang
@ 2018-12-27 8:59 ` Robert Yang
2018-12-27 11:37 ` Richard Purdie
2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang
2018-12-27 8:59 ` [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login Robert Yang
2 siblings, 1 reply; 10+ messages in thread
From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw)
To: openembedded-core
There are failures when multiple users run oe-selftest on the same host:
PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-tests/201812250324_qemu'
This is because /tmp/oe-saved-tests was created by user A, while user B tries
to write data in it, then the error will happen. This patch can fix the problem.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/classes/testimage.bbclass | 2 +-
meta/lib/oeqa/runtime/context.py | 7 +++----
meta/lib/oeqa/utils/dump.py | 5 ++++-
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass
index 8a15c30..78b7b5e 100644
--- a/meta/classes/testimage.bbclass
+++ b/meta/classes/testimage.bbclass
@@ -77,7 +77,7 @@ TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do
TESTIMAGELOCK = "${TMPDIR}/testimage.lock"
TESTIMAGELOCK_qemuall = ""
-TESTIMAGE_DUMP_DIR ?= "/tmp/oe-saved-tests/"
+TESTIMAGE_DUMP_DIR ?= "/tmp/oe-saved-tests.${USER}/"
TESTIMAGE_UPDATE_VARS ?= "DL_DIR WORKDIR DEPLOY_DIR"
diff --git a/meta/lib/oeqa/runtime/context.py b/meta/lib/oeqa/runtime/context.py
index 943e29b..96c231d 100644
--- a/meta/lib/oeqa/runtime/context.py
+++ b/meta/lib/oeqa/runtime/context.py
@@ -6,7 +6,7 @@ import os
from oeqa.core.context import OETestContext, OETestContextExecutor
from oeqa.core.target.ssh import OESSHTarget
from oeqa.core.target.qemu import OEQemuTarget
-from oeqa.utils.dump import HostDumper
+from oeqa.utils.dump import HostDumper, default_host_dumper_dir
from oeqa.runtime.loader import OERuntimeTestLoader
@@ -49,7 +49,6 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
default_manifest = 'data/manifest'
default_server_ip = '192.168.7.1'
default_target_ip = '192.168.7.2'
- default_host_dumper_dir = '/tmp/oe-saved-tests'
default_extract_dir = 'packages/extracted'
def register_commands(self, logger, subparsers):
@@ -71,9 +70,9 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
% self.default_server_ip)
runtime_group.add_argument('--host-dumper-dir', action='store',
- default=self.default_host_dumper_dir,
+ default=default_host_dumper_dir,
help="Directory where host status is dumped, if tests fails, default: %s" \
- % self.default_host_dumper_dir)
+ % default_host_dumper_dir)
runtime_group.add_argument('--packages-manifest', action='store',
default=self.default_manifest,
diff --git a/meta/lib/oeqa/utils/dump.py b/meta/lib/oeqa/utils/dump.py
index 5a7edc1..3ce8dd1 100644
--- a/meta/lib/oeqa/utils/dump.py
+++ b/meta/lib/oeqa/utils/dump.py
@@ -3,8 +3,11 @@ import sys
import errno
import datetime
import itertools
+import getpass
from .commands import runCmd
+default_host_dumper_dir = "/tmp/oe-saved-tests.%s" % getpass.getuser()
+
class BaseDumper(object):
""" Base class to dump commands from host/target """
@@ -12,7 +15,7 @@ class BaseDumper(object):
self.cmds = []
# Some testing doesn't inherit testimage, so it is needed
# to set some defaults.
- self.parent_dir = parent_dir or "/tmp/oe-saved-tests"
+ self.parent_dir = parent_dir or default_host_dumper_dir
dft_cmds = """ top -bn1
iostat -x -z -N -d -p ALL 20 2
ps -ef
--
2.10.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo
2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang
2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang
@ 2018-12-27 8:59 ` Robert Yang
2018-12-27 11:32 ` Richard Purdie
2018-12-27 8:59 ` [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login Robert Yang
2 siblings, 1 reply; 10+ messages in thread
From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw)
To: openembedded-core
Then we can get user's UID and GID rather than hardcode to 1000, e.g.:
$ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
scripts/runqemu-gen-tapdevs | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/scripts/runqemu-gen-tapdevs b/scripts/runqemu-gen-tapdevs
index 11de318..67c4fcc 100755
--- a/scripts/runqemu-gen-tapdevs
+++ b/scripts/runqemu-gen-tapdevs
@@ -29,15 +29,10 @@ usage() {
echo "<num> is the number of tap devices to create (0 to remove all)"
echo "<native-sysroot-basedir> is the path to the build system's native sysroot"
echo "e.g. $ bitbake qemu-helper-native"
- echo "$ sudo $0 1000 1000 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin"
+ echo "$ sudo $0 `id -u` `id -g` 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin"
exit 1
}
-if [ $EUID -ne 0 ]; then
- echo "Error: This script must be run with root privileges"
- exit
-fi
-
if [ $# -ne 4 ]; then
echo "Error: Incorrect number of arguments"
usage
@@ -54,6 +49,11 @@ if [[ ! -x "$TUNCTL" || -d "$TUNCTL" ]]; then
usage
fi
+if [ $EUID -ne 0 ]; then
+ echo "Error: This script must be run with root privileges"
+ exit
+fi
+
SCRIPT_DIR=`dirname $0`
RUNQEMU_IFUP="$SCRIPT_DIR/runqemu-ifup"
if [ ! -x "$RUNQEMU_IFUP" ]; then
--
2.10.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login
2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang
2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang
2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang
@ 2018-12-27 8:59 ` Robert Yang
2 siblings, 0 replies; 10+ messages in thread
From: Robert Yang @ 2018-12-27 8:59 UTC (permalink / raw)
To: openembedded-core
This is useful for debugging.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/lib/oeqa/utils/qemurunner.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 3a9ba02..cce95e1 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -354,6 +354,7 @@ class QemuRunner:
else:
self.logger.debug("Couldn't login into serial console"
" as root using blank password")
+ self.logger.debug("The output:\n%s" % output)
except:
self.logger.debug("Serial console failed while trying to login")
return True
--
2.10.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo
2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang
@ 2018-12-27 11:32 ` Richard Purdie
0 siblings, 0 replies; 10+ messages in thread
From: Richard Purdie @ 2018-12-27 11:32 UTC (permalink / raw)
To: Robert Yang, openembedded-core
On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote:
> Then we can get user's UID and GID rather than hardcode to 1000,
> e.g.:
>
> $ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-
> components/x86_64/qemu-helper-native/usr/bin
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> scripts/runqemu-gen-tapdevs | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
This fixes the help output without sudo but breaks the help output
under sudo. How about we check SUDO_UID and SUDO_GID? Something like:
uid=`id -u`
if [ -n "$SUDO_UID" ]; then
uid=$SUDO_UID
fi
?
Cheers,
Richard
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users
2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang
@ 2018-12-27 11:37 ` Richard Purdie
2018-12-28 2:03 ` Robert Yang
2018-12-28 7:57 ` Robert Yang
0 siblings, 2 replies; 10+ messages in thread
From: Richard Purdie @ 2018-12-27 11:37 UTC (permalink / raw)
To: Robert Yang, openembedded-core
On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote:
> There are failures when multiple users run oe-selftest on the same
> host:
>
> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-
> tests/201812250324_qemu'
>
> This is because /tmp/oe-saved-tests was created by user A, while user
> B tries
> to write data in it, then the error will happen. This patch can fix
> the problem.
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> meta/classes/testimage.bbclass | 2 +-
> meta/lib/oeqa/runtime/context.py | 7 +++----
> meta/lib/oeqa/utils/dump.py | 5 ++++-
> 3 files changed, 8 insertions(+), 6 deletions(-)
Putting this into /tmp isn't good. Why don't we move this to
LOG_DIR/runtime-hostdump/?
Cheers,
Richard
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users
2018-12-27 11:37 ` Richard Purdie
@ 2018-12-28 2:03 ` Robert Yang
2018-12-28 7:57 ` Robert Yang
1 sibling, 0 replies; 10+ messages in thread
From: Robert Yang @ 2018-12-28 2:03 UTC (permalink / raw)
To: Richard Purdie, openembedded-core
On 12/27/18 7:37 PM, Richard Purdie wrote:
> On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote:
>> There are failures when multiple users run oe-selftest on the same
>> host:
>>
>> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-
>> tests/201812250324_qemu'
>>
>> This is because /tmp/oe-saved-tests was created by user A, while user
>> B tries
>> to write data in it, then the error will happen. This patch can fix
>> the problem.
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>> meta/classes/testimage.bbclass | 2 +-
>> meta/lib/oeqa/runtime/context.py | 7 +++----
>> meta/lib/oeqa/utils/dump.py | 5 ++++-
>> 3 files changed, 8 insertions(+), 6 deletions(-)
>
> Putting this into /tmp isn't good. Why don't we move this to
> LOG_DIR/runtime-hostdump/?
Thanks, make sense, I will send a V2 for patch 1 and 2.
// Robert
>
> Cheers,
>
> Richard
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users
2018-12-27 11:37 ` Richard Purdie
2018-12-28 2:03 ` Robert Yang
@ 2018-12-28 7:57 ` Robert Yang
2018-12-28 23:09 ` richard.purdie
1 sibling, 1 reply; 10+ messages in thread
From: Robert Yang @ 2018-12-28 7:57 UTC (permalink / raw)
To: Richard Purdie, openembedded-core
On 12/27/18 7:37 PM, Richard Purdie wrote:
> On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote:
>> There are failures when multiple users run oe-selftest on the same
>> host:
>>
>> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-
>> tests/201812250324_qemu'
>>
>> This is because /tmp/oe-saved-tests was created by user A, while user
>> B tries
>> to write data in it, then the error will happen. This patch can fix
>> the problem.
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>> meta/classes/testimage.bbclass | 2 +-
>> meta/lib/oeqa/runtime/context.py | 7 +++----
>> meta/lib/oeqa/utils/dump.py | 5 ++++-
>> 3 files changed, 8 insertions(+), 6 deletions(-)
>
> Putting this into /tmp isn't good. Why don't we move this to
> LOG_DIR/runtime-hostdump/?
I'm afraid that we can't do this, the problem is that we need call get_bb_vars()
to get LOG_DIR (d.getVar('LOG_DIR') doesn't work), but get_bb_vars() runs
"bitbake -e" which doesn't work when "bitbake <image> -ctestimage" since there
is a bitbake server running. We can only get BUILDDIR if we don't call
get_bb_vars(), so I think that we have the following 2 solutions:
1) Save it to /tmp/runtime-hostdump
Or:
2) Save it to BUILDDIR/runtime-hostdump
What's your opinion, please ?
// Robert
>
> Cheers,
>
> Richard
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users
2018-12-28 7:57 ` Robert Yang
@ 2018-12-28 23:09 ` richard.purdie
2019-01-02 2:09 ` Robert Yang
0 siblings, 1 reply; 10+ messages in thread
From: richard.purdie @ 2018-12-28 23:09 UTC (permalink / raw)
To: Robert Yang, openembedded-core
On Fri, 2018-12-28 at 15:57 +0800, Robert Yang wrote:
>
> On 12/27/18 7:37 PM, Richard Purdie wrote:
> > On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote:
> > > There are failures when multiple users run oe-selftest on the
> > > same
> > > host:
> > >
> > > PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-
> > > tests/201812250324_qemu'
> > >
> > > This is because /tmp/oe-saved-tests was created by user A, while
> > > user
> > > B tries
> > > to write data in it, then the error will happen. This patch can
> > > fix
> > > the problem.
> > >
> > > Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> > > ---
> > > meta/classes/testimage.bbclass | 2 +-
> > > meta/lib/oeqa/runtime/context.py | 7 +++----
> > > meta/lib/oeqa/utils/dump.py | 5 ++++-
> > > 3 files changed, 8 insertions(+), 6 deletions(-)
> >
> > Putting this into /tmp isn't good. Why don't we move this to
> > LOG_DIR/runtime-hostdump/?
>
> I'm afraid that we can't do this, the problem is that we need call
> get_bb_vars()
> to get LOG_DIR (d.getVar('LOG_DIR') doesn't work), but get_bb_vars()
> runs
> "bitbake -e" which doesn't work when "bitbake <image> -ctestimage"
> since there
> is a bitbake server running. We can only get BUILDDIR if we don't
> call
> get_bb_vars(), so I think that we have the following 2 solutions:
>
> 1) Save it to /tmp/runtime-hostdump
>
> Or:
>
> 2) Save it to BUILDDIR/runtime-hostdump
>
> What's your opinion, please ?
I think it should be possible to use LOG_DIR for most of the usecases.
It won't work for the "on target" mode but it should be possible
elsewhere even if we have to tweak the code a bit to ensure the right
variables are passed around?
Cheers,
Richard
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] oeqa: make it work for multiple users
2018-12-28 23:09 ` richard.purdie
@ 2019-01-02 2:09 ` Robert Yang
0 siblings, 0 replies; 10+ messages in thread
From: Robert Yang @ 2019-01-02 2:09 UTC (permalink / raw)
To: richard.purdie, openembedded-core
On 12/29/18 7:09 AM, richard.purdie@linuxfoundation.org wrote:
> On Fri, 2018-12-28 at 15:57 +0800, Robert Yang wrote:
>>
>> On 12/27/18 7:37 PM, Richard Purdie wrote:
>>> On Thu, 2018-12-27 at 00:59 -0800, Robert Yang wrote:
>>>> There are failures when multiple users run oe-selftest on the
>>>> same
>>>> host:
>>>>
>>>> PermissionError: [Errno 13] Permission denied: '/tmp/oe-saved-
>>>> tests/201812250324_qemu'
>>>>
>>>> This is because /tmp/oe-saved-tests was created by user A, while
>>>> user
>>>> B tries
>>>> to write data in it, then the error will happen. This patch can
>>>> fix
>>>> the problem.
>>>>
>>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>>> ---
>>>> meta/classes/testimage.bbclass | 2 +-
>>>> meta/lib/oeqa/runtime/context.py | 7 +++----
>>>> meta/lib/oeqa/utils/dump.py | 5 ++++-
>>>> 3 files changed, 8 insertions(+), 6 deletions(-)
>>>
>>> Putting this into /tmp isn't good. Why don't we move this to
>>> LOG_DIR/runtime-hostdump/?
>>
>> I'm afraid that we can't do this, the problem is that we need call
>> get_bb_vars()
>> to get LOG_DIR (d.getVar('LOG_DIR') doesn't work), but get_bb_vars()
>> runs
>> "bitbake -e" which doesn't work when "bitbake <image> -ctestimage"
>> since there
>> is a bitbake server running. We can only get BUILDDIR if we don't
>> call
>> get_bb_vars(), so I think that we have the following 2 solutions:
>>
>> 1) Save it to /tmp/runtime-hostdump
>>
>> Or:
>>
>> 2) Save it to BUILDDIR/runtime-hostdump
>>
>> What's your opinion, please ?
>
> I think it should be possible to use LOG_DIR for most of the usecases.
> It won't work for the "on target" mode but it should be possible
> elsewhere even if we have to tweak the code a bit to ensure the right
> variables are passed around?
Yes, I agree with that, I will try it.
// Robert
>
> Cheers,
>
> Richard
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-01-02 2:04 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-27 8:59 [PATCH 0/3] oeqa related: 3 fixes Robert Yang
2018-12-27 8:59 ` [PATCH 1/3] oeqa: make it work for multiple users Robert Yang
2018-12-27 11:37 ` Richard Purdie
2018-12-28 2:03 ` Robert Yang
2018-12-28 7:57 ` Robert Yang
2018-12-28 23:09 ` richard.purdie
2019-01-02 2:09 ` Robert Yang
2018-12-27 8:59 ` [PATCH 2/3] runqemu-gen-tapdevs: Allow run --help without sudo Robert Yang
2018-12-27 11:32 ` Richard Purdie
2018-12-27 8:59 ` [PATCH 3/3] oeqa/utils/qemurunner: Print output when failed to login Robert Yang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox