aboutsummaryrefslogtreecommitdiff
path: root/unittest/Catch/include/internal/catch_section.h
diff options
context:
space:
mode:
Diffstat (limited to 'unittest/Catch/include/internal/catch_section.h')
-rw-r--r--unittest/Catch/include/internal/catch_section.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/unittest/Catch/include/internal/catch_section.h b/unittest/Catch/include/internal/catch_section.h
new file mode 100644
index 0000000..d8b3ae4
--- /dev/null
+++ b/unittest/Catch/include/internal/catch_section.h
@@ -0,0 +1,46 @@
+/*
+ * Created by Phil on 03/12/2013.
+ * Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
+ *
+ * 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_SECTION_H_INCLUDED
+#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+#include "catch_section_info.h"
+#include "catch_totals.hpp"
+#include "catch_timer.h"
+
+#include <string>
+
+namespace Catch {
+
+ class Section : NonCopyable {
+ public:
+ Section( SectionInfo const& info );
+ ~Section();
+
+ // This indicates whether the section should be executed or not
+ operator bool() const;
+
+ private:
+ SectionInfo m_info;
+
+ std::string m_name;
+ Counts m_assertions;
+ bool m_sectionIncluded;
+ Timer m_timer;
+ };
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+ #define INTERNAL_CATCH_SECTION( ... ) \
+ if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
+#else
+ #define INTERNAL_CATCH_SECTION( name, desc ) \
+ if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
+#endif
+
+#endif // TWOBLUECUBES_CATCH_SECTION_H_INCLUDED