Bug Summary

File:core/singleton/ScopeTest.cc
Location:line 31, column 25
Description:Potential memory leak

Annotated Source Code

1#include <gtest/gtest.h>
2#include "core/singleton/ScopedSingletonIncludes.h"
3#include "core/module/ModuleInstance.h"
4#include "core/CoreIncludes.h"
5
6namespace orxonox
7{
8 namespace
9 {
10 class TestSingletonRoot : public Singleton<TestSingletonRoot>
11 {
12 friend class Singleton<TestSingletonRoot>;
13 static TestSingletonRoot* singletonPtr_s;
14 };
15 class TestSingletonGraphics : public Singleton<TestSingletonGraphics>
16 {
17 friend class Singleton<TestSingletonGraphics>;
18 static TestSingletonGraphics* singletonPtr_s;
19 };
20
21 ManageScopedSingleton(TestSingletonRoot, ScopeID::ROOT, false)TestSingletonRoot* TestSingletonRoot::singletonPtr_s = nullptr
; static ScopedSingletonWrapper& TestSingletonRootScopedSingletonWrapper
= (new orxonox::SI_SSW(new ClassScopedSingletonWrapper<TestSingletonRoot
, false>("TestSingletonRoot"), ScopeID::ROOT))->getWrapper
()
;
22 ManageScopedSingleton(TestSingletonGraphics, ScopeID::GRAPHICS, false)TestSingletonGraphics* TestSingletonGraphics::singletonPtr_s =
nullptr; static ScopedSingletonWrapper& TestSingletonGraphicsScopedSingletonWrapper
= (new orxonox::SI_SSW(new ClassScopedSingletonWrapper<TestSingletonGraphics
, false>("TestSingletonGraphics"), ScopeID::GRAPHICS))->
getWrapper()
;
23
24 // Fixture
25 class ScopeTest : public ::testing::Test
26 {
27 public:
28 virtual void SetUp() override
29 {
30 new IdentifierManager();
1
Memory is allocated
31 new ScopeManager();
2
Potential memory leak
32 ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
33 ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
34 Context::setRootContext(new Context(nullptr));
35 }
36
37 virtual void TearDown() override
38 {
39 Context::destroyRootContext();
40 ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
41 ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
42 delete &ScopeManager::getInstance();
43 delete &IdentifierManager::getInstance();
44 }
45 };
46 }
47
48 TEST_F(ScopeTest, ScopesDoNotExist)class ScopeTest_ScopesDoNotExist_Test : public ScopeTest { public
: ScopeTest_ScopesDoNotExist_Test() {} private: virtual void TestBody
(); static ::testing::TestInfo* const test_info_ __attribute__
((unused)); ScopeTest_ScopesDoNotExist_Test(ScopeTest_ScopesDoNotExist_Test
const &); void operator=(ScopeTest_ScopesDoNotExist_Test
const &);};::testing::TestInfo* const ScopeTest_ScopesDoNotExist_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ScopeTest", "ScopesDoNotExist", __null, __null, (::testing::
internal::GetTypeId<ScopeTest>()), ScopeTest::SetUpTestCase
, ScopeTest::TearDownTestCase, new ::testing::internal::TestFactoryImpl
< ScopeTest_ScopesDoNotExist_Test>);void ScopeTest_ScopesDoNotExist_Test
::TestBody()
49 {
50 EXPECT_FALSE(Scope<ScopeID::ROOT>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::ROOT
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 50, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::ROOT>::isActive()", "true", "false").
c_str()) = ::testing::Message()
;
51 EXPECT_FALSE(Scope<ScopeID::GRAPHICS>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::GRAPHICS
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 51, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::GRAPHICS>::isActive()", "true", "false"
).c_str()) = ::testing::Message()
;
52 }
53
54 TEST_F(ScopeTest, SingletonsDoNotExist)class ScopeTest_SingletonsDoNotExist_Test : public ScopeTest {
public: ScopeTest_SingletonsDoNotExist_Test() {} private: virtual
void TestBody(); static ::testing::TestInfo* const test_info_
__attribute__ ((unused)); ScopeTest_SingletonsDoNotExist_Test
(ScopeTest_SingletonsDoNotExist_Test const &); void operator
=(ScopeTest_SingletonsDoNotExist_Test const &);};::testing
::TestInfo* const ScopeTest_SingletonsDoNotExist_Test ::test_info_
= ::testing::internal::MakeAndRegisterTestInfo( "ScopeTest",
"SingletonsDoNotExist", __null, __null, (::testing::internal
::GetTypeId<ScopeTest>()), ScopeTest::SetUpTestCase, ScopeTest
::TearDownTestCase, new ::testing::internal::TestFactoryImpl<
ScopeTest_SingletonsDoNotExist_Test>);void ScopeTest_SingletonsDoNotExist_Test
::TestBody()
55 {
56 EXPECT_FALSE(TestSingletonRoot::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonRoot::
exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 56, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonRoot::exists()", "true", "false").c_str()) = ::
testing::Message()
;
57 EXPECT_FALSE(TestSingletonGraphics::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonGraphics
::exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 57, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonGraphics::exists()", "true", "false").c_str()
) = ::testing::Message()
;
58 }
59
60 TEST_F(ScopeTest, RootScope)class ScopeTest_RootScope_Test : public ScopeTest { public: ScopeTest_RootScope_Test
() {} private: virtual void TestBody(); static ::testing::TestInfo
* const test_info_ __attribute__ ((unused)); ScopeTest_RootScope_Test
(ScopeTest_RootScope_Test const &); void operator=(ScopeTest_RootScope_Test
const &);};::testing::TestInfo* const ScopeTest_RootScope_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ScopeTest", "RootScope", __null, __null, (::testing::internal
::GetTypeId<ScopeTest>()), ScopeTest::SetUpTestCase, ScopeTest
::TearDownTestCase, new ::testing::internal::TestFactoryImpl<
ScopeTest_RootScope_Test>);void ScopeTest_RootScope_Test::
TestBody()
61 {
62 EXPECT_FALSE(Scope<ScopeID::ROOT>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::ROOT
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 62, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::ROOT>::isActive()", "true", "false").
c_str()) = ::testing::Message()
;
63 { // create root scope
64 Scope<ScopeID::ROOT> scope;
65 EXPECT_TRUE(Scope<ScopeID::ROOT>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(Scope<ScopeID::ROOT
>::isActive())) ; else ::testing::internal::AssertHelper(::
testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 65, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::ROOT>::isActive()", "false", "true").
c_str()) = ::testing::Message()
;
66 } // destroy root scope
67 EXPECT_FALSE(Scope<ScopeID::ROOT>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::ROOT
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 67, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::ROOT>::isActive()", "true", "false").
c_str()) = ::testing::Message()
;
68 }
69
70 TEST_F(ScopeTest, DISABLED_RootAndGraphicsScope)class ScopeTest_DISABLED_RootAndGraphicsScope_Test : public ScopeTest
{ public: ScopeTest_DISABLED_RootAndGraphicsScope_Test() {} private
: virtual void TestBody(); static ::testing::TestInfo* const test_info_
__attribute__ ((unused)); ScopeTest_DISABLED_RootAndGraphicsScope_Test
(ScopeTest_DISABLED_RootAndGraphicsScope_Test const &); void
operator=(ScopeTest_DISABLED_RootAndGraphicsScope_Test const
&);};::testing::TestInfo* const ScopeTest_DISABLED_RootAndGraphicsScope_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ScopeTest", "DISABLED_RootAndGraphicsScope", __null, __null
, (::testing::internal::GetTypeId<ScopeTest>()), ScopeTest
::SetUpTestCase, ScopeTest::TearDownTestCase, new ::testing::
internal::TestFactoryImpl< ScopeTest_DISABLED_RootAndGraphicsScope_Test
>);void ScopeTest_DISABLED_RootAndGraphicsScope_Test::TestBody
()
71 {
72 EXPECT_FALSE(Scope<ScopeID::GRAPHICS>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::GRAPHICS
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 72, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::GRAPHICS>::isActive()", "true", "false"
).c_str()) = ::testing::Message()
;
73 { // create root scope
74 Scope<ScopeID::ROOT> scope;
75 EXPECT_FALSE(Scope<ScopeID::GRAPHICS>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::GRAPHICS
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 75, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::GRAPHICS>::isActive()", "true", "false"
).c_str()) = ::testing::Message()
;
76 { // create graphics scope
77 Scope<ScopeID::GRAPHICS> scope;
78 EXPECT_TRUE(Scope<ScopeID::GRAPHICS>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(Scope<ScopeID::GRAPHICS
>::isActive())) ; else ::testing::internal::AssertHelper(::
testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 78, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::GRAPHICS>::isActive()", "false", "true"
).c_str()) = ::testing::Message()
;
79 } // destroy graphics scope
80 EXPECT_FALSE(Scope<ScopeID::GRAPHICS>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::GRAPHICS
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 80, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::GRAPHICS>::isActive()", "true", "false"
).c_str()) = ::testing::Message()
;
81 } // destroy root scope
82 EXPECT_FALSE(Scope<ScopeID::GRAPHICS>::isActive())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(Scope<ScopeID::GRAPHICS
>::isActive()))) ; else ::testing::internal::AssertHelper(
::testing::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 82, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "Scope<ScopeID::GRAPHICS>::isActive()", "true", "false"
).c_str()) = ::testing::Message()
;
83 }
84
85 TEST_F(ScopeTest, RootSingleton)class ScopeTest_RootSingleton_Test : public ScopeTest { public
: ScopeTest_RootSingleton_Test() {} private: virtual void TestBody
(); static ::testing::TestInfo* const test_info_ __attribute__
((unused)); ScopeTest_RootSingleton_Test(ScopeTest_RootSingleton_Test
const &); void operator=(ScopeTest_RootSingleton_Test const
&);};::testing::TestInfo* const ScopeTest_RootSingleton_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ScopeTest", "RootSingleton", __null, __null, (::testing::internal
::GetTypeId<ScopeTest>()), ScopeTest::SetUpTestCase, ScopeTest
::TearDownTestCase, new ::testing::internal::TestFactoryImpl<
ScopeTest_RootSingleton_Test>);void ScopeTest_RootSingleton_Test
::TestBody()
86 {
87 EXPECT_FALSE(TestSingletonRoot::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonRoot::
exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 87, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonRoot::exists()", "true", "false").c_str()) = ::
testing::Message()
;
88 { // create root scope
89 Scope<ScopeID::ROOT> scope;
90 EXPECT_TRUE(TestSingletonRoot::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(TestSingletonRoot::exists
())) ; else ::testing::internal::AssertHelper(::testing::TestPartResult
::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 90, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonRoot::exists()", "false", "true").c_str()) = ::
testing::Message()
;
91 } // destroy root scope
92 EXPECT_FALSE(TestSingletonRoot::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonRoot::
exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 92, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonRoot::exists()", "true", "false").c_str()) = ::
testing::Message()
;
93 }
94
95 TEST_F(ScopeTest, DISABLED_RootAndGraphicsSingleton)class ScopeTest_DISABLED_RootAndGraphicsSingleton_Test : public
ScopeTest { public: ScopeTest_DISABLED_RootAndGraphicsSingleton_Test
() {} private: virtual void TestBody(); static ::testing::TestInfo
* const test_info_ __attribute__ ((unused)); ScopeTest_DISABLED_RootAndGraphicsSingleton_Test
(ScopeTest_DISABLED_RootAndGraphicsSingleton_Test const &
); void operator=(ScopeTest_DISABLED_RootAndGraphicsSingleton_Test
const &);};::testing::TestInfo* const ScopeTest_DISABLED_RootAndGraphicsSingleton_Test
::test_info_ = ::testing::internal::MakeAndRegisterTestInfo(
"ScopeTest", "DISABLED_RootAndGraphicsSingleton", __null, __null
, (::testing::internal::GetTypeId<ScopeTest>()), ScopeTest
::SetUpTestCase, ScopeTest::TearDownTestCase, new ::testing::
internal::TestFactoryImpl< ScopeTest_DISABLED_RootAndGraphicsSingleton_Test
>);void ScopeTest_DISABLED_RootAndGraphicsSingleton_Test::
TestBody()
96 {
97 EXPECT_FALSE(TestSingletonGraphics::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonGraphics
::exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 97, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonGraphics::exists()", "true", "false").c_str()
) = ::testing::Message()
;
98 { // create root scope
99 Scope<ScopeID::ROOT> scope;
100 EXPECT_FALSE(TestSingletonGraphics::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonGraphics
::exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 100, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonGraphics::exists()", "true", "false").c_str()
) = ::testing::Message()
;
101 { // create graphics scope
102 Scope<ScopeID::GRAPHICS> scope;
103 EXPECT_TRUE(TestSingletonGraphics::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(TestSingletonGraphics
::exists())) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 103, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonGraphics::exists()", "false", "true").c_str()
) = ::testing::Message()
;
104 } // destroy graphics scope
105 EXPECT_FALSE(TestSingletonGraphics::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonGraphics
::exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 105, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonGraphics::exists()", "true", "false").c_str()
) = ::testing::Message()
;
106 } // destroy root scope
107 EXPECT_FALSE(TestSingletonGraphics::exists())switch (0) case 0: default: if (const ::testing::AssertionResult
gtest_ar_ = ::testing::AssertionResult(!(TestSingletonGraphics
::exists()))) ; else ::testing::internal::AssertHelper(::testing
::TestPartResult::kNonFatalFailure, "/home/jenkins/workspace/orxonox_qc_trunk_checks/test/core/singleton/ScopeTest.cc"
, 107, ::testing::internal::GetBoolAssertionFailureMessage( gtest_ar_
, "TestSingletonGraphics::exists()", "true", "false").c_str()
) = ::testing::Message()
;
108 }
109}