From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: QEMU Developers <qemu-devel@nongnu.org>, Thomas Huth <thuth@redhat.com>
Subject: Re: running a single functional test: where do the logs go?
Date: Mon, 9 Mar 2026 12:40:39 +0000 [thread overview]
Message-ID: <aa6_x250FtIdy1iw@redhat.com> (raw)
In-Reply-To: <CAFEAcA8FhiJZy6NqRUVnWQ+L6=fE8Ssqs9FEW2eO2eAVTrL=_w@mail.gmail.com>
On Mon, Mar 09, 2026 at 11:55:58AM +0000, Peter Maydell wrote:
> The functional test documentation suggests running a single test
> with the build/run script. But if you do this where do the logfiles go?
They should always go in the build directory
> As you can see from this transcript, they don't seem to get written
> into the place that a "make check-functional" run puts them:
>
> $ ls -l build/san/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
> total 16
> -rw-r--r-- 1 pm215 pm215 3084 Mar 9 10:51 base.log
> -rw-r--r-- 1 pm215 pm215 825 Mar 9 10:51 console.log
> -rw-r--r-- 1 pm215 pm215 235 Mar 9 10:54 default.log
> drwxr-xr-x 3 pm215 pm215 4096 Mar 9 10:51 scratch
> $ date
> Mon Mar 9 11:20:13 GMT 2026
> $ time QEMU_TEST_QEMU_BINARY=./build/san/qemu-system-arm
> ./build/san/run tests/functional/arm/test_emcraft_sf2.py
> TAP version 13
> ok 1 test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2
> 1..1
>
> real 3m24.394s
> user 3m21.314s
> sys 0m3.100s
> $ ls -l build/san/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
> total 16
> -rw-r--r-- 1 pm215 pm215 3084 Mar 9 10:51 base.log
> -rw-r--r-- 1 pm215 pm215 825 Mar 9 10:51 console.log
> -rw-r--r-- 1 pm215 pm215 235 Mar 9 10:54 default.log
> drwxr-xr-x 3 pm215 pm215 4096 Mar 9 10:51 scratch
That seems different from the behaviour I get
$ ls -al build/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
total 28
drwxr-xr-x. 2 berrange berrange 4096 Mar 9 12:31 .
drwxr-xr-x. 3 berrange berrange 4096 Mar 9 12:30 ..
-rw-r--r--. 1 berrange berrange 6449 Mar 9 12:31 base.log
-rw-r--r--. 1 berrange berrange 8200 Mar 9 12:31 console.log
-rw-r--r--. 1 berrange berrange 0 Mar 9 12:30 default.log
$ time QEMU_TEST_QEMU_BINARY=qemu-system-arm ./build/run tests/functional/arm/test_emcraft_sf2.py
TAP version 13
ok 1 test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2
1..1
real 0m10.731s
user 0m10.597s
sys 0m0.130s
$ ls -al build/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
total 28
drwxr-xr-x. 2 berrange berrange 4096 Mar 9 12:32 .
drwxr-xr-x. 3 berrange berrange 4096 Mar 9 12:30 ..
-rw-r--r--. 1 berrange berrange 7253 Mar 9 12:32 base.log
-rw-r--r--. 1 berrange berrange 8200 Mar 9 12:32 console.log
-rw-r--r--. 1 berrange berrange 0 Mar 9 12:32 default.log
but in my case I'm just using ./build, where as you are using
./build/san, and I think that's tripping us up
def _build_dir():
root = os.getenv('QEMU_BUILD_ROOT')
if root is not None:
return Path(root)
# Makefile.mtest only exists in build dir, so if it is available, use CWD
if os.path.exists('Makefile.mtest'):
return Path(os.getcwd())
root = os.path.join(_source_dir(), 'build')
if os.path.exists(root):
return Path(root)
raise Exception("Cannot identify build dir, set QEMU_BUILD_ROOT")
The $CWD is the directory from which you are invoking the scripts,
so that Makefile.mtest check won't pass.
The _source_dir() / 'build' test will pass, but that's not your
actual build dir, so that's not really correct.
The QEMU_BUILD_ROOT env was a special hack to allow overrides, but
we never set that by default.
These days, we do, however, set MESON_BUILD_ROOT in the meson devenv,
so the 'run' script should see that.
IOW, we should fix the _build_dir() method to look at MESON_BUILD_ROOT
instead of QEMU_BUILD_ROOT.
Meanwhile your logs are likely in build/tests/functional/... instead
of build/san/tests/functional.
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
next prev parent reply other threads:[~2026-03-09 12:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-09 11:55 running a single functional test: where do the logs go? Peter Maydell
2026-03-09 12:03 ` Thomas Huth
2026-03-09 12:06 ` Peter Maydell
2026-03-09 12:08 ` Thomas Huth
2026-03-09 12:40 ` Daniel P. Berrangé [this message]
2026-03-09 13:08 ` Peter Maydell
2026-03-09 15:44 ` Daniel P. Berrangé
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=aa6_x250FtIdy1iw@redhat.com \
--to=berrange@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.