Skip to content

Commit

Permalink
address Boris comments
Browse files Browse the repository at this point in the history
  • Loading branch information
hnnajh committed May 16, 2024
1 parent 1373fb4 commit a76de01
Show file tree
Hide file tree
Showing 5 changed files with 132 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,8 @@ void pychip_CommissionableNodeController_PrintDiscoveredCommissioners(
ChipLogProgress(Discovery, "\tMrp Interval active\tNot present");
}

ChipLogProgress(Discovery, "\tSupports Client TCP\t\t%d", dnsSdInfo->supportsTcpClient);
ChipLogProgress(Discovery, "\tSupports Server TCP\t\t%d", dnsSdInfo->supportsTcpServer);
ChipLogProgress(Discovery, "\tSupports TCP Client\t\t%d", dnsSdInfo->supportsTcpClient);
ChipLogProgress(Discovery, "\tSupports TCP Server\t\t%d", dnsSdInfo->supportsTcpServer);

if (dnsSdInfo->isICDOperatingAsLIT.has_value())
{
Expand Down
4 changes: 2 additions & 2 deletions src/controller/python/ChipDeviceController-Discovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,8 @@ void pychip_DeviceController_PrintDiscoveredDevices(Controller::DeviceCommission
ChipLogProgress(Discovery, "\tMrp Interval active\tNot present");
}

ChipLogProgress(Discovery, "\tSupports Client TCP\t\t%d", dnsSdInfo->supportsTcpClient);
ChipLogProgress(Discovery, "\tSupports Server TCP\t\t%d", dnsSdInfo->supportsTcpServer);
ChipLogProgress(Discovery, "\tSupports TCP Client\t\t%d", dnsSdInfo->supportsTcpClient);
ChipLogProgress(Discovery, "\tSupports TCP Server\t\t%d", dnsSdInfo->supportsTcpServer);
if (dnsSdInfo->isICDOperatingAsLIT.has_value())
{
ChipLogProgress(Discovery, "\tICD is operating as a\t%s", *(dnsSdInfo->isICDOperatingAsLIT) ? "LIT" : "SIT");
Expand Down
4 changes: 2 additions & 2 deletions src/lib/address_resolve/tool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ class PrintOutNodeListener : public chip::AddressResolve::NodeListener
result.address.ToString(addr_string);

ChipLogProgress(Discovery, "Resolve completed: %s", addr_string);
ChipLogProgress(Discovery, " Supports TCP: %s",
(result.supportsTcpServer || result.supportsTcpClient) ? "YES" : "NO");
ChipLogProgress(Discovery, " Supports TCP Client: %s", result.supportsTcpClient ? "YES" : "NO");
ChipLogProgress(Discovery, " Supports TCP Server: %s", result.supportsTcpServer ? "YES" : "NO");
ChipLogProgress(Discovery, " MRP IDLE retransmit timeout: %u ms", result.mrpRemoteConfig.mIdleRetransTimeout.count());
ChipLogProgress(Discovery, " MRP ACTIVE retransmit timeout: %u ms", result.mrpRemoteConfig.mActiveRetransTimeout.count());
ChipLogProgress(Discovery, " MRP ACTIVE Threshold time: %u ms", result.mrpRemoteConfig.mActiveThresholdTime.count());
Expand Down
146 changes: 122 additions & 24 deletions src/lib/dnssd/tests/TestTxtFields.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -645,31 +645,80 @@ void DiscoveredTxtFieldTcpSupport()
nodeData.Set<NodeData>();
CommonResolutionData & resolutionData = nodeData.Get<NodeData>();

// True
// Neither TCP Client nor TCP Server are enabled
strcpy(key, "T");
strcpy(val, "0");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpServer);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpClient);

// Neither TCP Client nor TCP Server are enabled - ignoring first bit
strcpy(key, "T");
strcpy(val, "1");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpServer);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpClient);

// Supporting TCP Client only
strcpy(key, "T");
strcpy(val, "2");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpServer);

// Supporting TCP Client only - ignoring first bit
strcpy(key, "T");
strcpy(val, "3");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpServer);

// Test no other fields were populated
nodeData.Get<NodeData>().supportsTcpClient = false;
nodeData.Get<NodeData>().supportsTcpServer = false;
EXPECT_TRUE(NodeDataIsEmpty(nodeData.Get<NodeData>()));
// Supporting TCP Server only
strcpy(key, "T");
strcpy(val, "4");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpServer);

// False
// Supporting TCP Server only - ignoring first bit
strcpy(key, "T");
strcpy(val, "0");
strcpy(val, "5");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpServer);

// Supporting TCP Server and Client
strcpy(key, "T");
strcpy(val, "6");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpServer);

// Supporting TCP Server and Client - ignoring first bit
strcpy(key, "T");
strcpy(val, "7");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpServer);

// Invalid value, means neither TCP Client or Server are enabled
strcpy(key, "T");
strcpy(val, "8");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpServer == false);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpClient == false);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpServer);

// Invalid value, stil false
// Invalid value, means neither TCP Client or Server are enabled
strcpy(key, "T");
strcpy(val, "asdf");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), resolutionData);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpClient == false);
EXPECT_TRUE(nodeData.Get<NodeData>().supportsTcpServer == false);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpClient);
EXPECT_FALSE(nodeData.Get<NodeData>().supportsTcpServer);

