Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-10 Thread Kevin Wolf
Am 10.05.2019 um 17:29 hat Markus Armbruster geschrieben:
> Kevin Wolf  writes:
> 
> > Am 10.05.2019 um 10:55 hat Thomas Huth geschrieben:
> >> On 08/05/2019 07.47, Thomas Huth wrote:
> >> > On 07/05/2019 17.50, Eric Blake wrote:
> >> >> On 5/7/19 10:22 AM, Thomas Huth wrote:
> >> >>> On 07/05/2019 15.22, Markus Armbruster wrote:
> >>  Thomas Huth  writes:
> >> 
> >> > Currently, all tests are in the "auto" group. This is a little bit 
> >> > pointless.
> >> > OTOH, we need a group for the tests that we can automatically run 
> >> > during
> >> > "make check" each time, too. Tests in this new group are supposed to 
> >> > run
> >> > with every possible QEMU configuration, for example they must run 
> >> > with every
> >> > QEMU binary (also non-x86), without failing when an optional 
> >> > features is
> >> > missing (but reporting "skip" is ok), and be able to run on all kind 
> >> > of host
> >> > filesystems and users (i.e. also as "nobody" or "root").
> >> > So let's use the "auto" group for this class of tests now. The 
> >> > initial
> >> > list has been determined by running the iotests with non-x86 QEMU 
> >> > targets
> >> > and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. 
> >> > including
> >> > macOS and FreeBSD).
> >> 
> >>  I wonder whether we should additionally limit "make check" to "quick"
> >>  tests.  How slow are the non-quick auto tests for you?
> >> >>>
> >> >>> I already sorted out some of the tests that run vry long, since the
> >> >>> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
> >> >>> currently takes 3 minutes on my laptop, I think that's still ok?
> >> >>>
> >> >>> When I run the tests from the auto group that are not in the quick
> >> >>> group, I currently get:
> >> >>>
> >> >>
> >> >> My personal threshold is about 5 seconds for quick, so:
> >> >>
> >> >>> 003 1s ...
> >> >>> 007 2s ...
> >> >>
> >> >> Should these be moved to quick?
> >> > 
> >> > I'll leave that decision up to the blocklayer folks ... I thought that
> >> > there might have been a different reason that these have not been put
> >> > into "quick" yet...?
> >> > 
> >> >>> 013 5s ...
> >> >>
> >> >> this one is borderline
> >> >>
> >> >>> 014 15s ...
> >> >>> 015 9s ...
> >> >>
> >> >> Definitely not quick, but if you think they are still okay for auto, I
> >> >> can live with that.
> >> >>
> >> >>> 022 1s ...
> >> >>
> >> >> Another candidate for quick?
> >> >>
> >> >>> 023 18s ...
> >> >>
> >> >> Even longer than 14. Okay for auto?
> >> > 
> >> > I think I'd give it a try. If people are complaining later that "make
> >> > check" is running now way too long, we still can refine the list later.
> >> 
> >> Thinking about this again, "make check" now runs quite a bit longer
> >> indeed. So I now rather tend to remove the tests that run longer than 5s
> >> from the auto group instead... I think I'll send a v4 of this patch
> >> where I'll remove them from the auto group.
> >
> > I don't think time is everything. We should also consider how much
> > the tests contribute to basic code coverage. There is no point in
> > removing a test from the list because it takes 10 seconds, but if I
> > split it in two tests taking each 5 seconds, you would include both
> > halves.
> >
> > For example, 030, 040 and 041 are not that quick (14/11/42 seconds,
> > respectively), but they are the most important tests for block jobs and
> > covering a lot. Sure, 42 seconds is a lot, but I'd keep 030 and 040 at
> > least.
> 
> Yes, we want block jobs covered.  However, 42 seconds is a lot indeed.
> Can you think of ways to get a useful part of the full coverage in five
> seconds or less?

I'm not even sure which part of the test is taking so long. Maybe it's
only one of the 88 test functions that's taking long. Or we're
duplicating a lot of tests because we test all combinations of setups
where testing only certain combinations would give enough coverage.

Answering this will probably take some effort checking what the exact
cases tested are and how long each one takes.

Kevin



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-10 Thread Markus Armbruster
Kevin Wolf  writes:

