All of lore.kernel.org
 help / color / mirror / Atom feed
* running a single functional test: where do the logs go?
@ 2026-03-09 11:55 Peter Maydell
  2026-03-09 12:03 ` Thomas Huth
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Peter Maydell @ 2026-03-09 11:55 UTC (permalink / raw)
  To: QEMU Developers; +Cc: Thomas Huth

The functional test documentation suggests running a single test
with the build/run script. But if you do this where do the logfiles go?
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

thanks
-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: running a single functional test: where do the logs go?
  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:40 ` Daniel P. Berrangé
  2026-03-09 15:44 ` Daniel P. Berrangé
  2 siblings, 1 reply; 7+ messages in thread
From: Thomas Huth @ 2026-03-09 12:03 UTC (permalink / raw)
  To: Peter Maydell, QEMU Developers

On 09/03/2026 12.55, 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?
> 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/

I think the functional tests log their output according to the current 
working directory, so have a look at 
$PWD/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/ 
instead of 
$PWD/build/san/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/ 
?

  HTH,
   Thomas



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: running a single functional test: where do the logs go?
  2026-03-09 12:03 ` Thomas Huth
@ 2026-03-09 12:06   ` Peter Maydell
  2026-03-09 12:08     ` Thomas Huth
  0 siblings, 1 reply; 7+ messages in thread
From: Peter Maydell @ 2026-03-09 12:06 UTC (permalink / raw)
  To: Thomas Huth; +Cc: QEMU Developers

On Mon, 9 Mar 2026 at 12:03, Thomas Huth <thuth@redhat.com> wrote:
>
> On 09/03/2026 12.55, 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?
> > 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/
>
> I think the functional tests log their output according to the current
> working directory, so have a look at
> $PWD/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
> instead of
> $PWD/build/san/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/

No, there's nothing there (no directories created under
tests/functional/arm/). Also having build/test write to
the source directory rather than the build directory would be
surprising -- if it does that then we should definitely
alter the recommended command line in the docs to not
suggest running the 'run' script from the source directory.

thanks
-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: running a single functional test: where do the logs go?
  2026-03-09 12:06   ` Peter Maydell
@ 2026-03-09 12:08     ` Thomas Huth
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2026-03-09 12:08 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

On 09/03/2026 13.06, Peter Maydell wrote:
> On Mon, 9 Mar 2026 at 12:03, Thomas Huth <thuth@redhat.com> wrote:
>>
>> On 09/03/2026 12.55, 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?
>>> 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/
>>
>> I think the functional tests log their output according to the current
>> working directory, so have a look at
>> $PWD/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
>> instead of
>> $PWD/build/san/tests/functional/arm/test_emcraft_sf2.EmcraftSf2Machine.test_arm_emcraft_sf2/
> 
> No, there's nothing there (no directories created under
> tests/functional/arm/). Also having build/test write to
> the source directory rather than the build directory would be
> surprising -- if it does that then we should definitely
> alter the recommended command line in the docs to not
> suggest running the 'run' script from the source directory.

Agreed, this sounds fishy. I can have a look at it after the softfreeze if 
nobody else beats me to it.

  Thomas



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: running a single functional test: where do the logs go?
  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:40 ` Daniel P. Berrangé
  2026-03-09 13:08   ` Peter Maydell
  2026-03-09 15:44 ` Daniel P. Berrangé
  2 siblings, 1 reply; 7+ messages in thread
From: Daniel P. Berrangé @ 2026-03-09 12:40 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers, Thomas Huth

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 :|



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: running a single functional test: where do the logs go?
  2026-03-09 12:40 ` Daniel P. Berrangé
@ 2026-03-09 13:08   ` Peter Maydell
  0 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2026-03-09 13:08 UTC (permalink / raw)
  To: Daniel P. Berrangé; +Cc: QEMU Developers, Thomas Huth

On Mon, 9 Mar 2026 at 12:40, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> 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?

> Meanwhile your logs are likely in build/tests/functional/... instead
> of build/san/tests/functional.

Thanks, yes, that's exactly where they ended up.

-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: running a single functional test: where do the logs go?
  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:40 ` Daniel P. Berrangé
@ 2026-03-09 15:44 ` Daniel P. Berrangé
  2 siblings, 0 replies; 7+ messages in thread
From: Daniel P. Berrangé @ 2026-03-09 15:44 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers, Thomas Huth

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?
> 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

BTW this is previously needed, but is now overkill wit the 'run' script.
QEMU_TEST_QEMU_BINARY=qemu-system-arm is sufficient, as meson's devenv
sets $PATH to include the locally built binary dirs first.

> ./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
> 
> thanks
> -- PMM
> 

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 :|



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-03-09 15:45 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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é
2026-03-09 13:08   ` Peter Maydell
2026-03-09 15:44 ` Daniel P. Berrangé

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.