Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UT] [Portsyncd] Added Unit Tests for portsyncd #2297

Merged
merged 29 commits into from
Sep 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
1c6cd64
Refactored portsyncd structure to improve testability
vivekrnv Apr 27, 2022
0ce3d92
Merge branch 'Azure:master' into ut_infra_improv
vivekrnv Apr 27, 2022
7395544
Skeleton for portsyncd ut added
vivekrnv Apr 27, 2022
b98badf
Merge branch 'ut_infra_improv' of https://github.com/vivekreddynv/son…
vivekrnv Apr 27, 2022
dc384cd
Minor update
vivekrnv Apr 27, 2022
bc7528a
Class Init and reading from cfg_db ut's added
vivekrnv Apr 28, 2022
e052e20
Added missing comment
vivekrnv Apr 28, 2022
e267fd9
onMsg test added
vivekrnv Apr 28, 2022
67a086d
2 new test cases added
vivekrnv Apr 29, 2022
64a8ee1
Another case added
vivekrnv Apr 29, 2022
6909333
Push infra modifications
vivekrnv Apr 29, 2022
7f26e83
Moved common methods/ds to a different file
vivekrnv May 3, 2022
0402330
bullseye link issue handled
vivekrnv May 9, 2022
0523b8c
Merge branch 'master' of https://github.com/Azure/sonic-swss into ut_…
vivekrnv May 20, 2022
8a3c138
Update UT to include ASAN changes
vivekrnv May 20, 2022
dfcba64
Restored original del func on mock_table
vivekrnv May 20, 2022
1bc2d97
Refactored mock shell cmd
vivekrnv May 21, 2022
6134e80
Minor fix
vivekrnv May 21, 2022
f757668
Merge branch 'master' of https://github.com/Azure/sonic-swss into ut_…
vivekrnv Aug 2, 2022
06edeb9
Refactored mock_tests/ folder
vivekrnv Aug 2, 2022
98b6358
p4orch tests updated
vivekrnv Aug 2, 2022
d436281
Revert "p4orch tests updated"
vivekrnv Aug 5, 2022
70099b4
Revert "Refactored mock_tests/ folder"
vivekrnv Aug 5, 2022
41d31e8
Moved the fun/global vars to orig location and removed tests
vivekrnv Aug 27, 2022
94b9e30
Minor deviations
vivekrnv Aug 27, 2022
aa8e7e7
Minor deviations
vivekrnv Aug 27, 2022
1edb07c
Merge branch 'sonic-net:master' into ut_infra_improv
vivekrnv Aug 28, 2022
42cbbcf
Merge branch 'sonic-net:master' into ut_infra_improv
vivekrnv Aug 29, 2022
e974c82
Merge branch 'sonic-net:master' into ut_infra_improv
vivekrnv Aug 30, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions portsyncd/portsyncd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,7 @@ void usage()
cout << " this program will exit if configDB does not contain that info" << endl;
}

void handlePortConfigFile(ProducerStateTable &p, string file, bool warm);
void handlePortConfigFromConfigDB(ProducerStateTable &p, DBConnector &cfgDb, bool warm);
void handleVlanIntfFile(string file);
void checkPortInitDone(DBConnector *appl_db);

int main(int argc, char **argv)
{
Expand Down
57 changes: 39 additions & 18 deletions tests/mock_tests/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@ FLEX_CTR_DIR = $(top_srcdir)/orchagent/flex_counter
DEBUG_CTR_DIR = $(top_srcdir)/orchagent/debug_counter
P4_ORCH_DIR = $(top_srcdir)/orchagent/p4orch

INCLUDES = -I $(FLEX_CTR_DIR) -I $(DEBUG_CTR_DIR) -I $(top_srcdir)/lib -I $(top_srcdir)/cfgmgr

CFLAGS_SAI = -I /usr/include/sai

TESTS = tests tests_intfmgrd
TESTS = tests tests_intfmgrd tests_portsyncd

noinst_PROGRAMS = tests tests_intfmgrd
noinst_PROGRAMS = tests tests_intfmgrd tests_portsyncd

LDADD_SAI = -lsaimeta -lsaimetadata -lsaivs -lsairedis

Expand All @@ -21,6 +19,10 @@ endif
CFLAGS_GTEST =
LDADD_GTEST = -L/usr/src/gtest

## Orchagent Unit Tests

tests_INCLUDES = -I $(FLEX_CTR_DIR) -I $(DEBUG_CTR_DIR) -I $(top_srcdir)/lib -I$(top_srcdir)/cfgmgr -I$(top_srcdir)/orchagent

tests_SOURCES = aclorch_ut.cpp \
portsorch_ut.cpp \
routeorch_ut.cpp \
Expand All @@ -36,10 +38,10 @@ tests_SOURCES = aclorch_ut.cpp \
mock_orchagent_main.cpp \
mock_dbconnector.cpp \
mock_consumerstatetable.cpp \
common/mock_shell_command.cpp \
mock_table.cpp \
mock_hiredis.cpp \
mock_redisreply.cpp \
mock_shell_command.cpp \
bulker_ut.cpp \
portmgr_ut.cpp \
fake_response_publisher.cpp \
Expand Down Expand Up @@ -120,26 +122,45 @@ tests_SOURCES += $(P4_ORCH_DIR)/p4orch.cpp \
$(P4_ORCH_DIR)/gre_tunnel_manager.cpp \
$(P4_ORCH_DIR)/l3_admit_manager.cpp

tests_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI)
tests_CPPFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI) -I$(top_srcdir)/orchagent
tests_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI)
tests_CPPFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI) $(tests_INCLUDES)
tests_LDADD = $(LDADD_GTEST) $(LDADD_SAI) -lnl-genl-3 -lhiredis -lhiredis -lpthread \
-lswsscommon -lswsscommon -lgtest -lgtest_main -lzmq -lnl-3 -lnl-route-3