> Am 10.05.2019 um 10:55 hat Thomas Huth geschrieben:
>> On 08/05/2019 07.47, Thomas Huth wrote:
>> > On 07/05/2019 17.50, Eric Blake wrote:
>> >> On 5/7/19 10:22 AM, Thomas Huth wrote:
>> >>> On 07/05/2019 15.22, Markus Armbruster wrote:
>>  Thomas Huth  writes:
>> 
>> > Currently, all tests are in the "auto" group. This is a little bit 
>> > pointless.
>> > OTOH, we need a group for the tests that we can automatically run 
>> > during
>> > "make check" each time, too. Tests in this new group are supposed to 
>> > run
>> > with every possible QEMU configuration, for example they must run with 
>> > every
>> > QEMU binary (also non-x86), without failing when an optional features 
>> > is
>> > missing (but reporting "skip" is ok), and be able to run on all kind 
>> > of host
>> > filesystems and users (i.e. also as "nobody" or "root").
>> > So let's use the "auto" group for this class of tests now. The initial
>> > list has been determined by running the iotests with non-x86 QEMU 
>> > targets
>> > and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. 
>> > including
>> > macOS and FreeBSD).
>> 
>>  I wonder whether we should additionally limit "make check" to "quick"
>>  tests.  How slow are the non-quick auto tests for you?
>> >>>
>> >>> I already sorted out some of the tests that run vry long, since the
>> >>> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
>> >>> currently takes 3 minutes on my laptop, I think that's still ok?
>> >>>
>> >>> When I run the tests from the auto group that are not in the quick
>> >>> group, I currently get:
>> >>>
>> >>
>> >> My personal threshold is about 5 seconds for quick, so:
>> >>
>> >>> 003 1s ...
>> >>> 007 2s ...
>> >>
>> >> Should these be moved to quick?
>> > 
>> > I'll leave that decision up to the blocklayer folks ... I thought that
>> > there might have been a different reason that these have not been put
>> > into "quick" yet...?
>> > 
>> >>> 013 5s ...
>> >>
>> >> this one is borderline
>> >>
>> >>> 014 15s ...
>> >>> 015 9s ...
>> >>
>> >> Definitely not quick, but if you think they are still okay for auto, I
>> >> can live with that.
>> >>
>> >>> 022 1s ...
>> >>
>> >> Another candidate for quick?
>> >>
>> >>> 023 18s ...
>> >>
>> >> Even longer than 14. Okay for auto?
>> > 
>> > I think I'd give it a try. If people are complaining later that "make
>> > check" is running now way too long, we still can refine the list later.
>> 
>> Thinking about this again, "make check" now runs quite a bit longer
>> indeed. So I now rather tend to remove the tests that run longer than 5s
>> from the auto group instead... I think I'll send a v4 of this patch
>> where I'll remove them from the auto group.
>
> I don't think time is everything. We should also consider how much
> the tests contribute to basic code coverage. There is no point in
> removing a test from the list because it takes 10 seconds, but if I
> split it in two tests taking each 5 seconds, you would include both
> halves.
>
> For example, 030, 040 and 041 are not that quick (14/11/42 seconds,
> respectively), but they are the most important tests for block jobs and
> covering a lot. Sure, 42 seconds is a lot, but I'd keep 030 and 040 at
> least.

