Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
comm
test
TimeMonitor
TimeMonitor/TimeMonitor_UnitTests.cpp
Go to the documentation of this file.
1
/*
2
// @HEADER
3
// ***********************************************************************
4
//
5
// Teuchos: Common Tools Package
6
// Copyright (2004) Sandia Corporation
7
//
8
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9
// license for use of this work by or on behalf of the U.S. Government.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ***********************************************************************
41
// @HEADER
42
*/
43
44
#include "
Teuchos_UnitTestHarness.hpp
"
45
#include "
Teuchos_TimeMonitor.hpp
"
46
47
48
namespace
{
49
50
51
int
someFunction()
52
{
53
TEUCHOS_FUNC_TIME_MONITOR
(
"someFunction1"
);
54
TEUCHOS_FUNC_TIME_MONITOR_DIFF
(
"someFunction2"
, diff);
55
return
5;
56
}
57
58
59
TEUCHOS_UNIT_TEST
(
TimeMonitor
, someFunction_timed )
60
{
61
const
int
rtn = someFunction();
62
TEST_EQUALITY
(rtn, 5);
63
}
64
65
TEUCHOS_UNIT_TEST
(
TimeMonitor
, formatting)
66
{
67
using namespace
Teuchos
;
68
69
// Zero out previous timers
70
TimeMonitor::zeroOutTimers
();
71
72
std::ostringstream out1, out2;
73
const
std::string filter =
""
;
74
75
// Check std::fixed formatting
76
out1 << std::fixed;
77
TimeMonitor::report
(out1, filter);
78
bool
test1 = (out1.str().find(
"someFunction1 0.0000 (0)"
) != std::string::npos);
79
TEST_EQUALITY
(test1,
true
);
80
81
// Check std::scientific formatting
82
out2 << std::scientific;
83
TimeMonitor::report
(out2, filter);
84
bool
test2 = (out2.str().find(
"someFunction1 0.0000e+00 (0)"
) != std::string::npos);
85
TEST_EQUALITY
(test2,
true
);
86
}
87
88
89
}
// namespace
TEST_EQUALITY
#define TEST_EQUALITY(v1, v2)
Assert the equality of v1 and v2.
Definition
Teuchos_LocalTestingHelpers.hpp:87
Teuchos_TimeMonitor.hpp
Scope guard for Teuchos::Time, with MPI collective timer reporting.
TEUCHOS_FUNC_TIME_MONITOR
#define TEUCHOS_FUNC_TIME_MONITOR(FUNCNAME)
Defines a timer for a specific function.
Definition
Teuchos_TimeMonitor.hpp:123
TEUCHOS_FUNC_TIME_MONITOR_DIFF
#define TEUCHOS_FUNC_TIME_MONITOR_DIFF(FUNCNAME, DIFF)
Defines a timer for a specific function (with differentiator).
Definition
Teuchos_TimeMonitor.hpp:91
Teuchos_UnitTestHarness.hpp
Unit testing support.
TEUCHOS_UNIT_TEST
#define TEUCHOS_UNIT_TEST(TEST_GROUP, TEST_NAME)
Macro for defining a (non-templated) unit test.
Definition
Teuchos_UnitTestHelpers.hpp:83
TimeMonitor
Scope guard for Time, that can compute MPI collective timer statistics.
Definition
Teuchos_TimeMonitor.hpp:179
TimeMonitor::zeroOutTimers
static void zeroOutTimers()
Reset all global timers to zero.
Definition
Teuchos_TimeMonitor.cpp:321
TimeMonitor::report
static void report(Ptr< const Comm< int > > comm, std::ostream &out, const std::string &filter, const RCP< ParameterList > ¶ms=null)
Report timer statistics to the given output stream.
Definition
Teuchos_TimeMonitor.cpp:1572
Teuchos
Definition
Teuchos_AbstractFactory.hpp:47
Generated by
1.17.0