Skip to content

Commit

Permalink
tests: improve test coverage of FaceManager
Browse files Browse the repository at this point in the history
And misc cleanups in various mgmt test suites.

Refs: #3377
Change-Id: I189f8891559dae6e2329338e7707991ca476db0e
  • Loading branch information
Pesa committed Jan 15, 2025
1 parent 1d2d337 commit 4296fe3
Show file tree
Hide file tree
Showing 11 changed files with 462 additions and 695 deletions.
33 changes: 11 additions & 22 deletions tests/daemon/mgmt/cs-manager.t.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ BOOST_AUTO_TEST_CASE(Config)
body.setCapacity(22129);
body.setFlagBit(CsFlagBit::BIT_CS_ENABLE_ADMIT, false, false);
body.setFlagBit(CsFlagBit::BIT_CS_ENABLE_SERVE, true, false);
BOOST_CHECK_EQUAL(checkResponse(0, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(0, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// send filled cs/config command
Expand All @@ -87,8 +86,7 @@ BOOST_AUTO_TEST_CASE(Config)
body.setCapacity(18609);
body.setFlagBit(CsFlagBit::BIT_CS_ENABLE_ADMIT, true, false);
body.setFlagBit(CsFlagBit::BIT_CS_ENABLE_SERVE, false, false);
BOOST_CHECK_EQUAL(checkResponse(1, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(1, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// CS shall have updated config
Expand Down Expand Up @@ -119,28 +117,24 @@ BOOST_AUTO_TEST_CASE(Erase)
const Name cmdPrefix = Name("/localhost/nfd").append(ndn::nfd::CsEraseCommand::getName());

// requested Name matches no Data
auto req = makeControlCommandRequest(cmdPrefix,
ControlParameters().setName("/A").setCount(1));
auto req = makeControlCommandRequest(cmdPrefix, ControlParameters().setName("/A").setCount(1));
receiveInterest(req);

// response should include zero as actual Count
ControlParameters body;
body.setName("/A");
body.setCount(0);
BOOST_CHECK_EQUAL(checkResponse(0, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(0, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// requested Count is less than erase limit
req = makeControlCommandRequest(cmdPrefix,
ControlParameters().setName("/B").setCount(3));
req = makeControlCommandRequest(cmdPrefix, ControlParameters().setName("/B").setCount(3));
receiveInterest(req);

// response should include actual Count and omit Capacity
body.setName("/B");
body.setCount(3);
BOOST_CHECK_EQUAL(checkResponse(1, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(1, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// requested Count equals erase limit
Expand All @@ -151,8 +145,7 @@ BOOST_AUTO_TEST_CASE(Erase)
// response should include actual Count and omit Capacity
body.setName("/E");
body.setCount(CsManager::ERASE_LIMIT - 1);
BOOST_CHECK_EQUAL(checkResponse(2, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(2, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// requested Count exceeds erase limit, but there are no more Data
Expand All @@ -163,8 +156,7 @@ BOOST_AUTO_TEST_CASE(Erase)
// response should include actual Count and omit Capacity
body.setName("/F");
body.setCount(CsManager::ERASE_LIMIT);
BOOST_CHECK_EQUAL(checkResponse(3, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(3, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// requested Count exceeds erase limit, and there are more Data
Expand All @@ -176,21 +168,18 @@ BOOST_AUTO_TEST_CASE(Erase)
body.setName("/G");
body.setCount(CsManager::ERASE_LIMIT);
body.setCapacity(CsManager::ERASE_LIMIT);
BOOST_CHECK_EQUAL(checkResponse(4, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(4, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// request omit Count, which implies "no limit" aka exceeds erase limit
req = makeControlCommandRequest(cmdPrefix,
ControlParameters().setName("/H"));
req = makeControlCommandRequest(cmdPrefix, ControlParameters().setName("/H"));
receiveInterest(req);

// response should include both actual Count and Capacity since there are more Data
body.setName("/H");
body.setCount(CsManager::ERASE_LIMIT);
body.setCapacity(CsManager::ERASE_LIMIT);
BOOST_CHECK_EQUAL(checkResponse(5, req.getName(),
ControlResponse(200, "OK").setBody(body.wireEncode())),
BOOST_CHECK_EQUAL(checkResponse(5, req.getName(), makeResponse(200, "OK", body)),
CheckResponseResult::OK);

// one Data each under /A, /G, /H remain, all other Data are erased
Expand Down
Loading

0 comments on commit 4296fe3

Please sign in to comment.