Yes, we want block jobs covered.  However, 42 seconds is a lot indeed.
Can you think of ways to get a useful part of the full coverage in five
seconds or less?



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-10 Thread Kevin Wolf
Am 10.05.2019 um 10:55 hat Thomas Huth geschrieben:
> On 08/05/2019 07.47, Thomas Huth wrote:
> > On 07/05/2019 17.50, Eric Blake wrote:
> >> On 5/7/19 10:22 AM, Thomas Huth wrote:
> >>> On 07/05/2019 15.22, Markus Armbruster wrote:
>  Thomas Huth  writes:
> 
> > Currently, all tests are in the "auto" group. This is a little bit 
> > pointless.
> > OTOH, we need a group for the tests that we can automatically run during
> > "make check" each time, too. Tests in this new group are supposed to run
> > with every possible QEMU configuration, for example they must run with 
> > every
> > QEMU binary (also non-x86), without failing when an optional features is
> > missing (but reporting "skip" is ok), and be able to run on all kind of 
> > host
> > filesystems and users (i.e. also as "nobody" or "root").
> > So let's use the "auto" group for this class of tests now. The initial
> > list has been determined by running the iotests with non-x86 QEMU 
> > targets
> > and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. 
> > including
> > macOS and FreeBSD).
> 
>  I wonder whether we should additionally limit "make check" to "quick"
>  tests.  How slow are the non-quick auto tests for you?
> >>>
> >>> I already sorted out some of the tests that run vry long, since the
> >>> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
> >>> currently takes 3 minutes on my laptop, I think that's still ok?
> >>>
> >>> When I run the tests from the auto group that are not in the quick
> >>> group, I currently get:
> >>>
> >>
> >> My personal threshold is about 5 seconds for quick, so:
> >>
> >>> 003 1s ...
> >>> 007 2s ...
> >>
> >> Should these be moved to quick?
> > 
> > I'll leave that decision up to the blocklayer folks ... I thought that
> > there might have been a different reason that these have not been put
> > into "quick" yet...?
> > 
> >>> 013 5s ...
> >>
> >> this one is borderline
> >>
> >>> 014 15s ...
> >>> 015 9s ...
> >>
> >> Definitely not quick, but if you think they are still okay for auto, I
> >> can live with that.
> >>
> >>> 022 1s ...
> >>
> >> Another candidate for quick?
> >>
> >>> 023 18s ...
> >>
> >> Even longer than 14. Okay for auto?
> > 
> > I think I'd give it a try. If people are complaining later that "make
> > check" is running now way too long, we still can refine the list later.
> 
> Thinking about this again, "make check" now runs quite a bit longer
> indeed. So I now rather tend to remove the tests that run longer than 5s
> from the auto group instead... I think I'll send a v4 of this patch
> where I'll remove them from the auto group.

I don't think time is everything. We should also consider how much
the tests contribute to basic code coverage. There is no point in
removing a test from the list because it takes 10 seconds, but if I
split it in two tests taking each 5 seconds, you would include both
halves.

For example, 030, 040 and 041 are not that quick (14/11/42 seconds,
respectively), but they are the most important tests for block jobs and
covering a lot. Sure, 42 seconds is a lot, but I'd keep 030 and 040 at
least.

Kevin



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-10 Thread Markus Armbruster
Thomas Huth  writes:

> Thinking about this again, "make check" now runs quite a bit longer
> indeed. So I now rather tend to remove the tests that run longer than 5s
> from the auto group instead... I think I'll send a v4 of this patch
> where I'll remove them from the auto group.

Appreciated!

I'm all for automated testing, but "make check" is already slow enough
to make certain kinds of work painful.  Not quite slow enough to make me
renege on commitments and go on a quest to speed it up.



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-10 Thread Thomas Huth
On 08/05/2019 07.47, Thomas Huth wrote:
> On 07/05/2019 17.50, Eric Blake wrote:
>> On 5/7/19 10:22 AM, Thomas Huth wrote:
>>> On 07/05/2019 15.22, Markus Armbruster wrote:
 Thomas Huth  writes:

> Currently, all tests are in the "auto" group. This is a little bit 
> pointless.
> OTOH, we need a group for the tests that we can automatically run during
> "make check" each time, too. Tests in this new group are supposed to run
> with every possible QEMU configuration, for example they must run with 
> every
> QEMU binary (also non-x86), without failing when an optional features is
> missing (but reporting "skip" is ok), and be able to run on all kind of 
> host
> filesystems and users (i.e. also as "nobody" or "root").
> So let's use the "auto" group for this class of tests now. The initial
> list has been determined by running the iotests with non-x86 QEMU targets
> and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. including
> macOS and FreeBSD).

 I wonder whether we should additionally limit "make check" to "quick"
 tests.  How slow are the non-quick auto tests for you?
>>>
>>> I already sorted out some of the tests that run vry long, since the
>>> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
>>> currently takes 3 minutes on my laptop, I think that's still ok?
>>>
>>> When I run the tests from the auto group that are not in the quick
>>> group, I currently get:
>>>
>>
>> My personal threshold is about 5 seconds for quick, so:
>>
>>> 003 1s ...
>>> 007 2s ...
>>
>> Should these be moved to quick?
> 
> I'll leave that decision up to the blocklayer folks ... I thought that
> there might have been a different reason that these have not been put
> into "quick" yet...?
> 
>>> 013 5s ...
>>
>> this one is borderline
>>
>>> 014 15s ...
>>> 015 9s ...
>>
>> Definitely not quick, but if you think they are still okay for auto, I
>> can live with that.
>>
>>> 022 1s ...
>>
>> Another candidate for quick?
>>
>>> 023 18s ...
>>
>> Even longer than 14. Okay for auto?
> 
> I think I'd give it a try. If people are complaining later that "make
> check" is running now way too long, we still can refine the list later.

