summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Laner <laner@itestra.de>2013-08-07 15:36:44 +0200
committerStefan Laner <laner@itestra.de>2013-08-07 15:36:44 +0200
commit1261885b117c7cc51258bed0ebde842f69b9feb6 (patch)
tree3f7e6c70a8744b431f9e4d94f3818b3e893fc711
parentdd1bca359710c796aeb7f406ce268264226e3294 (diff)
downloadgenivi-common-api-dbus-runtime-1261885b117c7cc51258bed0ebde842f69b9feb6.tar.gz
Removed DBusBenchmarkingTest
-rw-r--r--Makefile.am9
-rw-r--r--src/test/DBusBenchmarkingTest.cpp220
2 files changed, 1 insertions, 228 deletions
diff --git a/Makefile.am b/Makefile.am
index f5e43e1..7a0967e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -117,9 +117,7 @@ check_PROGRAMS = \
DBusVariantOutputStreamTest \
DBusDaemonProxyTest \
DBusCommunicationTest \
- DBusMultipleConnectionTest \
- DBusBenchmarkingTest
-
+ DBusMultipleConnectionTest
TESTS = ${check_PROGRAMS}
LDADD_FOR_GTEST = libCommonAPI-DBus.la ${GTEST_LIBS} ${LDADD}
@@ -160,11 +158,6 @@ DBusVariantOutputStreamTest_CPPFLAGS = ${AM_CPPFLAGS} ${GTEST_CPPFLAGS}
DBusVariantOutputStreamTest_CXXFLAGS = ${GTEST_CXXFLAGS}
DBusVariantOutputStreamTest_LDADD = ${LDADD_FOR_GTEST}
-DBusBenchmarkingTest_SOURCES = src/test/DBusBenchmarkingTest.cpp
-DBusBenchmarkingTest_CPPFLAGS = ${AM_CPPFLAGS} ${GTEST_CPPFLAGS}
-DBusBenchmarkingTest_CXXFLAGS = ${GTEST_CXXFLAGS}
-DBusBenchmarkingTest_LDADD = ${LDADD_FOR_GTEST}
-
DBusCommunicationTest_SOURCES = \
src/test/DBusCommunicationTest.cpp \
${TestInterfaceSources}
diff --git a/src/test/DBusBenchmarkingTest.cpp b/src/test/DBusBenchmarkingTest.cpp
deleted file mode 100644
index ddce610..0000000
--- a/src/test/DBusBenchmarkingTest.cpp
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#include <CommonAPI/SerializableStruct.h>
-#include <CommonAPI/DBus/DBusInputStream.h>
-#include <CommonAPI/DBus/DBusOutputStream.h>
-
-#include <unordered_map>
-#include <bits/functional_hash.h>
-
-#include <gtest/gtest.h>
-
-#include <dbus/dbus.h>
-
-#include <chrono>
-#include <cstdint>
-#include <vector>
-#include <unordered_map>
-#include <bits/functional_hash.h>
-
-
-class BenchmarkingTest: public ::testing::Test {
- protected:
- DBusMessage* libdbusMessage;
- DBusMessageIter libdbusMessageWriteIter;
- size_t numOfElements;
-
- void SetUp() {
- numOfElements = 2;
- libdbusMessage = dbus_message_new_method_call("no.bus.here", "/no/object/here", NULL, "noMethodHere");
- ASSERT_TRUE(libdbusMessage != NULL);
- dbus_message_iter_init_append(libdbusMessage, &libdbusMessageWriteIter);
- }
-
- void TearDown() {
- dbus_message_unref(libdbusMessage);
- }
-};
-
-template <typename _ArrayElementLibdbusType, typename _ArrayElementCommonApiType>
-void prepareLibdbusArray(DBusMessage* libdbusMessage,
- const int arrayElementLibdbusType,
- const char* arrayElementLibdbusTypeAsString,
- const _ArrayElementLibdbusType& arrayInitElementValue,
- const uint32_t arrayInitTime,
- size_t& libdbusInitElementCount) {
-
- DBusMessageIter libdbusMessageIter;
- DBusMessageIter libdbusMessageContainerIter;
-
- dbus_message_iter_init_append(libdbusMessage, &libdbusMessageIter);
-
- dbus_bool_t libdbusSuccess = dbus_message_iter_open_container(&libdbusMessageIter,
- DBUS_TYPE_ARRAY,
- arrayElementLibdbusTypeAsString,
- &libdbusMessageContainerIter);
- ASSERT_TRUE(libdbusSuccess);
-
-
- std::chrono::milliseconds libdbusInitTime;
- std::chrono::time_point<std::chrono::high_resolution_clock> clockStart = std::chrono::high_resolution_clock::now();
-
- do {
- for (int i = 0; i < 1000; i++)
- dbus_message_iter_append_basic(&libdbusMessageContainerIter,
- arrayElementLibdbusType,
- &arrayInitElementValue);
-
- libdbusInitElementCount += 1000;
-
- libdbusInitTime = std::chrono::duration_cast<std::chrono::milliseconds>(
- std::chrono::high_resolution_clock::now() - clockStart);
- } while (libdbusInitTime.count() < arrayInitTime);
-
- libdbusSuccess = dbus_message_iter_close_container(&libdbusMessageIter, &libdbusMessageContainerIter);
- ASSERT_TRUE(libdbusSuccess);
-
- std::cout << "LibdbusInitTime = " << libdbusInitTime.count() << std::endl;
- std::cout << "LibdbusInitElementCount = " << libdbusInitElementCount << std::endl;
-}
-
-
-template <typename _ArrayElementLibdbusType, typename _ArrayElementCommonApiType>
-void measureLibdbusArrayReadTime(DBusMessage* libdbusMessage,
- size_t& libdbusInitElementCount,
- std::chrono::milliseconds& libdbusArrayReadTime) {
-
- DBusMessageIter libdbusMessageIter;
- DBusMessageIter libdbusMessageContainerIter;
-
- dbus_bool_t libdbusSuccess;
-
- libdbusSuccess = dbus_message_iter_init(libdbusMessage, &libdbusMessageIter);
- ASSERT_TRUE(libdbusSuccess);
-
- dbus_message_iter_recurse(&libdbusMessageIter, &libdbusMessageContainerIter);
-
- size_t libdbusReadElementCount = 0;
- std::chrono::time_point<std::chrono::high_resolution_clock> clockStart = std::chrono::high_resolution_clock::now();
-
- do {
- _ArrayElementLibdbusType libdbusValue;
-
- dbus_message_iter_get_basic(&libdbusMessageContainerIter, &libdbusValue);
-
- ++libdbusReadElementCount;
- } while (dbus_message_iter_next(&libdbusMessageContainerIter));
-
- libdbusArrayReadTime = std::chrono::duration_cast<std::chrono::milliseconds>(
- std::chrono::high_resolution_clock::now() - clockStart);
-
- ASSERT_EQ(libdbusInitElementCount, libdbusReadElementCount);
-}
-
-
-template <typename _ArrayElementLibdbusType, typename _ArrayElementCommonApiType>
-void measureCommonApiArrayReadTime(DBusMessage* libdbusMessage,
- std::chrono::milliseconds& commonArrayApiReadTime,
- size_t& libdbusInitElementCount) {
-
- CommonAPI::DBus::DBusMessage dbusMessage(libdbusMessage);
- CommonAPI::DBus::DBusInputStream DBusInputStream(dbusMessage);
- std::vector<_ArrayElementCommonApiType> commonApiVector;
-
- std::chrono::time_point<std::chrono::high_resolution_clock> clockStart = std::chrono::high_resolution_clock::now();
-
- DBusInputStream >> commonApiVector;
-
- commonArrayApiReadTime = std::chrono::duration_cast<std::chrono::milliseconds>(
- std::chrono::high_resolution_clock::now() - clockStart);
-
- ASSERT_EQ(libdbusInitElementCount, commonApiVector.size());
-}
-
-
-template <typename _ArrayElementLibdbusType, typename _ArrayElementCommonApiType>
-void measureArrayReadTime(
- const int arrayElementLibdbusType,
- const char* arrayElementLibdbusTypeAsString,
- const _ArrayElementLibdbusType arrayInitElementValue,
- const uint32_t arrayInitTime,
- std::chrono::milliseconds& libdbusArrayReadTime,
- std::chrono::milliseconds& commonArrayApiReadTime) {
-
- DBusMessage* libdbusMessage;
- dbus_bool_t libdbusSuccess;
- size_t libdbusInitElementCount = 0;
-
- libdbusMessage = dbus_message_new_method_call("no.bus.here", "/no/object/here", NULL, "noMethodHere");
- ASSERT_TRUE(libdbusMessage != NULL);
-
- prepareLibdbusArray<_ArrayElementLibdbusType, _ArrayElementCommonApiType>(
- libdbusMessage,
- arrayElementLibdbusType,
- arrayElementLibdbusTypeAsString,
- arrayInitElementValue,
- arrayInitTime,
- libdbusInitElementCount);
-
- measureLibdbusArrayReadTime<_ArrayElementLibdbusType, _ArrayElementCommonApiType>(
- libdbusMessage,
- libdbusInitElementCount,
- libdbusArrayReadTime);
-
- measureCommonApiArrayReadTime<_ArrayElementLibdbusType, _ArrayElementCommonApiType>(
- libdbusMessage,
- commonArrayApiReadTime,
- libdbusInitElementCount);
-}
-
-
-TEST_F(BenchmarkingTest, InputStreamReadsIntegerArrayFasterThanLibdbus) {
- std::chrono::milliseconds libdbusArrayReadTime;
- std::chrono::milliseconds commonApiArrayReadTime;
-
- measureArrayReadTime<int32_t, int32_t>(DBUS_TYPE_INT32,
- DBUS_TYPE_INT32_AS_STRING,
- 1234567890,
- 1000,
- libdbusArrayReadTime,
- commonApiArrayReadTime);
-
- RecordProperty("LibdbusArrayReadTime", libdbusArrayReadTime.count());
- RecordProperty("CommonApiArrayReadTime", commonApiArrayReadTime.count());
-
- std::cout << "LibdbusArrayReadTime = " << libdbusArrayReadTime.count() << std::endl;
- std::cout << "CommonApiArrayReadTime = " << commonApiArrayReadTime.count() << std::endl;
-
- ASSERT_LT(commonApiArrayReadTime.count(), libdbusArrayReadTime.count() * 0.30)
- << "CommonAPI::DBus::DBusInputStream must be at least 70% faster than libdbus!";
-}
-
-TEST_F(BenchmarkingTest, InputStreamReadsStringArrayFasterThanLibdbus) {
- std::chrono::milliseconds libdbusArrayReadTime;
- std::chrono::milliseconds commonApiArrayReadTime;
-
- measureArrayReadTime<char*, std::string>(DBUS_TYPE_STRING,
- DBUS_TYPE_STRING_AS_STRING,
- const_cast<char*>("01234567890123456789"),
- 1000,
- libdbusArrayReadTime,
- commonApiArrayReadTime);
-
- RecordProperty("LibdbusArrayReadTime", libdbusArrayReadTime.count());
- RecordProperty("CommonApiArrayReadTime", commonApiArrayReadTime.count());
-
- std::cout << "LibdbusArrayReadTime = " << libdbusArrayReadTime.count() << std::endl;
- std::cout << "CommonApiArrayReadTime = " << commonApiArrayReadTime.count() << std::endl;
-
- ASSERT_LT(commonApiArrayReadTime.count(), libdbusArrayReadTime.count() * 0.30)
- << "CommonAPI::DBus::DBusInputStream must be at least 70% faster than libdbus!";
-}
-
-int main(int argc, char** argv) {
- ::testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
-}