tests: Mark test coins_tests/updatecoins_simulation_test as non-deterministic #16221

pull practicalswift wants to merge 1 commits into bitcoin:master from practicalswift:updatecoins_simulation_test changing 1 files +1 −0
  1. practicalswift commented at 5:37 PM on June 16, 2019: contributor

    Mark test coins_tests/updatecoins_simulation_test as non-deterministic:

    $ contrib/devtools/test_deterministic_coverage.sh 1000
    [2019-06-15 05:36:20] Measuring coverage, run [#1](/bitcoin-bitcoin/1/) of 1000
    [2019-06-15 05:38:05] Measuring coverage, run [#2](/bitcoin-bitcoin/2/) of 1000
    [2019-06-15 05:39:49] Measuring coverage, run [#3](/bitcoin-bitcoin/3/) of 1000
    [2019-06-15 05:41:38] Measuring coverage, run [#4](/bitcoin-bitcoin/4/) of 1000
    [2019-06-15 05:43:16] Measuring coverage, run [#5](/bitcoin-bitcoin/5/) of 1000
    ...
    [2019-06-16 18:25:23] Measuring coverage, run [#880](/bitcoin-bitcoin/880/) of 1000
    [2019-06-16 18:27:12] Measuring coverage, run [#881](/bitcoin-bitcoin/881/) of 1000
    [2019-06-16 18:29:33] Measuring coverage, run [#882](/bitcoin-bitcoin/882/) of 1000
    [2019-06-16 18:33:00] Measuring coverage, run [#883](/bitcoin-bitcoin/883/) of 1000
    [2019-06-16 18:35:32] Measuring coverage, run [#884](/bitcoin-bitcoin/884/) of 1000
    
    The line coverage is non-deterministic between runs. Exiting.
    
    The test suite must be deterministic in the sense that the set of lines executed at least
    once must be identical between runs. This is a necessary condition for meaningful
    coverage measuring.
    
    --- gcovr.run-1.txt     2019-06-15 05:38:05.282359029 +0200
    +++ gcovr.run-884.txt   2019-06-16 18:37:23.518298374 +0200
    @@ -269,7 +269,7 @@
     test/bloom_tests.cpp                         320     320   100%   
     test/bswap_tests.cpp                          13      13   100%   
     test/checkqueue_tests.cpp                    223     222    99%   169
    -test/coins_tests.cpp                         478     472    98%   52,68,344-345,511,524
    +test/coins_tests.cpp                         478     474    99%   52,68,511,524
     test/compilerbug_tests.cpp                    18      18   100%   
     test/compress_tests.cpp                       27      27   100%   
     test/crypto_tests.cpp                        268     268   100%   
    @@ -401,5 +401,5 @@
     zmq/zmqpublishnotifier.h                       5       0     0%   12,31,37,43,49
     zmq/zmqrpc.cpp                                23       3    13%   16,18,20,23,33-35,37,40-47,51,62,64-65
     ------------------------------------------------------------------------------
    -TOTAL                                      53323   28305    53%
    +TOTAL                                      53323   28307    53%
     ------------------------------------------------------------------------------
    
  2. tests: Mark coins_tests/updatecoins_simulation_test as non-deterministic bad28a0818
  3. MarcoFalke commented at 5:54 PM on June 16, 2019: member

    I'd prefer to make it deterministic

  4. practicalswift commented at 8:25 PM on June 16, 2019: contributor

    @MarcoFalke Me too! Perhaps you are better at finding and fixing the root cause of the non-determinism in this case? I've been unsuccessful so far :-)

    As with all suppressions this is just a stop-gap to make test_deterministic_coverage.sh usable for guarding against the introduction of new non-determinism until the source of non-determinism has been fixed.

    I'm running contrib/devtools/test_deterministic_coverage.sh continuously against master on a testing server to find any introduction of new non-determinism in our tests: that's why I'm eager to get suppressions in for the remaining known cases. AFAIK, this one and #16212 are the only ones left.

  5. fanquake added the label Scripts and tools on Jun 17, 2019
  6. fanquake added the label Tests on Jun 17, 2019
  7. MarcoFalke commented at 1:48 PM on June 17, 2019: member

    They are not deterministic because SaltedOutpointHasher is not deterministic

  8. mzumsande commented at 4:26 PM on June 17, 2019: member

    ...which uses GetRand(), so setting g_mock_deterministic_tests=true should make the test deterministic.

  9. MarcoFalke commented at 4:56 PM on June 17, 2019: member

    Oh, I forgot that I already added that mock flag in fae169c95e09ddf068dcaebc8170c4f41b02cf66.

    Yeah, so should be trivial to make it deterministic. Closing this pull request.

  10. MarcoFalke closed this on Jun 17, 2019

  11. practicalswift deleted the branch on Apr 10, 2021
  12. DrahtBot locked this on Aug 16, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 18:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me