diff --git a/unittest/vslib/Makefile.am b/unittest/vslib/Makefile.am index dc9ab5fafcb8..48b908295eef 100644 --- a/unittest/vslib/Makefile.am +++ b/unittest/vslib/Makefile.am @@ -24,7 +24,10 @@ tests_SOURCES = main.cpp \ TestMACsecIngressFilter.cpp \ TestNetMsgRegistrar.cpp \ TestRealObjectIdManager.cpp \ - TestResourceLimiter.cpp + TestResourceLimiter.cpp \ + TestResourceLimiterContainer.cpp \ + TestResourceLimiterParser.cpp \ + TestSaiUnittests.cpp tests_CXXFLAGS = $(DBGFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS_COMMON) tests_LDADD = $(LDADD_GTEST) $(top_srcdir)/vslib/libSaiVS.a -lhiredis -lswsscommon -lnl-genl-3 -lnl-nf-3 -lnl-route-3 -lnl-3 \ diff --git a/unittest/vslib/TestResourceLimiterContainer.cpp b/unittest/vslib/TestResourceLimiterContainer.cpp new file mode 100644 index 000000000000..b1ffcb411105 --- /dev/null +++ b/unittest/vslib/TestResourceLimiterContainer.cpp @@ -0,0 +1,52 @@ +#include "ResourceLimiterContainer.h" + +#include + +using namespace saivs; + +TEST(ResourceLimiterContainer, insert) +{ + auto rl = std::make_shared(0); + + ResourceLimiterContainer rlc; + + EXPECT_THROW(rlc.insert(0, nullptr), std::runtime_error); + + rlc.insert(0, rl); + + EXPECT_NE(rlc.getResourceLimiter(0), nullptr); +} + +TEST(ResourceLimiterContainer, remove) +{ + auto rl = std::make_shared(0); + + ResourceLimiterContainer rlc; + + EXPECT_THROW(rlc.insert(0, nullptr), std::runtime_error); + + rlc.insert(0, rl); + + EXPECT_NE(rlc.getResourceLimiter(0), nullptr); + + rlc.remove(0); + + EXPECT_EQ(rlc.getResourceLimiter(0), nullptr); +} + +TEST(ResourceLimiterContainer, getResourceLimiter) +{ + auto rl = std::make_shared(0); + + ResourceLimiterContainer rlc; + + EXPECT_THROW(rlc.insert(0, nullptr), std::runtime_error); + + rlc.insert(0, rl); + + EXPECT_NE(rlc.getResourceLimiter(0), nullptr); + + rlc.clear(); + + EXPECT_EQ(rlc.getResourceLimiter(0), nullptr); +}