// Test no other fields were populated
nodeData.Get<NodeData>().supportsTcpClient = false;
nodeData.Get<NodeData>().supportsTcpServer = false;
EXPECT_TRUE(NodeDataIsEmpty(nodeData.Get<NodeData>()));
}

// Test ICD (ICD operation Mode)
Expand Down Expand Up @@ -984,31 +1033,80 @@ void TxtFieldTcpSupport()
char val[8];
NodeData nodeData;

// True
// Neither TCP Client nor TCP Server are enabled
strcpy(key, "T");
strcpy(val, "0");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpServer);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpClient);

// Neither TCP Client nor TCP Server are enabled - ignoring first bit
strcpy(key, "T");
strcpy(val, "1");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpServer);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpClient);

// Test no other fields were populated
nodeData.resolutionData.supportsTcpServer = false;
nodeData.resolutionData.supportsTcpClient = false;
EXPECT_TRUE(NodeDataIsEmpty(nodeData));
// Supporting TCP Client only
strcpy(key, "T");
strcpy(val, "2");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpServer);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpClient);

// False
// Supporting TCP Client only - ignoring first bit
strcpy(key, "T");
strcpy(val, "0");
strcpy(val, "3");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpServer);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpClient);

// Supporting TCP Server only
strcpy(key, "T");
strcpy(val, "4");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_EQ(nodeData.resolutionData.supportsTcpServer, false);
EXPECT_EQ(nodeData.resolutionData.supportsTcpClient, false);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpServer);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpClient);

// Invalid value, stil false
// Supporting TCP Server only - ignoring first bit
strcpy(key, "T");
strcpy(val, "5");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpServer);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpClient);

// Supporting TCP Server and Client
strcpy(key, "T");
strcpy(val, "6");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpServer);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpClient);

// Supporting TCP Server and Client - ignoring first bit
strcpy(key, "T");
strcpy(val, "7");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpServer);
EXPECT_TRUE(nodeData.resolutionData.supportsTcpClient);

// Invalid value, means neither TCP Client or Server are enabled
strcpy(key, "T");
strcpy(val, "8");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpClient);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpServer);

// Invalid value, means neither TCP Client or Server are enabled
strcpy(key, "T");
strcpy(val, "asdf");
FillNodeDataFromTxt(GetSpan(key), GetSpan(val), nodeData.resolutionData);
EXPECT_EQ(nodeData.resolutionData.supportsTcpClient, false);
EXPECT_EQ(nodeData.resolutionData.supportsTcpServer, false);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpClient);
EXPECT_FALSE(nodeData.resolutionData.supportsTcpServer);

// Test no other fields were populated
nodeData.resolutionData.supportsTcpServer = false;
nodeData.resolutionData.supportsTcpClient = false;
EXPECT_TRUE(NodeDataIsEmpty(nodeData));
}

TEST(TestTxtFields, TxtDiscoveredFieldTcpSupport)
Expand Down
8 changes: 4 additions & 4 deletions src/lib/shell/commands/Dns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ class DnsShellResolverDelegate : public Dnssd::DiscoverNodeDelegate, public Addr
result.address.ToString(addr_string);

streamer_printf(streamer_get(), "Resolve completed: %s\r\n", addr_string);
streamer_printf(streamer_get(), " Supports Client TCP: %s\r\n", result.supportsTcpClient ? "YES" : "NO");
streamer_printf(streamer_get(), " Supports Server TCP: %s\r\n", result.supportsTcpServer ? "YES" : "NO");
streamer_printf(streamer_get(), " Supports TCP Client: %s\r\n", result.supportsTcpClient ? "YES" : "NO");
streamer_printf(streamer_get(), " Supports TCP Server: %s\r\n", result.supportsTcpServer ? "YES" : "NO");
streamer_printf(streamer_get(), " MRP IDLE retransmit timeout: %u ms\r\n",
result.mrpRemoteConfig.mIdleRetransTimeout.count());
streamer_printf(streamer_get(), " MRP ACTIVE retransmit timeout: %u ms\r\n",
Expand Down Expand Up @@ -136,8 +136,8 @@ class DnsShellResolverDelegate : public Dnssd::DiscoverNodeDelegate, public Addr
streamer_printf(streamer_get(), " MRP retry active threshold time: %" PRIu32 "ms\r\n", *activeThreshold);
}

streamer_printf(streamer_get(), " Supports Client TCP: %s\r\n", nodeData.supportsTcpClient ? "yes" : "no");
streamer_printf(streamer_get(), " Supports Server TCP: %s\r\n", nodeData.supportsTcpServer ? "yes" : "no");
streamer_printf(streamer_get(), " Supports TCP Client: %s\r\n", nodeData.supportsTcpClient ? "yes" : "no");
streamer_printf(streamer_get(), " Supports TCP Server: %s\r\n", nodeData.supportsTcpServer ? "yes" : "no");

if (nodeData.isICDOperatingAsLIT.has_value())
{
Expand Down

0 comments on commit a76de01

Please sign in to comment.