Skip to content

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented Dec 2, 2023

The system_tests/run_command test is broken because it passes even with the diff as follows:

--- a/src/test/system_tests.cpp
+++ b/src/test/system_tests.cpp
@@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(run_command)
         });
     }
     {
-        BOOST_REQUIRE_THROW(RunCommandParseJSON("echo \"{\""), std::runtime_error); // Unable to parse JSON
+        BOOST_REQUIRE_THROW(RunCommandParseJSON("invalid_command \"{\""), std::runtime_error); // Unable to parse JSON
     }
     // Test std::in, except for Windows
 #ifndef WIN32

The reason of such fragility is that the BOOST_REQUIRE_THROW macro passes even if the command raises an exception in the underlying subprocess implementation, which might have a type derived from std::runtime_error.

@DrahtBot
Copy link
Contributor

DrahtBot commented Dec 2, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage

For detailed information about the code coverage, see the test coverage report.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK furszy, maflcko, pablomartin4btc, achow101

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

No conflicts as of last run.

The BOOST_REQUIRE_THROW passes even if the command raises an exception
in the underlying subprocess implementation, which might have a type
derived from std::runtime_error.
@hebasto hebasto force-pushed the 231202-system-test branch from 24d978a to 55e3dc3 Compare December 3, 2023 16:04
@hebasto
Copy link
Member Author

hebasto commented Dec 3, 2023

Updated 24d978a -> 55e3dc3 (pr28989.01 -> pr28989.02, diff):

Copy link
Member

@furszy furszy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-Windows code ACK 55e3dc3

@maflcko
Copy link
Member

maflcko commented Dec 4, 2023

lgtm ACK 55e3dc3

Copy link
Member

@pablomartin4btc pablomartin4btc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 55e3dc3

@hebasto
Copy link
Member Author

hebasto commented Dec 6, 2023

Friendly ping @Sjors :)

@achow101
Copy link
Member

achow101 commented Dec 6, 2023

ACK 55e3dc3

@achow101 achow101 merged commit 9693cfa into bitcoin:master Dec 6, 2023
@hebasto hebasto deleted the 231202-system-test branch December 6, 2023 16:55
@Sjors
Copy link
Member

Sjors commented Dec 6, 2023

Looks like a reasonable fix, thanks!

PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Oct 24, 2024
…instance

55e3dc3 test: Fix test by checking the actual exception instance (Hennadii Stepanov)