Thinking about this again, "make check" now runs quite a bit longer
indeed. So I now rather tend to remove the tests that run longer than 5s
from the auto group instead... I think I'll send a v4 of this patch
where I'll remove them from the auto group.

 Thomas



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-08 Thread Markus Armbruster
Eric Blake  writes:

> On 5/7/19 10:22 AM, Thomas Huth wrote:
>> On 07/05/2019 15.22, Markus Armbruster wrote:
>>> Thomas Huth  writes:
>>>
 Currently, all tests are in the "auto" group. This is a little bit 
 pointless.
 OTOH, we need a group for the tests that we can automatically run during
 "make check" each time, too. Tests in this new group are supposed to run
 with every possible QEMU configuration, for example they must run with 
 every
 QEMU binary (also non-x86), without failing when an optional features is
 missing (but reporting "skip" is ok), and be able to run on all kind of 
 host
 filesystems and users (i.e. also as "nobody" or "root").
 So let's use the "auto" group for this class of tests now. The initial
 list has been determined by running the iotests with non-x86 QEMU targets
 and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. including
 macOS and FreeBSD).
>>>
>>> I wonder whether we should additionally limit "make check" to "quick"
>>> tests.  How slow are the non-quick auto tests for you?
>> 
>> I already sorted out some of the tests that run vry long, since the
>> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
>> currently takes 3 minutes on my laptop, I think that's still ok?
>> 
>> When I run the tests from the auto group that are not in the quick
>> group, I currently get:
>> 
>
> My personal threshold is about 5 seconds for quick, so:
>
>> 003 1s ...
>> 007 2s ...
>
> Should these be moved to quick?
>
>> 013 5s ...
>
> this one is borderline
>
>> 014 15s ...
>> 015 9s ...
>
> Definitely not quick, but if you think they are still okay for auto, I
> can live with that.
>
>> 022 1s ...
>
> Another candidate for quick?
>
>> 023 18s ...
>
> Even longer than 14. Okay for auto?
>
> etc.

Kevin, Max?



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-07 Thread Thomas Huth
On 07/05/2019 17.50, Eric Blake wrote:
> On 5/7/19 10:22 AM, Thomas Huth wrote:
>> On 07/05/2019 15.22, Markus Armbruster wrote:
>>> Thomas Huth  writes:
>>>
 Currently, all tests are in the "auto" group. This is a little bit 
 pointless.
 OTOH, we need a group for the tests that we can automatically run during
 "make check" each time, too. Tests in this new group are supposed to run
 with every possible QEMU configuration, for example they must run with 
 every
 QEMU binary (also non-x86), without failing when an optional features is
 missing (but reporting "skip" is ok), and be able to run on all kind of 
 host
 filesystems and users (i.e. also as "nobody" or "root").
 So let's use the "auto" group for this class of tests now. The initial
 list has been determined by running the iotests with non-x86 QEMU targets
 and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. including
 macOS and FreeBSD).
>>>
>>> I wonder whether we should additionally limit "make check" to "quick"
>>> tests.  How slow are the non-quick auto tests for you?
>>
>> I already sorted out some of the tests that run vry long, since the
>> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
>> currently takes 3 minutes on my laptop, I think that's still ok?
>>
>> When I run the tests from the auto group that are not in the quick
>> group, I currently get:
>>
> 
> My personal threshold is about 5 seconds for quick, so:
> 
>> 003 1s ...
>> 007 2s ...
> 
> Should these be moved to quick?

I'll leave that decision up to the blocklayer folks ... I thought that
there might have been a different reason that these have not been put
into "quick" yet...?

>> 013 5s ...
> 
> this one is borderline
> 
>> 014 15s ...
>> 015 9s ...
> 
> Definitely not quick, but if you think they are still okay for auto, I
> can live with that.
> 
>> 022 1s ...
> 
> Another candidate for quick?
> 
>> 023 18s ...
> 
> Even longer than 14. Okay for auto?

I think I'd give it a try. If people are complaining later that "make
check" is running now way too long, we still can refine the list later.

 Thomas



