monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] How does 'mtn testresult' work?


From: Mathias Weidner
Subject: Re: [Monotone-devel] How does 'mtn testresult' work?
Date: Sat, 22 Dec 2012 12:12:37 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

wrote Richard Hopkins, am 21.12.2012 20:24:
>> cd ../testbranch2
>> echo testkey2 > _MTN/wanted-testresults
>> mtn update
>> - ----- >8 -----
>>
>> I did expect that the last 'mtn update' would fail, since
>> the first
>> revision (99b505..) now contains a cert with name
>> 'testresult' signed
>> by testkey2 and value '1' while the second revision
>> (a4bd7c..) has the
>> same cert but with value '0'.
>>
> 
> You are correct that the update should have failed as your workspace
> revision "passes" and it's update target "fails". However, it seems
> the default definition of 'accept_testresult_change' needs tweaking.
> 
> It's my understanding that 'wanted_testresults' should contain the key
> hash for each of your test suite keys with 1 per line. The problem
> is that the we pass the binary encoding of the hash instead of the
> hex encoding. This will be resolved by the next release.
> 
> In the meantime you can workaround this issue by using the
> default definition but hex encoding the keys beforehand in your
> '_MTN/monotonerc'.

Thanks, your workaround did work for me.

Just one note, for the records. The key hash has to be in upper case or
HexDumpString() must be changed to return the hex encoding in lower case.

I had to experiment a little bit (litter accep_testresult_change() with
io.write()) to find this out ;-)

At last I did

mtn ls keys testkey2 \
|perl -n -e 's/^([0-9a-z]+)\s+testkey2/\U$1/ && print && exit' \
> _MTN/wanted-testresults

copied your code to _MTN/monotonerc and got

mtn update
mtn: updating along branch 'testbranch'
old result: 3569956429E928CE0344FBB567AE637B7CB89B8B is true
new result: 3569956429E928CE0344FBB567AE637B7CB89B8B is true
this is required: 3569956429E928CE0344FBB567AE637B7CB89B8B
old result: 3569956429E928CE0344FBB567AE637B7CB89B8B is true
new result: 3569956429E928CE0344FBB567AE637B7CB89B8B is false
this is required: 3569956429E928CE0344FBB567AE637B7CB89B8B
mtn: already up to date at 99b505974f54aa4d0344b597362791590fd85028

Many thanks,

Mathias
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iEYEARECAAYFAlDVlaIACgkQIjqrn1X6XoxFJACgncaLCQ9g80yEJninhUkK36su
rrEAoKzXLSstJy9I587ZMbO4vsid+PK+
=K2X/
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]