Re: Bug#645558: Improve britney2 auto-hinter
On 2011-10-18 11:59, Joachim Breitner wrote:
> Am Dienstag, den 18.10.2011, 09:41 +0200 schrieb Niels Thykier:
>> On 2011-10-18 09:34, Joachim Breitner wrote:
>>>> Thanks, I have merged the changes in your branch and added a couple of
>>>> other changes (particularly two new tests).
>>> Is the git repo permantely set up for pulling via HTTP (by enabling
>>> hooks/post-update)? My "git pull" does not see any changes.
>> Not sure why it does not work. But I have pushed it to github as well,
>> so you can fetch it from there.
>>  https://github.com/nthykier/britney-tests
> it worked a little later – that’s git.
Yes, Mehdi reminded me to run git update-server-info and I have put that
in the post-commit hook, so it should work for now. :)
> I modified basic-binnmu to be more realistic: The Source: entry in the
> Package file should carry the Source version number if it is not equal
> to the binary number.
> Now about tree-circle-dependencies-huge-graph-new-young and
> tree-circle-dependencies-huge-graph-old-young; these are failing here
> although SAT-Britney finds a transition, and I’m not sure if I get it
> correctly – does the expected file state what does happen with britney
> ATM, or what should ideally happen?
> If these two notions differ, maybe two files could be added to the test
> ("expected" and "desired"), so that the test is not marked as FAILED if
> some patch or implementation exceeds our expectations on britney.
Currently the tests only have one case (or one "successful" state).
While I agree in general having a more general notation would be better,
the particular cases should have only one "successful" case.
"-new-young" is basically the "-no-hint" with N^2 extra "new packages"
(i.e. packages not in testing) that depends on the existing packages.
The new packages are "too young" to migrate (i.e. are not considered).
In this case N^2 out of the 2*N^2 packages can migrate (the exact same
as in the "-no-hint" case), because the "too young" packages are not
already in testing (so nothing is broken).
In the "-old-young", the "too young packages" have a version in testing
that is broken by the migration, so the hint should fail. The whole
idea of this test is to ensure that the hint is not accepted at
face-value, so if the SAT solver migrates anything here then either the
test is broken or the SAT solver is broken.
I have added a description file to some of the test cases to explain
what they are about. For the huge-graphs, it will also generate a dot
graph showing the state of unstable (and testing) before the britney run.
I currently test against britney2 with my patch applied (the one from
the start of this thread). I also have auto-hinting before the "main
run" in britney2 (fairly simple change, I can send you the diff if you
want to see it). The latter is mostly because it reduces the runtime of
some test cases.