signature.asc
Description: OpenPGP digital signature


Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-07 Thread Eric Blake
On 5/7/19 10:22 AM, Thomas Huth wrote:
> On 07/05/2019 15.22, Markus Armbruster wrote:
>> Thomas Huth  writes:
>>
>>> Currently, all tests are in the "auto" group. This is a little bit 
>>> pointless.
>>> OTOH, we need a group for the tests that we can automatically run during
>>> "make check" each time, too. Tests in this new group are supposed to run
>>> with every possible QEMU configuration, for example they must run with every
>>> QEMU binary (also non-x86), without failing when an optional features is
>>> missing (but reporting "skip" is ok), and be able to run on all kind of host
>>> filesystems and users (i.e. also as "nobody" or "root").
>>> So let's use the "auto" group for this class of tests now. The initial
>>> list has been determined by running the iotests with non-x86 QEMU targets
>>> and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. including
>>> macOS and FreeBSD).
>>
>> I wonder whether we should additionally limit "make check" to "quick"
>> tests.  How slow are the non-quick auto tests for you?
> 
> I already sorted out some of the tests that run vry long, since the
> run time on gitlab, cirrus-ci and travis is limited. "make check-block"
> currently takes 3 minutes on my laptop, I think that's still ok?
> 
> When I run the tests from the auto group that are not in the quick
> group, I currently get:
> 

My personal threshold is about 5 seconds for quick, so:

> 003 1s ...
> 007 2s ...

Should these be moved to quick?

> 013 5s ...

this one is borderline

> 014 15s ...
> 015 9s ...

Definitely not quick, but if you think they are still okay for auto, I
can live with that.

> 022 1s ...

Another candidate for quick?

> 023 18s ...

Even longer than 14. Okay for auto?

etc.


-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



signature.asc
Description: OpenPGP digital signature


Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-07 Thread Thomas Huth
On 07/05/2019 15.22, Markus Armbruster wrote:
> Thomas Huth  writes:
> 
>> Currently, all tests are in the "auto" group. This is a little bit pointless.
>> OTOH, we need a group for the tests that we can automatically run during
>> "make check" each time, too. Tests in this new group are supposed to run
>> with every possible QEMU configuration, for example they must run with every
>> QEMU binary (also non-x86), without failing when an optional features is
>> missing (but reporting "skip" is ok), and be able to run on all kind of host
>> filesystems and users (i.e. also as "nobody" or "root").
>> So let's use the "auto" group for this class of tests now. The initial
>> list has been determined by running the iotests with non-x86 QEMU targets
>> and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. including
>> macOS and FreeBSD).
> 
> I wonder whether we should additionally limit "make check" to "quick"
> tests.  How slow are the non-quick auto tests for you?

I already sorted out some of the tests that run vry long, since the
run time on gitlab, cirrus-ci and travis is limited. "make check-block"
currently takes 3 minutes on my laptop, I think that's still ok?

When I run the tests from the auto group that are not in the quick
group, I currently get:

003 1s ...
007 2s ...
013 5s ...
014 15s ...
015 9s ...
022 1s ...
023 18s ...
043 0s ...
049 3s ...
061 4s ...
079 2s ...
080 4s ...
091 1s ...
097 2s ...
104 0s ...
117 0s ...
122 8s ...
126 1s ...
137 1s ...
142 5s ...
172 3s ...
174 0s ...
176 5s ...
181 2s ...
186 2s ...
187 0s ...
191 5s ...
201 2s ...
214 0s ...

That looks reasonable to me.

 Thomas



Re: [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run

2019-05-07 Thread Markus Armbruster
Thomas Huth  writes:

> Currently, all tests are in the "auto" group. This is a little bit pointless.
> OTOH, we need a group for the tests that we can automatically run during
> "make check" each time, too. Tests in this new group are supposed to run
> with every possible QEMU configuration, for example they must run with every
> QEMU binary (also non-x86), without failing when an optional features is
> missing (but reporting "skip" is ok), and be able to run on all kind of host
> filesystems and users (i.e. also as "nobody" or "root").
> So let's use the "auto" group for this class of tests now. The initial
> list has been determined by running the iotests with non-x86 QEMU targets
> and with our CI pipelines on Gitlab, Cirrus-CI and Travis (i.e. including
> macOS and FreeBSD).

I wonder whether we should additionally limit "make check" to "quick"
tests.  How slow are the non-quick auto tests for you?