Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
test
MemoryManagement
testDisablePrintActiveRcpNodesOnExit.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_CommandLineProcessor.hpp
"
45
#include "
Teuchos_GlobalMPISession.hpp
"
46
#include "
Teuchos_StandardCatchMacros.hpp
"
47
#include "
Teuchos_VerboseObject.hpp
"
48
#include "
Teuchos_RCPNode.hpp
"
49
50
#include "
TestClasses.hpp
"
51
52
int
main
(
int
argc,
char
* argv[])
53
{
54
55
using
Teuchos::RCP
;
56
using
Teuchos::rcp
;
57
58
Teuchos::GlobalMPISession
mpiSession(&argc,&argv);
59
const
Teuchos::RCP<Teuchos::FancyOStream>
out
60
=
Teuchos::VerboseObjectBase::getDefaultOStream
();
61
62
bool
printActiveRcpNodesOnExit =
true
;
63
bool
success =
true
;
64
65
try
{
66
67
// Read in commandline arguments
68
Teuchos::CommandLineProcessor
clp;
69
clp.
setOption
(
"print-active-rcp-nodes-on-exit"
,
"no-print-active-rcp-nodes-on-exit"
,
70
&printActiveRcpNodesOnExit);
71
(void)clp.
parse
(argc, argv);
72
73
// Create a circular reference that will result in dangling active
74
// RCPNodes at shutdown.
75
RCP<A>
a =
rcp
(
new
A
);
76
RCP<C>
c =
rcp
(
new
C
);
77
a->set_C(c);
78
c->set_A(a);
79
80
}
// try
81
TEUCHOS_STANDARD_CATCH_STATEMENTS
(
true
, std::cerr, success);
82
83
if
(success) {
84
*out <<
"\nEnd Result: TEST PASSED"
<< std::endl;
85
}
86
87
if
(!printActiveRcpNodesOnExit) {
88
Teuchos::RCPNodeTracer::setPrintActiveRcpNodesOnExit
(
false
);
89
}
90
// ABOVE: If not set to 'fasle', we leave it at the default which should be
91
// true to make sure that the default is true!
92
93
return
( success ? 0 : 1 );
94
}
TestClasses.hpp
Teuchos_CommandLineProcessor.hpp
Basic command line parser for input from (argc,argv[]).
Teuchos_GlobalMPISession.hpp
A MPI utilities class, providing methods for initializing, finalizing, and querying the global MPI se...
Teuchos_RCPNode.hpp
Reference-counted pointer node classes.
Teuchos_StandardCatchMacros.hpp
TEUCHOS_STANDARD_CATCH_STATEMENTS
#define TEUCHOS_STANDARD_CATCH_STATEMENTS(VERBOSE, ERR_STREAM, SUCCESS_FLAG)
Simple macro that catches and reports standard exceptions and other exceptions.
Definition
Teuchos_StandardCatchMacros.hpp:136
Teuchos_VerboseObject.hpp
RCP
Smart reference counting pointer class for automatic garbage collection.
Definition
Teuchos_RCPDecl.hpp:429
Teuchos::CommandLineProcessor
Class that helps parse command line input arguments from (argc,argv[]) and set options.
Definition
Teuchos_CommandLineProcessor.hpp:76
Teuchos::CommandLineProcessor::setOption
void setOption(const char option_true[], const char option_false[], bool *option_val, const char documentation[]=NULL)
Set a boolean option.
Definition
Teuchos_CommandLineProcessor.cpp:130
Teuchos::CommandLineProcessor::parse
EParseCommandLineReturn parse(int argc, char *argv[], std::ostream *errout=&std::cerr) const
Parse a command line.
Definition
Teuchos_CommandLineProcessor.cpp:276
Teuchos::GlobalMPISession
Initialize, finalize, and query the global MPI session.
Definition
Teuchos_GlobalMPISession.hpp:114
Teuchos::RCPNodeTracer::setPrintActiveRcpNodesOnExit
static void setPrintActiveRcpNodesOnExit(bool printActiveRcpNodesOnExit)
Set if printActiveRCPNodes() is called on exit from the program.
Definition
Teuchos_RCPNode.cpp:355
Teuchos::RCP
Smart reference counting pointer class for automatic garbage collection.
Definition
Teuchos_RCPDecl.hpp:429
Teuchos::VerboseObjectBase::getDefaultOStream
static RCP< FancyOStream > getDefaultOStream()
Get the default output stream object.
Definition
Teuchos_VerboseObject.cpp:77
main
int main()
Definition
evilMain.cpp:75
A
Definition
PackageA.cpp:3
C
Definition
PackageC.cpp:3
Teuchos::rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
Definition
Teuchos_RCPDecl.hpp:1266
rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
Definition
Teuchos_RCPDecl.hpp:1266
Generated by
1.17.0