Skip to content

Commit b6d1042

Browse files
committed
Add Unscoped Capture Logger
1 parent a1c7ee1 commit b6d1042

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/catch2/catch_message.hpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,14 @@ 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+
108116
///////////////////////////////////////////////////////////////////////////////
109117
#define INTERNAL_CATCH_INFO( macroName, log ) \
110118
const Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )
@@ -120,27 +128,32 @@ namespace Catch {
120128
#define CATCH_UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "CATCH_UNSCOPED_INFO", msg )
121129
#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( "CATCH_WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
122130
#define CATCH_CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_CAPTURE", __VA_ARGS__ )
131+
#define CATCH_UNSCOPED_CAPTURE( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CATCH_UNSCOPED_CAPTURE", __VA_ARGS__ )
123132

124133
#elif defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
125134

126135
#define CATCH_INFO( msg ) (void)(0)
127136
#define CATCH_UNSCOPED_INFO( msg ) (void)(0)
128137
#define CATCH_WARN( msg ) (void)(0)
129138
#define CATCH_CAPTURE( ... ) (void)(0)
139+
#define CATCH_UNSCOPED_CAPTURE( ... ) (void)(0)
130140

131141
#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && !defined(CATCH_CONFIG_DISABLE)
132142

133143
#define INFO( msg ) INTERNAL_CATCH_INFO( "INFO", msg )
134144
#define UNSCOPED_INFO( msg ) INTERNAL_CATCH_UNSCOPED_INFO( "UNSCOPED_INFO", msg )
135145
#define WARN( msg ) INTERNAL_CATCH_MSG( "WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
136146
#define CAPTURE( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "CAPTURE", __VA_ARGS__ )
147+
#define UNSCOPED_CAPTURE( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), "UNSCOPED_CAPTURE", __VA_ARGS__ )
148+
137149

138150
#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
139151

140152
#define INFO( msg ) (void)(0)
141153
#define UNSCOPED_INFO( msg ) (void)(0)
142154
#define WARN( msg ) (void)(0)
143155
#define CAPTURE( ... ) (void)(0)
156+
#define UNSCOPED_CAPTURE( ... ) (void)(0)
144157

145158
#endif // end of user facing macro declarations
146159

0 commit comments

Comments
 (0)