Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XML Reporter doesn't output stderr / stdin when there is a segfault #2819

Open
Butanium opened this issue Feb 20, 2024 · 3 comments
Open

XML Reporter doesn't output stderr / stdin when there is a segfault #2819

Butanium opened this issue Feb 20, 2024 · 3 comments

Comments

@Butanium
Copy link

Describe the bug
No output when segfault during test

Expected behavior
Output

Reproduction steps

TEST_CASE("test") {
    std::cout << "Cout!" << std::endl;
    std::cerr << "Cerr!" << std::endl;
    // Generate a segfault
    int *a = nullptr;
    *a = 1;
    
}

Platform information:

  • OS: Linux
  • Compiler+version: GCC v13.2
  • Catch version: v3.4.0

Additional context
Similar to #1514

@horenmar
Copy link
Member

Are you running the binary standalone, or inside some IDE? By default Catch2 is not touching the streams, so they might show.

Note the might here, because the compiler is fully within its rights to just delete everything in the test case due to the code invoking UB.

@Butanium
Copy link
Author

Butanium commented Feb 29, 2024

I'm using Clion. They use the -r xml option which causes the Error:

➜ cmake-build-debug/tests -r xml -d yes --order lex test
<?xml version="1.0" encoding="UTF-8"?>
<Catch2TestRun name="tests" rng-seed="540031174" xml-format-version="3" catch2-version="3.4.0" filters="&quot;test&quot;">
  <TestCase name="test" filename="/home/clementd/Documents/ENS/INF560/yaalpp/tests/test.cpp" line="228">
    <FatalErrorCondition filename="/home/clementd/Documents/ENS/INF560/yaalpp/tests/test.cpp" line="228">
      SIGSEGV - Segmentation violation signal
    </FatalErrorCondition>
    <OverallResult success="false" skips="0" durationInSeconds="7.4e-05"/>
  </TestCase>
  <OverallResults successes="0" failures="1" expectedFailures="0" skips="0"/>
  <OverallResultsCases successes="0" failures="1" expectedFailures="0" skips="0"/>
</Catch2TestRun>Erreur de segmentation (core dumped)

Without -r xml:

cmake-build-debug/tests -d yes --order lex test
Filters: "test"
Randomness seeded to: 1029050377
Cout!
Cerr!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tests is a Catch2 v3.4.0 host application.
Run with -? for options

-------------------------------------------------------------------------------
test
-------------------------------------------------------------------------------
/home/clementd/Documents/ENS/INF560/yaalpp/tests/test.cpp:228
...............................................................................

/home/clementd/Documents/ENS/INF560/yaalpp/tests/test.cpp:228: FAILED:
due to a fatal error condition:
  SIGSEGV - Segmentation violation signal

0.000 s: test
===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed

Erreur de segmentation (core dumped)

@Butanium Butanium changed the title Reporter doesn't output stderr / stdin when there is a segfault XML Reporter doesn't output stderr / stdin when there is a segfault Feb 29, 2024
@Butanium
Copy link
Author

I tested on the devel branch and I have the same issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants