Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve meson test #7830

Closed
13 tasks done
bonzini opened this issue Oct 11, 2020 · 1 comment
Closed
13 tasks done

Improve meson test #7830

bonzini opened this issue Oct 11, 2020 · 1 comment

Comments

@bonzini
Copy link
Contributor

bonzini commented Oct 11, 2020

I would like to work on improving meson test so that it can replace QEMU's homegrown test harness (which is based on introspection) and be the best test harness for C. :) Here are some wishlist items:

Here is a mockup.

The plan is to replace TestHarness's output layer with an event-based ("observer") interface driven mostly by SingleTestRunner. SingleTestRunner and TestRun.make_tap will send events to the harness, which will therefore be able to observe TAP subtests as they happen. Because the harness is based on asyncio, it can also do background updates to the UI every second in addition to writing the various logfiles.

The code for the mockup uses asyncio in order to show (very roughly!) what the meson test code would look like.

bonzini added a commit to bonzini/meson that referenced this issue Oct 26, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Oct 26, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Oct 26, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Nov 2, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Nov 8, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Nov 15, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Nov 24, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
bonzini added a commit to bonzini/meson that referenced this issue Dec 14, 2020
It is a usual workflow to fix something and retest to see if it is fixed using a
particular test.  When tests start to become numerous, it becomes time consuming
for "meson test" to relink all of them (and in fact rebuild the whole project)
where the user has already specified the tests they want to run, as well as
the tests' dependencies.

Teach meson to be smart and only build what is needed for the test (or suite)
that were specified.

Fixes: mesonbuild#7473
Related: mesonbuild#7830
@bonzini
Copy link
Contributor Author

bonzini commented Jan 6, 2021

Thanks to #7860, the improvements to subtest reporting will affect Rust tests and not just TAP.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant