mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-25 04:23:30 +01:00
613e1466f9
std::ifstream in libstdc++ contains a bug, where it sets errno to zero. To work around it, we manually save the errno before using std::ifstream in debugger check, and reset it after we are done. We also preventively save errno before using sprintf. Fixes #835
26 lines
570 B
C++
26 lines
570 B
C++
/*
|
|
* Created by Martin on 06/03/2017.
|
|
*
|
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
*/
|
|
#ifndef TWOBLUECUBES_CATCH_ERRNO_GUARD_HPP_INCLUDED
|
|
#define TWOBLUECUBES_CATCH_ERRNO_GUARD_HPP_INCLUDED
|
|
|
|
#include <cerrno>
|
|
|
|
|
|
namespace Catch {
|
|
|
|
class ErrnoGuard {
|
|
public:
|
|
ErrnoGuard():m_oldErrno(errno){}
|
|
~ErrnoGuard() { errno = m_oldErrno; }
|
|
private:
|
|
int m_oldErrno;
|
|
};
|
|
|
|
}
|
|
|
|
#endif // TWOBLUECUBES_CATCH_ERRNO_GUARD_HPP_INCLUDED
|