Skip to content

Commit 29d49f3

Browse files
committed
Add Unscoped Capture Logger
1 parent a1c7ee1 commit 29d49f3

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

src/catch2/catch_message.hpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,15 @@ namespace Catch {
105105
#__VA_ARGS__##_catch_sr ); \
106106
varName.captureValues( 0, __VA_ARGS__ )
107107

108+
///////////////////////////////////////////////////////////////////////////////
109+
#define INTERNAL_CATCH_UNSCOPED_CAPTURE( varName, macroName, ... ) \
110+
Catch::getResultCapture().emplaceUnscopedMessage(Catch::Capturer varName( macroName##_catch_sr, \
111+
CATCH_INTERNAL_LINEINFO, \
112+
Catch::ResultWas::Info, \
113+
#__VA_ARGS__##_catch_sr ); \
114+
varName.captureValues( 0, __VA_ARGS__ ))
115+
116+
108117
///////////////////////////////////////////////////////////////////////////////
109118
#define INTERNAL_CATCH_INFO( macroName, log ) \
110119
const Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )
@@ -120,27 +129,33 @@ namespace Catch {
120129
#define CATCH_UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "CATCH_UNSCOPED_INFO", msg )
121130
#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( "CATCH_WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
122131
#define CATCH_CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_CAPTURE", __VA_ARGS__ )
132+
#define CATCH_UNSCOPED_CAPTURE( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_UNSCOPED_CAPTURE", __VA_ARGS__ )
123133

124134
#elif defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
125135

126136
#define CATCH_INFO( msg ) (void)(0)
127137
#define CATCH_UNSCOPED_INFO( msg ) (void)(0)
128138
#define CATCH_WARN( msg ) (void)(0)
129139
#define CATCH_CAPTURE( ... ) (void)(0)
140+
#define CATCH_UNSCOPED_CAPTURE( ... ) (void)(0)
141+
130142

131143
#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && !defined(CATCH_CONFIG_DISABLE)
132144

133145
#define INFO( msg ) INTERNAL_CATCH_INFO( "INFO", msg )
134146
#define UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg )
135147
#define WARN( msg ) INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
136148
#define CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE", __VA_ARGS__ )
149+
#define UNSCOPED_CAPTURE( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "UNSCOPED_CAPTURE", __VA_ARGS__ )
150+
137151

138152
#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
139153

140154
#define INFO( msg ) (void)(0)
141155
#define UNSCOPED_INFO( msg ) (void)(0)
142156
#define WARN( msg ) (void)(0)
143157
#define CAPTURE( ... ) (void)(0)
158+
#define UNSCOPED_CAPTURE( ... ) (void)(0)
144159

145160
#endif // end of user facing macro declarations
146161

0 commit comments

Comments
 (0)