diff options
author | Marri Devender Rao <devenrao@in.ibm.com> | 2018-04-16 05:56:11 -0500 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-06-05 02:10:49 +0000 |
commit | e5576bf2a145117c583c3ad05fec3a08aa90993d (patch) | |
tree | 8421f819b81a3b8e1b0f343aedfe02083607274b /src/test | |
parent | 80c70610a0ea96cf609387638f9f3f9bee0c581d (diff) | |
download | phosphor-dbus-monitor-e5576bf2a145117c583c3ad05fec3a08aa90993d.tar.gz phosphor-dbus-monitor-e5576bf2a145117c583c3ad05fec3a08aa90993d.zip |
Add unit test for watches created on object paths
Verify the watches created for the object path being watched
for 'interfaces added' signal.
Resolves openbmc/openbmc#3003
Change-Id: I88a3adbbe91fcbe5bdf606d2f460d4d0c6d9c1a2
Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/Makefile.am | 25 | ||||
-rw-r--r-- | src/test/interfaceaddtest.cpp | 28 | ||||
-rw-r--r-- | src/test/templates/interfaceaddtest.mako.hpp | 11 | ||||
-rw-r--r-- | src/test/yaml/interfaceaddtest/one.yaml | 22 |
4 files changed, 86 insertions, 0 deletions
diff --git a/src/test/Makefile.am b/src/test/Makefile.am index 8f3cd02..d09e678 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -201,3 +201,28 @@ callbacktest_LDADD = \ $(builddir)/../event_manager.o \ $(builddir)/../event_serialize.o \ -lstdc++fs + +check_PROGRAMS += interfaceaddtest +interfaceaddtest_SOURCES = \ + interfaceaddtest.cpp +interfaceaddtest_CXXFLAGS = \ + $(gtest_cflags) +interfaceaddtest_LDFLAGS = \ + $(OESDK_TESTCASE_FLAGS) +interfaceaddtest_LDADD = \ + ${gtest_ldadd} + +BUILT_SOURCES += interfaceaddtest.hpp +CLEANFILES += interfaceaddtest.hpp + +INTERFACEADD_TEST_GEN_DEPS = \ + templates/interfaceaddtest.mako.hpp \ + yaml/interfaceaddtest + +interfaceaddtest.hpp: $(PDMGEN) $(INTERFACEADD_TEST_GEN_DEPS) + $(AM_V_GEN) $(PYTHON) $(PDMGEN) \ + -t interfaceaddtest.mako.hpp \ + -p "${TEMPLATESEARCH}" \ + -d ${srcdir}/yaml/interfaceaddtest \ + -o $(builddir)/$@ \ + generate-cpp diff --git a/src/test/interfaceaddtest.cpp b/src/test/interfaceaddtest.cpp new file mode 100644 index 0000000..d80f437 --- /dev/null +++ b/src/test/interfaceaddtest.cpp @@ -0,0 +1,28 @@ +#include <array> +#include <string> +#include <gtest/gtest.h> +#include "pathwatchimpl.hpp" +#include "event.hpp" + +using namespace std::string_literals; +using namespace phosphor::dbus::monitoring; + +#include "interfaceaddtest.hpp" + +const std::array<std::string, 1> expectedPaths = { + "/xyz/openbmc_project/testing/inst1"s, +}; + +const std::array<std::string, 1> expectedWatches = { + "/xyz/openbmc_project/testing/inst1"s, +}; + +TEST(InterfaceAddTest, PathsSameSize) +{ + ASSERT_EQ(sizeof(expectedPaths), sizeof(paths)); +} + +TEST(InterfaceAddTest, WatchSameSize) +{ + ASSERT_EQ(expectedWatches.size(), pathwatches.size()); +}
\ No newline at end of file diff --git a/src/test/templates/interfaceaddtest.mako.hpp b/src/test/templates/interfaceaddtest.mako.hpp new file mode 100644 index 0000000..3b0609a --- /dev/null +++ b/src/test/templates/interfaceaddtest.mako.hpp @@ -0,0 +1,11 @@ +const std::array<std::string, ${len(pathinstances)}> paths = { +% for p in paths: + "${p.name}"s, +% endfor +}; + +const std::array<std::string, ${len(pathwatches)}> pathwatches = {{ +% for w in pathwatches: + paths[${w.pathinstances}], +% endfor +}}; diff --git a/src/test/yaml/interfaceaddtest/one.yaml b/src/test/yaml/interfaceaddtest/one.yaml new file mode 100644 index 0000000..f84389e --- /dev/null +++ b/src/test/yaml/interfaceaddtest/one.yaml @@ -0,0 +1,22 @@ +# Validate number of watches created for the object path +# +# Expecting one watch created for the object path +- name: errorlog path group + class: group + group: path + members: + - meta: PATH + path: /xyz/openbmc_project/testing/inst1 + +- name: pathwatch errorlog + description: > + class: pathwatch + pathwatch: path + paths: errorlog path group + pathcallback: create errorlog event + +- name: create errorlog event + class: pathcallback + pathcallback: eventpath + paths: errorlog path group + eventType: ErrorNotification |