## portsyncd unit tests

tests_portsyncd_SOURCES = portsyncd/portsyncd_ut.cpp \
$(top_srcdir)/portsyncd/linksync.cpp \
mock_dbconnector.cpp \
common/mock_shell_command.cpp \
mock_table.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 -Wl,-wrap,if_freenameindex
tests_portsyncd_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST)
tests_portsyncd_CPPFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(tests_portsyncd_INCLUDES)
tests_portsyncd_LDADD = $(LDADD_GTEST) -lnl-genl-3 -lhiredis -lhiredis \
-lswsscommon -lswsscommon -lgtest -lgtest_main -lnl-3 -lnl-route-3 -lpthread

## intfmgrd unit tests

tests_intfmgrd_SOURCES = intfmgrd/add_ipv6_prefix_ut.cpp \
$(top_srcdir)/cfgmgr/intfmgr.cpp \
$(top_srcdir)/orchagent/orch.cpp \
$(top_srcdir)/orchagent/request_parser.cpp \
$(top_srcdir)/lib/subintf.cpp \
mock_orchagent_main.cpp \
mock_dbconnector.cpp \
mock_table.cpp \
mock_hiredis.cpp \
fake_response_publisher.cpp \
mock_redisreply.cpp
$(top_srcdir)/cfgmgr/intfmgr.cpp \
$(top_srcdir)/lib/subintf.cpp \
$(top_srcdir)/orchagent/orch.cpp \
$(top_srcdir)/orchagent/request_parser.cpp \
mock_orchagent_main.cpp \
mock_dbconnector.cpp \
mock_table.cpp \
mock_hiredis.cpp \
fake_response_publisher.cpp \
mock_redisreply.cpp \
common/mock_shell_command.cpp

tests_intfmgrd_INCLUDES = $(tests_INCLUDES) -I$(top_srcdir)/cfgmgr -I$(top_srcdir)/lib
tests_intfmgrd_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI)
tests_intfmgrd_CPPFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI) -I $(top_srcdir)/cfgmgr -I $(top_srcdir)/orchagent/
tests_intfmgrd_CPPFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_GTEST) $(CFLAGS_SAI) $(tests_intfmgrd_INCLUDES)
tests_intfmgrd_LDADD = $(LDADD_GTEST) $(LDADD_SAI) -lnl-genl-3 -lhiredis -lhiredis \
-lswsscommon -lswsscommon -lgtest -lgtest_main -lzmq -lnl-3 -lnl-route-3 -lpthread
25 changes: 25 additions & 0 deletions tests/mock_tests/common/mock_shell_command.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include <string>
#include <vector>

/* Override this pointer for custom behavior */
int (*callback)(const std::string &cmd, std::string &stdout) = nullptr;

int mockCmdReturn = 0;
std::string mockCmdStdcout = "";
std::vector<std::string> mockCallArgs;

namespace swss {
int exec(const std::string &cmd, std::string &stdout)
{
if (callback != nullptr)
{
return callback(cmd, stdout);
}
else
{
mockCallArgs.push_back(cmd);
stdout = mockCmdStdcout;
return mockCmdReturn;
}
}
}
16 changes: 4 additions & 12 deletions tests/mock_tests/intfmgrd/add_ipv6_prefix_ut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,17 @@
#include <sys/stat.h>
#include "../mock_table.h"
#include "warm_restart.h"
#define private public
#define private public
#include "intfmgr.h"
#undef private

/* Override this pointer for custom behavior */
int (*callback)(const std::string &cmd, std::string &stdout) = nullptr;
std::vector<std::string> mockCallArgs;

namespace swss {
int exec(const std::string &cmd, std::string &stdout)
{
mockCallArgs.push_back(cmd);
return callback(cmd, stdout);
}
}
extern int (*callback)(const std::string &cmd, std::string &stdout);
extern std::vector<std::string> mockCallArgs;

bool Ethernet0IPv6Set = false;

int cb(const std::string &cmd, std::string &stdout){
mockCallArgs.push_back(cmd);
if (cmd == "sysctl -w net.ipv6.conf.\"Ethernet0\".disable_ipv6=0") Ethernet0IPv6Set = true;
else if (cmd.find("/sbin/ip -6 address \"add\"") == 0) {
return Ethernet0IPv6Set ? 0 : 2;
Expand Down
5 changes: 2 additions & 3 deletions tests/mock_tests/mock_table.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,16 +73,15 @@ namespace swss
keys.push_back(it.first);
}
}



void Table::del(const std::string &key, const std::string& /* op */, const std::string& /*prefix*/)
{
auto table = gDB[m_pipe->getDbId()].find(getTableName());
if (table != gDB[m_pipe->getDbId()].end()){
table->second.erase(key);
}
}

void ProducerStateTable::set(const std::string &key,
const std::vector<FieldValueTuple> &values,
const std::string &op,
Expand Down
Loading