From 6909333fce9be4fbafa9dfbc889ba9c0feb11bde Mon Sep 17 00:00:00 2001 From: Vivek Reddy Karri Date: Fri, 29 Apr 2022 18:40:18 +0000 Subject: [PATCH] Push infra modifications Signed-off-by: Vivek Reddy Karri --- tests/mock_tests/Makefile.am | 3 +- .../mock_tests/common/mock_shell_command.cpp | 15 ++++++ tests/mock_tests/mock_table.cpp | 50 ++++++++++++++++++- 3 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 tests/mock_tests/common/mock_shell_command.cpp diff --git a/tests/mock_tests/Makefile.am b/tests/mock_tests/Makefile.am index d711698ed9..1913f9154c 100644 --- a/tests/mock_tests/Makefile.am +++ b/tests/mock_tests/Makefile.am @@ -119,8 +119,6 @@ tests_LDADD = $(LDADD_GTEST) $(LDADD_SAI) -lnl-genl-3 -lhiredis -lhiredis -lpthr ## portsyncd unit tests -tests_portsyncd_INCLUDES = -I $(top_srcdir)/portsyncd -I $(top_srcdir)/cfgmgr - tests_portsyncd_SOURCES = portsyncd/portsyncd_ut.cpp \ $(top_srcdir)/portsyncd/linksync.cpp \ mock_dbconnector.cpp \ @@ -129,6 +127,7 @@ tests_portsyncd_SOURCES = portsyncd/portsyncd_ut.cpp \ mock_hiredis.cpp \ mock_redisreply.cpp +tests_portsyncd_INCLUDES = -I $(top_srcdir)/portsyncd -I $(top_srcdir)/cfgmgr tests_portsyncd_CXXFLAGS = -Wl,-wrap,if_nameindex tests_portsyncd_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) tests_portsyncd_CPPFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(tests_portsyncd_INCLUDES) diff --git a/tests/mock_tests/common/mock_shell_command.cpp b/tests/mock_tests/common/mock_shell_command.cpp new file mode 100644 index 0000000000..f3ccfbfe5e --- /dev/null +++ b/tests/mock_tests/common/mock_shell_command.cpp @@ -0,0 +1,15 @@ +#include +#include + +int mockCmdReturn = 0; +std::string mockCmdStdcout = ""; +std::vector mockCallArgs; + +namespace swss { + int exec(const std::string &cmd, std::string &stdout) + { + mockCallArgs.push_back(cmd); + stdout = mockCmdStdcout; + return mockCmdReturn; + } +} diff --git a/tests/mock_tests/mock_table.cpp b/tests/mock_tests/mock_table.cpp index 29011c30a0..732bac54a6 100644 --- a/tests/mock_tests/mock_table.cpp +++ b/tests/mock_tests/mock_table.cpp @@ -1,4 +1,6 @@ #include "table.h" +#include "producerstatetable.h" +#include using TableDataT = std::map>; using TablesT = std::map; @@ -62,6 +64,12 @@ namespace swss table[key] = values; } + void Table::del(const std::string &key, const std::string& /* op */, const std::string& /*prefix*/) + { + auto &table = gDB[m_pipe->getDbId()][getTableName()]; + table.erase(key); + } + void Table::getKeys(std::vector &keys) { keys.clear(); @@ -71,4 +79,44 @@ namespace swss keys.push_back(it.first); } } -} + + void ProducerStateTable::set(const std::string &key, + const std::vector &values, + const std::string &op, + const std::string &prefix) + { + auto &table = gDB[m_pipe->getDbId()][getTableName()]; + auto iter = table.find(key); + if (iter == table.end()) + { + table[key] = values; + } + else + { + std::vector new_values(values); + std::set field_set; + for (auto &value : values) + { + field_set.insert(fvField(value)); + } + for (auto &value : iter->second) + { + auto &field = fvField(value); + if (field_set.find(field) != field_set.end()) + { + continue; + } + new_values.push_back(value); + } + iter->second.swap(new_values); + } + } + + void ProducerStateTable::del(const std::string &key, + const std::string &op, + const std::string &prefix) + { + auto &table = gDB[m_pipe->getDbId()][getTableName()]; + table.erase(key); + } +} \ No newline at end of file