Criterion icon indicating copy to clipboard operation
Criterion copied to clipboard

Redirections for `stdout` require buffering to be disabled for assertions like `cr_assert_stdout_eq_str` to pass.

Open oliversheridanmethven opened this issue 2 years ago • 0 comments

I think mostly this is a documentation issue, but I found when I was doing all the redirection tests with stderr everything was working fine (as in the docs), but when I switched to testing stdout it was all failing. It seems the root cause was that stdout was being buffered. Following the documentation, it seems the following was required for this to work.

void redirect_all_stdout(void)
{
    cr_redirect_stdout();
    setbuf(stdout, NULL);
    cr_redirect_stderr();
}

I think the documentation just needs to be updated.

oliversheridanmethven avatar Jul 29 '23 11:07 oliversheridanmethven