From: Liam Merwick <liam.merwick@oracle.com>
To: Wainer dos Santos Moschetta <wainersm@redhat.com>
Cc: fam@euphon.net, slp@redhat.com, alex.bennee@linaro.org,
qemu-devel@nongnu.org, pbonzini@redhat.com, philmd@redhat.com,
Stefano Garzarella <sgarzare@redhat.com>
Subject: Re: [PATCH 5/6] tests/boot_linux_console: add extract_from_rpm method
Date: Tue, 4 Feb 2020 13:31:40 +0000 [thread overview]
Message-ID: <0902eab2-8ed2-9f44-4269-02f96d44fa76@oracle.com> (raw)
In-Reply-To: <027bfff2-ff27-3fc6-05e6-aa5940e7fc04@oracle.com>
On 31/01/2020 15:02, Liam Merwick wrote:
[... deleted ...]
>>
>>>>>
>>>>> + :returns: path of the extracted file
>>>>> + """
>>>>> + cwd = os.getcwd()
>>>>> + os.chdir(self.workdir)
>>>>> + process.run("rpm2cpio %s | cpio -id %s" % (rpm, path),
>>>>> shell=True)
>>>>> + os.chdir(cwd)
>>>>> + return self.workdir + '/' + path
>>>> ^
>>>> Is the extra slash needed? (just because the extract_from_deb()
>>>> doesn't put it)
>>>>
>>>
>>>
>>> Yes, I needed to put it in there because the 'path' passed in for
>>> processing by cpio is a relative patch unlike the deb arg so it
>>> couldn't be just appended to 'self.workdir' which doesn't end in a '/'.
>>
>>
>> It is a good practice use the `os.path` module methods when dealing
>> with filesystem paths. So that can be replaced with:
>>
>> >>> os.path.normpath(os.path.join('/path/to/workdir', './file/in/rpm'))
>> '/path/to/workdir/file/in/rpm'
>>
>
>
> Will do. I'll add a patch to fix extract_from_deb() too.
Using the exact same code didn't work with extract_from_deb() because
the callers set 'path' to an absolute path (so os.path.join() drops the
self.workdir part). I'll include a patch with the following change and
it can be dropped if people think using os.path.relpath() is too much of
a hack.
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -49,7 +49,12 @@ class BootLinuxConsole(Test):
process.run("ar x %s %s" % (deb, file_path))
archive.extract(file_path, self.workdir)
os.chdir(cwd)
- return self.workdir + path
+ # Return complete path to extracted file. We need to use
+ # os.path.relpath() because callers specify 'path' with a leading
+ # slash which causes os.path.join() to interpret it as an absolute
+ # path and to drop self.workdir part.
+ return os.path.normpath(os.path.join(self.workdir,
+ os.path.relpath(path, '/')))
def extract_from_rpm(self, rpm, path):
"""
Regards,
Liam
next prev parent reply other threads:[~2020-02-04 13:35 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-27 16:36 [PATCH 0/6] tests/boot_linux_console: add extra boot acceptance tests Liam Merwick
2020-01-27 16:36 ` [PATCH 1/6] tests/boot_linux_console: add microvm acceptance test Liam Merwick
2020-01-30 11:49 ` Stefano Garzarella
2020-01-30 17:41 ` Wainer dos Santos Moschetta
2020-01-30 23:51 ` Philippe Mathieu-Daudé
2020-01-31 18:10 ` Wainer dos Santos Moschetta
2020-01-27 16:36 ` [PATCH 2/6] tests/boot_linux_console: add BIOS " Liam Merwick
2020-01-30 11:27 ` Stefano Garzarella
2020-01-30 15:34 ` Liam Merwick
2020-01-30 16:28 ` Liam Merwick
2020-01-30 16:45 ` Stefano Garzarella
2020-01-27 16:36 ` [PATCH 3/6] tests/boot_linux_console: fix extract_from_deb() comment Liam Merwick
2020-01-30 11:29 ` Stefano Garzarella
2020-01-30 18:17 ` Wainer dos Santos Moschetta
2020-01-31 0:03 ` Philippe Mathieu-Daudé
2020-01-27 16:36 ` [PATCH 4/6] travis.yml: install rpm2cpio for acceptance tests Liam Merwick
2020-01-30 12:00 ` Stefano Garzarella
2020-01-27 16:36 ` [PATCH 5/6] tests/boot_linux_console: add extract_from_rpm method Liam Merwick
2020-01-30 12:05 ` Stefano Garzarella
2020-01-30 15:34 ` Liam Merwick
2020-01-30 19:19 ` Wainer dos Santos Moschetta
2020-01-30 23:59 ` Philippe Mathieu-Daudé
2020-01-31 15:02 ` Liam Merwick
2020-02-04 13:31 ` Liam Merwick [this message]
2020-02-04 14:22 ` Philippe Mathieu-Daudé
2020-01-27 16:36 ` [PATCH 6/6] tests/boot_linux_console: add PVH acceptance tests Liam Merwick
2020-01-30 12:08 ` Stefano Garzarella
2020-01-30 23:57 ` Philippe Mathieu-Daudé
2020-01-31 15:03 ` Liam Merwick
2020-01-31 15:18 ` Philippe Mathieu-Daudé
2020-01-30 17:57 ` [PATCH 0/6] tests/boot_linux_console: add extra boot " Wainer dos Santos Moschetta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0902eab2-8ed2-9f44-4269-02f96d44fa76@oracle.com \
--to=liam.merwick@oracle.com \
--cc=alex.bennee@linaro.org \
--cc=fam@euphon.net \
--cc=pbonzini@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
--cc=slp@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).