[ci] Run functional tests using bitcoin-qt in one Travis job #12873

pull jamesob wants to merge 2 commits into bitcoin:master from jamesob:2018-04-03-travis-func-qt changing 2 files +31 −5
  1. jamesob commented at 8:41 pm on April 3, 2018: member

    As noted in #12843, we’re currently missing bugs unique to bitcoin-qt during the Travis build because the functional test framework only uses bitcoind (and not bitcoin-qt).

    Run a single Travis job under xvfb for framebuffer virtualization and using bitcoin-qt as the binary. I’ve also removed the NEED_XVFB configuration since our usage of xvfb is outdated per Travis’ docs and the corresponding pre-build step is no longer necessary.

  2. jnewbery commented at 8:44 pm on April 3, 2018: member
    Concept ACK!
  3. jnewbery added the label Tests on Apr 3, 2018
  4. practicalswift commented at 9:09 pm on April 3, 2018: contributor
    Concept ACK
  5. jamesob force-pushed on Apr 4, 2018
  6. jamesob force-pushed on Apr 4, 2018
  7. jamesob closed this on Apr 4, 2018

  8. jamesob reopened this on Apr 4, 2018

  9. jamesob force-pushed on Apr 4, 2018
  10. Sjors commented at 3:40 pm on April 4, 2018: member
    Concept ACK
  11. jamesob force-pushed on Apr 4, 2018
  12. jamesob commented at 5:45 pm on April 4, 2018: member
    Closing and re-opening in an attempt to get Travis to kick off a build - I was flagged (and then unflagged) as abusing Travis.
  13. jamesob closed this on Apr 4, 2018

  14. jamesob reopened this on Apr 4, 2018

  15. jamesob force-pushed on Apr 4, 2018
  16. jamesob closed this on Apr 4, 2018

  17. jamesob reopened this on Apr 4, 2018

  18. jamesob force-pushed on Apr 4, 2018
  19. jamesob closed this on Apr 4, 2018

  20. jamesob reopened this on Apr 4, 2018

  21. in .travis.yml:62 in 709bfaebe0 outdated
    61@@ -61,7 +62,6 @@ before_script:
    62     - if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
    63     - if [ -z "$NO_DEPENDS" ]; then make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS; fi
    64     # Start xvfb if needed, as documented at https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-a-GUI
    


    fanquake commented at 10:58 pm on April 4, 2018:
    Should remove this comment

    jamesob commented at 6:07 pm on April 5, 2018:
    Thanks! Fixed.
  22. jamesob force-pushed on Apr 5, 2018
  23. MarcoFalke closed this on Apr 5, 2018

  24. MarcoFalke reopened this on Apr 5, 2018

  25. jamesob force-pushed on Apr 9, 2018
  26. jamesob closed this on Apr 9, 2018

  27. jamesob reopened this on Apr 9, 2018

  28. practicalswift commented at 2:20 pm on April 9, 2018: contributor
    @jamesob Try force pushing a change instead (say after changing the commit message) - that should trigger a Travis rebuild. Closing and re-opening an issue will create a notification to followers to I think force pushing is a better way to wake up Travis :-)
  29. jamesob commented at 3:19 pm on April 9, 2018: member
    @practicalswift I’m really sorry about the spam, but force pushing isn’t kicking off a Travis build for this PR (for reasons unknown to me). You can see above that @MarcoFalke had to do the same thing. I’ll try opening a new PR next time I’d otherwise have to resort to an open/close. Sorry again for the trouble.
  30. practicalswift commented at 3:37 pm on April 9, 2018: contributor
    @jamesob I’ve now restarted the failing Travis build jobs :-)
  31. practicalswift commented at 3:41 pm on April 9, 2018: contributor
    @jamesob You may want to contact Travis CI support and make sure you’re account has not been flagged on their side. That happens and they’re usually fixing that quickly after receiving a ticket about it.
  32. laanwj commented at 3:47 pm on April 10, 2018: member
    Concept ACK (needs rebase)
  33. jamesob force-pushed on Apr 10, 2018
  34. jamesob force-pushed on Apr 10, 2018
  35. jamesob force-pushed on Apr 17, 2018
  36. jamesob force-pushed on Apr 17, 2018
  37. jamesob force-pushed on Apr 17, 2018
  38. jamesob force-pushed on Apr 17, 2018
  39. conscott commented at 1:05 pm on April 23, 2018: contributor

    Concept ACK b42a408783b345d3f6c46e26a2d24dd00e1cff70

    Seems one test is failing due to #12863.

    For the actual bitcoin-qt job failing I tried to reproduce errors locally with Xvfd, manually setting BITCOIND to bitcoin-qt, but had no luck (all tests pass).

  40. laanwj referenced this in commit 896a9d026c on Apr 24, 2018
  41. jamesob commented at 12:42 pm on April 25, 2018: member

    @conscott thanks for trying to reproduce locally. I’ve been doing same and while I’m unable to reproduce on my 16.04 host, I’ve been able to reproduce reliably on a 14.04 VM.

    I think running the functional suite using the qt binary has uncovered a latent deadlock, perhaps due to 14.04’s older default version of OpenSSL (1.0.1f) based on a tip from @TheBlueMatt.

    Here’s some relevant log output from the tests:

     0stderr:
     1bitcoin-qt: sync.cpp:101: void potential_deadlock_detected(const std::pair<void*, void*>&, const LockStack&, const LockStack&): Assertion `false' failed.
     2...
     3node0 2018-04-17T23:41:37.857938Z GUI: PaymentServer::LoadRootCAs: Loaded  145  root certificates 
     4node0 2018-04-17T23:41:38.262348Z POTENTIAL DEADLOCK DETECTED 
     5node0 2018-04-17T23:41:38.262376Z Previous lock order was: 
     6node0 2018-04-17T23:41:38.262386Z  (1) ppmutexOpenSSL[i]  util.cpp:107 
     7node0 2018-04-17T23:41:38.262403Z  (2) cs  ./addrman.h:508 
     8node0 2018-04-17T23:41:38.262416Z Current lock order is: 
     9node0 2018-04-17T23:41:38.262424Z  (2) cs  ./addrman.h:473 
    10node0 2018-04-17T23:41:38.262437Z  (1) ppmutexOpenSSL[i]  util.cpp:107 
    

    I’m going to continue to investigate.

  42. in test/functional/test_framework/test_framework.py:86 in 15a2f8f7d2 outdated
    82@@ -83,6 +83,7 @@ def __init__(self):
    83         self.setup_clean_chain = False
    84         self.nodes = []
    85         self.mocktime = 0
    86+        self.binary = os.getenv("BITCOIND", "bitcoind")
    


    MarcoFalke commented at 2:42 pm on April 25, 2018:
    Needs rebase due to conflict here
  43. jamesob force-pushed on Apr 25, 2018
  44. Make functional tests compatible with bitcoin-qt usage
    In particular, skip any assert_start_raises_init_error checks due to the way
    QT handles startup errors (presents the user with an error dialog which must be
    closed). In the future we may implement a better way of handling this.
    85e2b57749
  45. jamesob force-pushed on Jun 4, 2018
  46. jamesob force-pushed on Jun 4, 2018
  47. jamesob force-pushed on Jun 4, 2018
  48. [ci] Run functional tests using bitcoin-qt in one Travis job
    As noted in https://github.com/bitcoin/bitcoin/pull/12843, we're currently
    missing bugs unique to bitcoin-qt during the Travis build because the
    functional test framework only uses bitcoind (and not bitcoin-qt).
    
    Run a single Travis job under xvfb for framebuffer virtualization and using
    bitcoin-qt as the binary. Remove outdated NEED_XVFB Travis configuration.
    20323ee533
  49. jamesob force-pushed on Jun 4, 2018
  50. DrahtBot added the label Needs rebase on Jun 24, 2018
  51. DrahtBot commented at 2:21 pm on June 24, 2018: member
  52. in .travis.yml:84 in 20323ee533
    79@@ -74,7 +80,11 @@ script:
    80     - DOCKER_EXEC make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && DOCKER_EXEC make $GOAL V=1 ; false )
    81     - if [ "$RUN_TESTS" = "true" ]; then DOCKER_EXEC LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1; fi
    82     - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then extended="--extended --exclude feature_pruning,feature_dbcrash"; fi
    83-    - if [ "$RUN_TESTS" = "true" ]; then DOCKER_EXEC test/functional/test_runner.py --combinedlogslen=4000 --coverage --quiet --failfast ${extended}; fi
    84+    - if [ "$RUN_TESTS_WITH_QT" = "true" ]; then
    85+          DOCKER_EXEC BITCOIND=$(DOCKER_EXEC find . -name 'bitcoin-qt' -executable) $FUNCTIONAL_TEST_CMD ${extended};
    


    MarcoFalke commented at 2:24 pm on June 24, 2018:
    I believe you can just write BITCOIND=bitcoin-qt and it will look in the build dir automatically, as opposed to ./, what your find does.
  53. laanwj commented at 10:51 am on August 27, 2018: member
    this has needed rebase for a long time closing because of inactivity; let me know if you start work on this again and I’ll reopen
  54. laanwj closed this on Aug 27, 2018

  55. jasonbcox referenced this in commit 1f1acdc42e on Sep 27, 2019
  56. laanwj removed the label Needs rebase on Oct 24, 2019
  57. PastaPastaPasta referenced this in commit effe6d1263 on Nov 10, 2020
  58. PastaPastaPasta referenced this in commit 90d076846c on Nov 12, 2020
  59. PastaPastaPasta referenced this in commit 90038da3d9 on Nov 17, 2020
  60. DrahtBot locked this on Dec 16, 2021

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: 2024-12-18 18:12 UTC

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