E-MailRelay

gtest.h
Go to the documentation of this file.
1//
2// Copyright (C) 2001-2021 Graeme Walker <graeme_walker@users.sourceforge.net>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16// ===
17///
18/// \file gtest.h
19///
20
21#ifndef G_TEST_H
22#define G_TEST_H
23
24#include "gdef.h"
25#include <string>
26
27 namespace G
28{
29 class Test ;
30}
31
32//| \class G::Test
33/// A static interface for enabling test features at run-time. Typically does
34/// nothing in a release build. Test are enabled by a specification string
35/// that is a comma-separated list of test names. The test specification
36/// is taken from an environment variable by default, or it can be set
37/// programatically.
38///
39/// Eg:
40/// \code
41/// for(..)
42/// {
43/// if( G::Test::enabled("run-loop-extra-slowly") )
44/// sleep(1) ;
45/// ...
46/// }
47/// \endcode
48///
49 class G::Test
50{
51 public:
52 static void set( const std::string & ) ;
53 ///< Sets the test specification string.
54
55 static bool enabled() noexcept ;
56 ///< Returns true if test features are enabled.
57
58 static bool enabled( const char * name ) ;
59 ///< Returns true if the specified test feature is enabled.
60
61 public:
62 Test() = delete ;
63} ;
64
65#if defined(_DEBUG) || defined(G_TEST_ENABLED)
66//
67#else
68 inline bool G::Test::enabled( const char * )
69{
70 return false ;
71}
72#endif
73
74#endif
G::Test
A static interface for enabling test features at run-time.
Definition: gtest.h:50
G::Test::enabled
static bool enabled() noexcept
Returns true if test features are enabled.
Definition: gtest.cpp:79
G::Test::set
static void set(const std::string &)
Sets the test specification string.
Definition: gtest.cpp:76
G
Low-level classes.
Definition: galign.h:28