Mercurial > hg > orthanc-stone
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 |