Pull request description:

  The `system_tests/run_command` test is broken because it passes even with the diff as follows:
  ```diff
  --- a/src/test/system_tests.cpp
  +++ b/src/test/system_tests.cpp
  @@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(run_command)
           });
       }
       {
  -        BOOST_REQUIRE_THROW(RunCommandParseJSON("echo \"{\""), std::runtime_error); // Unable to parse JSON
  +        BOOST_REQUIRE_THROW(RunCommandParseJSON("invalid_command \"{\""), std::runtime_error); // Unable to parse JSON
       }
       // Test std::in, except for Windows
   #ifndef WIN32
  ```

  The reason of such fragility is that the [`BOOST_REQUIRE_THROW`](https://www.boost.org/doc/libs/1_83_0/libs/test/doc/html/boost_test/utf_reference/testing_tool_ref/assertion_boost_level_throw.html) macro passes even if the command raises an exception in the underlying subprocess implementation, which might have a type derived from `std::runtime_error`.

ACKs for top commit:
  maflcko:
    lgtm ACK 55e3dc3
  achow101:
    ACK 55e3dc3
  furszy:
    Non-Windows code ACK 55e3dc3
  pablomartin4btc:
    ACK 55e3dc3

Tree-SHA512: 32f49421bdcc94744c81e82dc10cfa02e3f8ed111974edf1c2a47bdaeb56d7baec1bede67301cc89464fba613029ecb131dedc6bc5948777ab52f0f12df8bfe9
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Oct 24, 2024
…instance

55e3dc3 test: Fix test by checking the actual exception instance (Hennadii Stepanov)

Pull request description:

  The `system_tests/run_command` test is broken because it passes even with the diff as follows:
  ```diff
  --- a/src/test/system_tests.cpp
  +++ b/src/test/system_tests.cpp
  @@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(run_command)
           });
       }
       {
  -        BOOST_REQUIRE_THROW(RunCommandParseJSON("echo \"{\""), std::runtime_error); // Unable to parse JSON
  +        BOOST_REQUIRE_THROW(RunCommandParseJSON("invalid_command \"{\""), std::runtime_error); // Unable to parse JSON
       }
       // Test std::in, except for Windows
   #ifndef WIN32
  ```

  The reason of such fragility is that the [`BOOST_REQUIRE_THROW`](https://www.boost.org/doc/libs/1_83_0/libs/test/doc/html/boost_test/utf_reference/testing_tool_ref/assertion_boost_level_throw.html) macro passes even if the command raises an exception in the underlying subprocess implementation, which might have a type derived from `std::runtime_error`.

ACKs for top commit:
  maflcko:
    lgtm ACK 55e3dc3
  achow101:
    ACK 55e3dc3
  furszy:
    Non-Windows code ACK 55e3dc3
  pablomartin4btc:
    ACK 55e3dc3

Tree-SHA512: 32f49421bdcc94744c81e82dc10cfa02e3f8ed111974edf1c2a47bdaeb56d7baec1bede67301cc89464fba613029ecb131dedc6bc5948777ab52f0f12df8bfe9
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Oct 24, 2024
…instance

55e3dc3 test: Fix test by checking the actual exception instance (Hennadii Stepanov)

Pull request description:

  The `system_tests/run_command` test is broken because it passes even with the diff as follows:
  ```diff
  --- a/src/test/system_tests.cpp
  +++ b/src/test/system_tests.cpp
  @@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(run_command)
           });
       }
       {
  -        BOOST_REQUIRE_THROW(RunCommandParseJSON("echo \"{\""), std::runtime_error); // Unable to parse JSON
  +        BOOST_REQUIRE_THROW(RunCommandParseJSON("invalid_command \"{\""), std::runtime_error); // Unable to parse JSON
       }
       // Test std::in, except for Windows
   #ifndef WIN32
  ```

  The reason of such fragility is that the [`BOOST_REQUIRE_THROW`](https://www.boost.org/doc/libs/1_83_0/libs/test/doc/html/boost_test/utf_reference/testing_tool_ref/assertion_boost_level_throw.html) macro passes even if the command raises an exception in the underlying subprocess implementation, which might have a type derived from `std::runtime_error`.

ACKs for top commit:
  maflcko:
    lgtm ACK 55e3dc3
  achow101:
    ACK 55e3dc3
  furszy:
    Non-Windows code ACK 55e3dc3
  pablomartin4btc:
    ACK 55e3dc3

Tree-SHA512: 32f49421bdcc94744c81e82dc10cfa02e3f8ed111974edf1c2a47bdaeb56d7baec1bede67301cc89464fba613029ecb131dedc6bc5948777ab52f0f12df8bfe9
PastaPastaPasta added a commit to dashpay/dash that referenced this pull request Oct 24, 2024
8bf1d06 Merge bitcoin#29308: doc: update `BroadcastTransaction` comment (glozow)
2a77808 Merge bitcoin-core/gui#789: Avoid non-self-contained Windows header (Hennadii Stepanov)
da371b8 Merge bitcoin#28870: depends: Include `config.guess` and `config.sub` into `meta_depends` (fanquake)
2e41562 Merge bitcoin#29219: fuzz: Improve fuzzing stability for ellswift_roundtrip harness (fanquake)
b091329 Merge bitcoin#29211: fuzz: fix `connman` initialization (Ava Chow)
df42d41 Merge bitcoin#29200: net: create I2P sessions using both ECIES-X25519 and ElGamal encryption (fanquake)
4cdd1a8 Merge bitcoin#29172: fuzz: set `nMaxOutboundLimit` in connman target (fanquake)
97012ea Merge bitcoin#28962: doc: Rework guix docs after 1.4 release (fanquake)
c70ff5d Merge bitcoin#28844: contrib: drop GCC MAX_VERSION to 4.3.0 in symbol-check (fanquake)
e6f19e7 Merge bitcoin#29068: test: Actually fail when a python unit test fails (fanquake)
75e0334 Merge bitcoin#28989: test: Fix test by checking the actual exception instance (Andrew Chow)
8cd85d3 Merge bitcoin#28852: script, assumeutxo: Enhance validations in utxo_snapshot.sh (Ryan Ofsky)
fd2e88d Merge bitcoin#26077: guix: switch from `guix environment` to `guix shell` (fanquake)
02741a7 Merge bitcoin#28913: coins: make sure PoolAllocator uses the correct alignment (fanquake)
dfd53da Merge bitcoin#28902: doc: Simplify guix install doc, after 1.4 release (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  Batch of trivial backports

  ## What was done?
  See commits

  ## How Has This Been Tested?
  built locally; large combined merge passed tests locally

  ## Breaking Changes
  Should be none

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 8bf1d06
  knst:
    utACK 8bf1d06

Tree-SHA512: 506273e5a188f9ca74edf656e3cd338992192e6e97f68c89fc43e34be20fb7f211b48e4dfa8693727839a7920da8284509413c722f55774a428939c296dad517
@bitcoin bitcoin locked and limited conversation to collaborators Dec 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants