diff options
| author | Tobias Markmann <tm@ayena.de> | 2015-10-06 07:30:56 (GMT) |
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2015-10-14 14:35:55 (GMT) |
| commit | b00c84574fc730eeeabb57df1f17b54855218193 (patch) | |
| tree | bbc05725a01a12b832065beb9f5eb20d71cb3178 /Swiften/QA/FileTransferTest/FileTransferTest.cpp | |
| parent | a30c7ad74fc830dbd10b9560054f39063b5e8372 (diff) | |
| download | swift-b00c84574fc730eeeabb57df1f17b54855218193.zip swift-b00c84574fc730eeeabb57df1f17b54855218193.tar.bz2 | |
Fix memory leak warnings by Valgrind/LSAN
Test-Information:
Both Valgrind and clang's leak sanitizer report a lot leaks
on the FileTransferTest. With this commit it the stack traces
related to the fixed leaks are gone.
Change-Id: Idae9a81bcd8d97576d3f1469bf64490e0bfa7d55
Diffstat (limited to 'Swiften/QA/FileTransferTest/FileTransferTest.cpp')
| -rw-r--r-- | Swiften/QA/FileTransferTest/FileTransferTest.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/Swiften/QA/FileTransferTest/FileTransferTest.cpp b/Swiften/QA/FileTransferTest/FileTransferTest.cpp index 2d2d6c8..8faf8a9 100644 --- a/Swiften/QA/FileTransferTest/FileTransferTest.cpp +++ b/Swiften/QA/FileTransferTest/FileTransferTest.cpp | |||
| @@ -5,32 +5,32 @@ | |||
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | #include <fstream> | 7 | #include <fstream> |
| 8 | 8 | ||
| 9 | #include <boost/algorithm/string.hpp> | 9 | #include <boost/algorithm/string.hpp> |
| 10 | #include <boost/numeric/conversion/cast.hpp> | ||
| 11 | #include <boost/filesystem.hpp> | 10 | #include <boost/filesystem.hpp> |
| 11 | #include <boost/numeric/conversion/cast.hpp> | ||
| 12 | 12 | ||
| 13 | #include <Swiften/Base/sleep.h> | 13 | #include <Swiften/Base/BoostRandomGenerator.h> |
| 14 | #include <Swiften/Base/foreach.h> | 14 | #include <Swiften/Base/Debug.h> |
| 15 | #include <Swiften/Base/Log.h> | 15 | #include <Swiften/Base/Log.h> |
| 16 | #include <Swiften/Client/ClientXMLTracer.h> | 16 | #include <Swiften/Base/foreach.h> |
| 17 | #include <Swiften/Base/sleep.h> | ||
| 17 | #include <Swiften/Client/Client.h> | 18 | #include <Swiften/Client/Client.h> |
| 18 | #include <Swiften/EventLoop/SimpleEventLoop.h> | 19 | #include <Swiften/Client/ClientXMLTracer.h> |
| 19 | #include <Swiften/Network/BoostNetworkFactories.h> | 20 | #include <Swiften/Disco/ClientDiscoManager.h> |
| 20 | #include <Swiften/Network/Timer.h> | ||
| 21 | #include <Swiften/Network/TimerFactory.h> | ||
| 22 | #include <Swiften/Disco/EntityCapsProvider.h> | 21 | #include <Swiften/Disco/EntityCapsProvider.h> |
| 23 | #include <Swiften/Elements/Presence.h> | 22 | #include <Swiften/Elements/Presence.h> |
| 24 | #include <Swiften/FileTransfer/ReadBytestream.h> | 23 | #include <Swiften/EventLoop/SimpleEventLoop.h> |
| 25 | #include <Swiften/Base/BoostRandomGenerator.h> | ||
| 26 | #include <Swiften/FileTransfer/FileReadBytestream.h> | 24 | #include <Swiften/FileTransfer/FileReadBytestream.h> |
| 27 | #include <Swiften/FileTransfer/OutgoingFileTransfer.h> | ||
| 28 | #include <Swiften/FileTransfer/FileTransferManager.h> | 25 | #include <Swiften/FileTransfer/FileTransferManager.h> |
| 29 | #include <Swiften/Disco/ClientDiscoManager.h> | ||
| 30 | #include <Swiften/FileTransfer/FileWriteBytestream.h> | 26 | #include <Swiften/FileTransfer/FileWriteBytestream.h> |
| 31 | #include <Swiften/Base/Debug.h> | 27 | #include <Swiften/FileTransfer/OutgoingFileTransfer.h> |
| 28 | #include <Swiften/FileTransfer/ReadBytestream.h> | ||
| 29 | #include <Swiften/Network/BoostNetworkFactories.h> | ||
| 30 | #include <Swiften/Network/Timer.h> | ||
| 31 | #include <Swiften/Network/TimerFactory.h> | ||
| 32 | 32 | ||
| 33 | using namespace Swift; | 33 | using namespace Swift; |
| 34 | 34 | ||
| 35 | static const std::string CLIENT_NAME = "Swiften FT Test"; | 35 | static const std::string CLIENT_NAME = "Swiften FT Test"; |
| 36 | static const std::string CLIENT_NODE = "http://swift.im"; | 36 | static const std::string CLIENT_NODE = "http://swift.im"; |
| @@ -57,12 +57,12 @@ class FileTransferTest { | |||
| 57 | 57 | ||
| 58 | receiver_ = boost::make_shared<Client>(JID(getenv("SWIFT_FILETRANSFERTEST2_JID")), getenv("SWIFT_FILETRANSFERTEST2_PASS"), networkFactories.get()); | 58 | receiver_ = boost::make_shared<Client>(JID(getenv("SWIFT_FILETRANSFERTEST2_JID")), getenv("SWIFT_FILETRANSFERTEST2_PASS"), networkFactories.get()); |
| 59 | receiver_->onConnected.connect(boost::bind(&FileTransferTest::handleReceiverConnected, this)); | 59 | receiver_->onConnected.connect(boost::bind(&FileTransferTest::handleReceiverConnected, this)); |
| 60 | receiver_->onDisconnected.connect(boost::bind(&FileTransferTest::handleReceiverDisconnected, this, _1)); | 60 | receiver_->onDisconnected.connect(boost::bind(&FileTransferTest::handleReceiverDisconnected, this, _1)); |
| 61 | 61 | ||
| 62 | new ClientXMLTracer(sender_.get()); | 62 | senderTracer_ = new ClientXMLTracer(sender_.get()); |
| 63 | new ClientXMLTracer(receiver_.get()); | 63 | receiverTracer_ = new ClientXMLTracer(receiver_.get()); |
| 64 | 64 | ||
| 65 | ClientOptions options; | 65 | ClientOptions options; |
| 66 | options.useTLS = ClientOptions::NeverUseTLS; | 66 | options.useTLS = ClientOptions::NeverUseTLS; |
| 67 | options.useStreamCompression = false; | 67 | options.useStreamCompression = false; |
| 68 | options.useStreamResumption = false; | 68 | options.useStreamResumption = false; |
| @@ -90,10 +90,13 @@ class FileTransferTest { | |||
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | ~FileTransferTest() { | 92 | ~FileTransferTest() { |
| 93 | timeOut_->stop(); | 93 | timeOut_->stop(); |
| 94 | 94 | ||
| 95 | delete senderTracer_; | ||
| 96 | delete receiverTracer_; | ||
| 97 | |||
| 95 | if(boost::filesystem::exists(sendFilePath_)) { | 98 | if(boost::filesystem::exists(sendFilePath_)) { |
| 96 | boost::filesystem::remove(sendFilePath_); | 99 | boost::filesystem::remove(sendFilePath_); |
| 97 | } | 100 | } |
| 98 | 101 | ||
| 99 | if(boost::filesystem::exists(receiveFilePath_)) { | 102 | if(boost::filesystem::exists(receiveFilePath_)) { |
| @@ -237,18 +240,20 @@ class FileTransferTest { | |||
| 237 | } | 240 | } |
| 238 | 241 | ||
| 239 | private: | 242 | private: |
| 240 | int senderCandidates_; | 243 | int senderCandidates_; |
| 241 | boost::shared_ptr<Client> sender_; | 244 | boost::shared_ptr<Client> sender_; |
| 245 | ClientXMLTracer* senderTracer_; | ||
| 242 | ByteArray sendData_; | 246 | ByteArray sendData_; |
| 243 | OutgoingFileTransfer::ref outgoingFileTransfer_; | 247 | OutgoingFileTransfer::ref outgoingFileTransfer_; |
| 244 | boost::filesystem::path sendFilePath_; | 248 | boost::filesystem::path sendFilePath_; |
| 245 | boost::optional<FileTransferError> senderError_; | 249 | boost::optional<FileTransferError> senderError_; |
| 246 | bool senderIsDone_; | 250 | bool senderIsDone_; |
| 247 | 251 | ||
| 248 | int receiverCandidates_; | 252 | int receiverCandidates_; |
| 249 | boost::shared_ptr<Client> receiver_; | 253 | boost::shared_ptr<Client> receiver_; |
| 254 | ClientXMLTracer* receiverTracer_; | ||
| 250 | ByteArray receiveData_; | 255 | ByteArray receiveData_; |
| 251 | std::vector<IncomingFileTransfer::ref> incomingFileTransfers_; | 256 | std::vector<IncomingFileTransfer::ref> incomingFileTransfers_; |
| 252 | boost::filesystem::path receiveFilePath_; | 257 | boost::filesystem::path receiveFilePath_; |
| 253 | boost::optional<FileTransferError> receiverError_; | 258 | boost::optional<FileTransferError> receiverError_; |
| 254 | bool receiverIsDone_; | 259 | bool receiverIsDone_; |
Swift