comparison UnitTestsSources/GenericToolboxTests.cpp @ 1328:fd616c4a5904 broker

Added mechanism to prevent callbacks from being sent on dead WebAssemblyViewport objects
author Benjamin Golinvaux <bgo@osimis.io>
date Fri, 27 Mar 2020 12:54:27 +0100
parents 7ec8fea061b9
children 8d3e669f01a2
comparison
equal deleted inserted replaced
1327:4f8db2d202c8 1328:fd616c4a5904
20 20
21 #include <Framework/Toolbox/GenericToolbox.h> 21 #include <Framework/Toolbox/GenericToolbox.h>
22 22
23 #include <boost/date_time/posix_time/posix_time.hpp> 23 #include <boost/date_time/posix_time/posix_time.hpp>
24 #include <boost/lexical_cast.hpp> 24 #include <boost/lexical_cast.hpp>
25 #include <boost/enable_shared_from_this.hpp>
25 26
26 #include "gtest/gtest.h" 27 #include "gtest/gtest.h"
27 28
28 #include "stdint.h" 29 #include "stdint.h"
29 30
4241 ASSERT_TRUE(GetRgbValuesFromString(red, green, blue, " rgb ( 000, 0, 000) ")); 4242 ASSERT_TRUE(GetRgbValuesFromString(red, green, blue, " rgb ( 000, 0, 000) "));
4242 EXPECT_EQ(0, red); 4243 EXPECT_EQ(0, red);
4243 EXPECT_EQ(0, green); 4244 EXPECT_EQ(0, green);
4244 EXPECT_EQ(0, blue); 4245 EXPECT_EQ(0, blue);
4245 } 4246 }
4247
4248 static int Test_GenericToolbox_HoldingRef_ctor_trace = 100;
4249 static int Test_GenericToolbox_HoldingRef_dtor_trace = 1000;
4250
4251 class Test_GenericToolbox_HoldingRef : public boost::enable_shared_from_this<Test_GenericToolbox_HoldingRef>
4252 {
4253 public:
4254 Test_GenericToolbox_HoldingRef() : answer_(42) { Test_GenericToolbox_HoldingRef_ctor_trace++; }
4255 unsigned int answer_;
4256
4257 ~Test_GenericToolbox_HoldingRef()
4258 {
4259 Test_GenericToolbox_HoldingRef_dtor_trace--;
4260 }
4261 };
4262
4263 TEST(GenericToolbox, HoldingRef)
4264 {
4265 using namespace OrthancStone::GenericToolbox;
4266
4267 void* userData = NULL;
4268
4269 {
4270 boost::shared_ptr<Test_GenericToolbox_HoldingRef> test(new Test_GenericToolbox_HoldingRef() );
4271 Test_GenericToolbox_HoldingRef* This = test.get();
4272 userData = HoldingRef<Test_GenericToolbox_HoldingRef>::Wrap(This);
4273 EXPECT_EQ(42u,This->answer_);
4274 This->answer_ = 0xdeadbeef;
4275 EXPECT_EQ(0xdeadbeef,This->answer_);
4276 }
4277
4278 EXPECT_EQ(101,Test_GenericToolbox_HoldingRef_ctor_trace);
4279 EXPECT_EQ(1000,Test_GenericToolbox_HoldingRef_dtor_trace);
4280
4281 {
4282 boost::shared_ptr<Test_GenericToolbox_HoldingRef> test2 = HoldingRef<Test_GenericToolbox_HoldingRef>::Unwrap(userData);
4283 EXPECT_EQ(0xdeadbeef,test2->answer_);
4284 }
4285
4286 EXPECT_EQ(1001,Test_GenericToolbox_HoldingRef_dtor_trace); // make sure wrapper was deleted once
4287 }
4288
4289
4290
4291
4292
4293
4294