Replace nl-unit-test with pigweed for system user_directed_commissioning (#33163)

* user_directed_commissioning tests to pw

* if 0

* update openiotsdk test list

---------

Co-authored-by: Arkadiusz Bokowy <a.bokowy@samsung.com>
diff --git a/src/protocols/user_directed_commissioning/tests/BUILD.gn b/src/protocols/user_directed_commissioning/tests/BUILD.gn
index f536273..ee67f04 100644
--- a/src/protocols/user_directed_commissioning/tests/BUILD.gn
+++ b/src/protocols/user_directed_commissioning/tests/BUILD.gn
@@ -12,11 +12,10 @@
 
 import("//build_overrides/build.gni")
 import("//build_overrides/chip.gni")
-import("//build_overrides/nlunit_test.gni")
 
 import("${chip_root}/build/chip/chip_test_suite.gni")
 
-chip_test_suite_using_nltest("tests") {
+chip_test_suite("tests") {
   output_name = "libUserDirectedCommissioningTests"
 
   test_sources = [ "TestUdcMessages.cpp" ]
@@ -24,9 +23,7 @@
   public_deps = [
     "${chip_root}/src/lib/core",
     "${chip_root}/src/lib/support",
-    "${chip_root}/src/lib/support:testing_nlunit",
     "${chip_root}/src/protocols",
-    "${nlunit_test_root}:nlunit-test",
   ]
 
   cflags = [ "-Wconversion" ]
diff --git a/src/protocols/user_directed_commissioning/tests/TestUdcMessages.cpp b/src/protocols/user_directed_commissioning/tests/TestUdcMessages.cpp
index 3d50682..9dd0508 100644
--- a/src/protocols/user_directed_commissioning/tests/TestUdcMessages.cpp
+++ b/src/protocols/user_directed_commissioning/tests/TestUdcMessages.cpp
@@ -1,6 +1,6 @@
 #include <protocols/user_directed_commissioning/UserDirectedCommissioning.h>
 
-#include <nlunit-test.h>
+#include <gtest/gtest.h>
 
 #include <lib/core/CHIPSafeCasts.h>
 #include <lib/dnssd/TxtFields.h>
@@ -8,8 +8,6 @@
 #include <lib/support/CHIPMem.h>
 #include <lib/support/CHIPMemString.h>
 #include <lib/support/CodeUtils.h>
-#include <lib/support/UnitTestContext.h>
-#include <lib/support/UnitTestRegistration.h>
 #include <transport/TransportMgr.h>
 #include <transport/raw/MessageHeader.h>
 #include <transport/raw/UDP.h>
@@ -21,6 +19,13 @@
 using namespace chip::Dnssd;
 using namespace chip::Dnssd::Internal;
 
+struct TestUdcMessages : public ::testing::Test
+{
+
+    static void SetUpTestSuite() { ASSERT_EQ(chip::Platform::MemoryInit(), CHIP_NO_ERROR); }
+    static void TearDownTestSuite() { chip::Platform::MemoryShutdown(); }
+};
+
 ByteSpan GetSpan(char * key)
 {
     size_t len = strlen(key);
@@ -57,20 +62,20 @@
 
 using DeviceTransportMgr = TransportMgr<Transport::UDP>;
 
-void TestUDCServerClients(nlTestSuite * inSuite, void * inContext)
+TEST_F(TestUdcMessages, TestUDCServerClients)
 {
     UserDirectedCommissioningServer udcServer;
     const char * instanceName1 = "servertest1";
 
     // test setting UDC Clients
-    NL_TEST_ASSERT(inSuite, nullptr == udcServer.GetUDCClients().FindUDCClientState(instanceName1));
+    EXPECT_EQ(nullptr, udcServer.GetUDCClients().FindUDCClientState(instanceName1));
     udcServer.SetUDCClientProcessingState((char *) instanceName1, UDCClientProcessingState::kUserDeclined);
     UDCClientState * state = udcServer.GetUDCClients().FindUDCClientState(instanceName1);
-    NL_TEST_EXIT_ON_FAILED_ASSERT(inSuite, nullptr != state);
-    NL_TEST_ASSERT(inSuite, UDCClientProcessingState::kUserDeclined == state->GetUDCClientProcessingState());
+    ASSERT_NE(nullptr, state);
+    EXPECT_EQ(UDCClientProcessingState::kUserDeclined, state->GetUDCClientProcessingState());
 }
 
-void TestUDCServerUserConfirmationProvider(nlTestSuite * inSuite, void * inContext)
+TEST_F(TestUdcMessages, TestUDCServerUserConfirmationProvider)
 {
     UserDirectedCommissioningServer udcServer;
     TestCallback testCallback;
@@ -108,13 +113,13 @@
     udcServer.OnCommissionableNodeFound(discNodeData2);
     udcServer.OnCommissionableNodeFound(discNodeData1);
     state = udcServer.GetUDCClients().FindUDCClientState(instanceName1);
-    NL_TEST_EXIT_ON_FAILED_ASSERT(inSuite, nullptr != state);
-    NL_TEST_ASSERT(inSuite, UDCClientProcessingState::kUserDeclined == state->GetUDCClientProcessingState());
+    ASSERT_NE(nullptr, state);
+    EXPECT_EQ(UDCClientProcessingState::kUserDeclined, state->GetUDCClientProcessingState());
     // test other fields on UDCClientState
-    NL_TEST_ASSERT(inSuite, 0 == strcmp(state->GetInstanceName(), instanceName1));
+    EXPECT_STREQ(state->GetInstanceName(), instanceName1);
     // check that instance2 was found
     state = udcServer.GetUDCClients().FindUDCClientState(instanceName2);
-    NL_TEST_ASSERT(inSuite, nullptr == state);
+    EXPECT_EQ(nullptr, state);
 
     // test current state check
     udcServer.SetUDCClientProcessingState((char *) instanceName1, UDCClientProcessingState::kUserDeclined);
@@ -122,28 +127,31 @@
     udcServer.OnCommissionableNodeFound(discNodeData2);
     udcServer.OnCommissionableNodeFound(discNodeData1);
     state = udcServer.GetUDCClients().FindUDCClientState(instanceName1);
-    NL_TEST_EXIT_ON_FAILED_ASSERT(inSuite, nullptr != state);
-    NL_TEST_ASSERT(inSuite, UDCClientProcessingState::kUserDeclined == state->GetUDCClientProcessingState());
+    ASSERT_NE(nullptr, state);
+    EXPECT_EQ(UDCClientProcessingState::kUserDeclined, state->GetUDCClientProcessingState());
     state = udcServer.GetUDCClients().FindUDCClientState(instanceName2);
-    NL_TEST_EXIT_ON_FAILED_ASSERT(inSuite, nullptr != state);
-    NL_TEST_ASSERT(inSuite, UDCClientProcessingState::kPromptingUser == state->GetUDCClientProcessingState());
+    ASSERT_NE(nullptr, state);
+    EXPECT_EQ(UDCClientProcessingState::kPromptingUser, state->GetUDCClientProcessingState());
     // test other fields on UDCClientState
-    NL_TEST_ASSERT(inSuite, 0 == strcmp(state->GetInstanceName(), instanceName2));
-    NL_TEST_ASSERT(inSuite, 0 == strcmp(state->GetDeviceName(), deviceName2));
-    NL_TEST_ASSERT(inSuite, state->GetLongDiscriminator() == disc2);
+    EXPECT_STREQ(state->GetInstanceName(), instanceName2);
+    EXPECT_STREQ(state->GetDeviceName(), deviceName2);
+    EXPECT_EQ(state->GetLongDiscriminator(), disc2);
 
     // test non-empty UserConfirmationProvider
     udcServer.SetUserConfirmationProvider(&testCallback);
     udcServer.SetUDCClientProcessingState((char *) instanceName1, UDCClientProcessingState::kUserDeclined);
     udcServer.SetUDCClientProcessingState((char *) instanceName2, UDCClientProcessingState::kDiscoveringNode);
     udcServer.OnCommissionableNodeFound(discNodeData1);
-    NL_TEST_ASSERT(inSuite, !testCallback.mOnUserDirectedCommissioningRequestCalled);
+    EXPECT_FALSE(testCallback.mOnUserDirectedCommissioningRequestCalled);
     udcServer.OnCommissionableNodeFound(discNodeData2);
-    NL_TEST_ASSERT(inSuite, testCallback.mOnUserDirectedCommissioningRequestCalled);
-    NL_TEST_ASSERT(inSuite, 0 == strcmp(testCallback.mState.GetInstanceName(), instanceName2));
+    EXPECT_TRUE(testCallback.mOnUserDirectedCommissioningRequestCalled);
+    EXPECT_STREQ(testCallback.mState.GetInstanceName(), instanceName2);
 }
 
-void TestUDCServerInstanceNameResolver(nlTestSuite * inSuite, void * inContext)
+#if 0
+// TODO Fix test below
+// the following test case is not reliable (fails on mac, clang platforms for example)
+TEST_F(TestUdcMessages, TestUDCServerInstanceNameResolver)
 {
     UserDirectedCommissioningServer udcServer;
     UserDirectedCommissioningClient udcClient;
@@ -175,11 +183,11 @@
 
     // check if the state is set for the instance name sent
     state = udcServer.GetUDCClients().FindUDCClientState(nameBuffer);
-    NL_TEST_EXIT_ON_FAILED_ASSERT(inSuite, nullptr != state);
-    NL_TEST_ASSERT(inSuite, UDCClientProcessingState::kDiscoveringNode == state->GetUDCClientProcessingState());
+    ASSERT_NE(nullptr, state);
+    EXPECT_EQ(UDCClientProcessingState::kDiscoveringNode, state->GetUDCClientProcessingState());
 
     // check if a callback happened
-    NL_TEST_ASSERT(inSuite, testCallback.mFindCommissionableNodeCalled);
+    EXPECT_TRUE(testCallback.mFindCommissionableNodeCalled);
 
     // reset callback tracker so we can confirm that when the
     // same instance name is received, there is no callback
@@ -194,7 +202,7 @@
     mUdcTransportMgr->HandleMessageReceived(peerAddress, std::move(payloadBuf));
 
     // verify it was not called
-    NL_TEST_ASSERT(inSuite, !testCallback.mFindCommissionableNodeCalled);
+    EXPECT_FALSE(testCallback.mFindCommissionableNodeCalled);
 
     // next, reset the cache state and confirm the callback
     udcServer.ResetUDCClientProcessingStates();
@@ -208,10 +216,12 @@
     mUdcTransportMgr->HandleMessageReceived(peerAddress, std::move(payloadBuf));
 
     // verify it was called
-    NL_TEST_ASSERT(inSuite, testCallback.mFindCommissionableNodeCalled);
+    EXPECT_TRUE(testCallback.mFindCommissionableNodeCalled);
 }
 
-void TestUserDirectedCommissioningClientMessage(nlTestSuite * inSuite, void * inContext)
+#endif
+
+TEST_F(TestUdcMessages, TestUserDirectedCommissioningClientMessage)
 {
     char nameBuffer[Dnssd::Commission::kInstanceNameMaxLength + 1] = "Chris";
     System::PacketBufferHandle payloadBuf = MessagePacketBuffer::NewWithData(nameBuffer, strlen(nameBuffer));
@@ -223,15 +233,15 @@
     // check the packet header fields
     PacketHeader packetHeader;
     packetHeader.DecodeAndConsume(payloadBuf);
-    NL_TEST_ASSERT(inSuite, !packetHeader.IsEncrypted());
+    EXPECT_FALSE(packetHeader.IsEncrypted());
 
     // check the payload header fields
     PayloadHeader payloadHeader;
     payloadHeader.DecodeAndConsume(payloadBuf);
-    NL_TEST_ASSERT(inSuite, payloadHeader.GetMessageType() == to_underlying(MsgType::IdentificationDeclaration));
-    NL_TEST_ASSERT(inSuite, payloadHeader.GetProtocolID() == Protocols::UserDirectedCommissioning::Id);
-    NL_TEST_ASSERT(inSuite, !payloadHeader.NeedsAck());
-    NL_TEST_ASSERT(inSuite, payloadHeader.IsInitiator());
+    EXPECT_EQ(payloadHeader.GetMessageType(), to_underlying(MsgType::IdentificationDeclaration));
+    EXPECT_EQ(payloadHeader.GetProtocolID(), Protocols::UserDirectedCommissioning::Id);
+    EXPECT_FALSE(payloadHeader.NeedsAck());
+    EXPECT_TRUE(payloadHeader.IsInitiator());
 
     // check the payload
     char instanceName[Dnssd::Commission::kInstanceNameMaxLength + 1];
@@ -239,13 +249,13 @@
     payloadBuf->Read(Uint8::from_char(instanceName), instanceNameLength);
     instanceName[instanceNameLength] = '\0';
     ChipLogProgress(Inet, "UDC instance=%s", instanceName);
-    NL_TEST_ASSERT(inSuite, strcmp(instanceName, nameBuffer) == 0);
+    EXPECT_STREQ(instanceName, nameBuffer);
 
     // verify no errors
-    NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR);
+    EXPECT_EQ(err, CHIP_NO_ERROR);
 }
 
-void TestUDCClients(nlTestSuite * inSuite, void * inContext)
+TEST_F(TestUdcMessages, TestUDCClients)
 {
     UDCClients<3> mUdcClients;
     const char * instanceName1 = "test1";
@@ -255,39 +265,39 @@
 
     // test base case
     UDCClientState * state = mUdcClients.FindUDCClientState(instanceName1);
-    NL_TEST_ASSERT(inSuite, state == nullptr);
+    ASSERT_EQ(state, nullptr);
 
     // test max size
-    NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == mUdcClients.CreateNewUDCClientState(instanceName1, &state));
-    NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == mUdcClients.CreateNewUDCClientState(instanceName2, &state));
-    NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == mUdcClients.CreateNewUDCClientState(instanceName3, &state));
-    NL_TEST_ASSERT(inSuite, CHIP_ERROR_NO_MEMORY == mUdcClients.CreateNewUDCClientState(instanceName4, &state));
+    EXPECT_EQ(CHIP_NO_ERROR, mUdcClients.CreateNewUDCClientState(instanceName1, &state));
+    EXPECT_EQ(CHIP_NO_ERROR, mUdcClients.CreateNewUDCClientState(instanceName2, &state));
+    EXPECT_EQ(CHIP_NO_ERROR, mUdcClients.CreateNewUDCClientState(instanceName3, &state));
+    EXPECT_EQ(CHIP_ERROR_NO_MEMORY, mUdcClients.CreateNewUDCClientState(instanceName4, &state));
 
     // test reset
     mUdcClients.ResetUDCClientStates();
-    NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == mUdcClients.CreateNewUDCClientState(instanceName4, &state));
+    EXPECT_EQ(CHIP_NO_ERROR, mUdcClients.CreateNewUDCClientState(instanceName4, &state));
 
     // test find
-    NL_TEST_ASSERT(inSuite, nullptr == mUdcClients.FindUDCClientState(instanceName1));
-    NL_TEST_ASSERT(inSuite, nullptr == mUdcClients.FindUDCClientState(instanceName2));
-    NL_TEST_ASSERT(inSuite, nullptr == mUdcClients.FindUDCClientState(instanceName3));
+    EXPECT_EQ(nullptr, mUdcClients.FindUDCClientState(instanceName1));
+    EXPECT_EQ(nullptr, mUdcClients.FindUDCClientState(instanceName2));
+    EXPECT_EQ(nullptr, mUdcClients.FindUDCClientState(instanceName3));
     state = mUdcClients.FindUDCClientState(instanceName4);
-    NL_TEST_ASSERT(inSuite, nullptr != state);
+    ASSERT_NE(nullptr, state);
 
     // test expiry
     state->Reset();
-    NL_TEST_ASSERT(inSuite, nullptr == mUdcClients.FindUDCClientState(instanceName4));
+    EXPECT_EQ(nullptr, mUdcClients.FindUDCClientState(instanceName4));
 
     // test re-activation
-    NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == mUdcClients.CreateNewUDCClientState(instanceName4, &state));
+    EXPECT_EQ(CHIP_NO_ERROR, mUdcClients.CreateNewUDCClientState(instanceName4, &state));
     System::Clock::Timestamp expirationTime = state->GetExpirationTime();
     state->SetExpirationTime(expirationTime - System::Clock::Milliseconds64(1));
-    NL_TEST_ASSERT(inSuite, (expirationTime - System::Clock::Milliseconds64(1)) == state->GetExpirationTime());
+    EXPECT_EQ((expirationTime - System::Clock::Milliseconds64(1)), state->GetExpirationTime());
     mUdcClients.MarkUDCClientActive(state);
-    NL_TEST_ASSERT(inSuite, (expirationTime - System::Clock::Milliseconds64(1)) < state->GetExpirationTime());
+    EXPECT_LT((expirationTime - System::Clock::Milliseconds64(1)), state->GetExpirationTime());
 }
 
-void TestUDCClientState(nlTestSuite * inSuite, void * inContext)
+TEST_F(TestUdcMessages, TestUDCClientState)
 {
     UDCClients<3> mUdcClients;
     const char * instanceName1 = "test1";
@@ -318,56 +328,56 @@
     rotatingIdLongLen      = Encoding::HexToBytes(reinterpret_cast<const char *>(value.data()), value.size(), rotatingIdLong,
                                                   chip::Dnssd::kMaxRotatingIdLen * 2);
 
-    NL_TEST_ASSERT(inSuite, rotatingIdLongLen > chip::Dnssd::kMaxRotatingIdLen);
+    EXPECT_GT(rotatingIdLongLen, chip::Dnssd::kMaxRotatingIdLen);
 
     // test base case
     UDCClientState * state = mUdcClients.FindUDCClientState(instanceName1);
-    NL_TEST_ASSERT(inSuite, state == nullptr);
+    ASSERT_EQ(state, nullptr);
 
     // add a default state
-    NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == mUdcClients.CreateNewUDCClientState(instanceName1, &state));
+    EXPECT_EQ(CHIP_NO_ERROR, mUdcClients.CreateNewUDCClientState(instanceName1, &state));
 
     // get the state
     state = mUdcClients.FindUDCClientState(instanceName1);
-    NL_TEST_EXIT_ON_FAILED_ASSERT(inSuite, nullptr != state);
-    NL_TEST_ASSERT(inSuite, strcmp(state->GetInstanceName(), instanceName1) == 0);
+    ASSERT_NE(nullptr, state);
+    EXPECT_STREQ(state->GetInstanceName(), instanceName1);
 
     state->SetPeerAddress(chip::Transport::PeerAddress::UDP(address, port));
-    NL_TEST_ASSERT(inSuite, port == state->GetPeerAddress().GetPort());
+    EXPECT_EQ(port, state->GetPeerAddress().GetPort());
 
     state->SetDeviceName(deviceName);
-    NL_TEST_ASSERT(inSuite, strcmp(state->GetDeviceName(), deviceName) == 0);
+    EXPECT_STREQ(state->GetDeviceName(), deviceName);
 
     state->SetLongDiscriminator(longDiscriminator);
-    NL_TEST_ASSERT(inSuite, longDiscriminator == state->GetLongDiscriminator());
+    EXPECT_EQ(longDiscriminator, state->GetLongDiscriminator());
 
     state->SetVendorId(vendorId);
-    NL_TEST_ASSERT(inSuite, vendorId == state->GetVendorId());
+    EXPECT_EQ(vendorId, state->GetVendorId());
 
     state->SetProductId(productId);
-    NL_TEST_ASSERT(inSuite, productId == state->GetProductId());
+    EXPECT_EQ(productId, state->GetProductId());
 
     state->SetRotatingId(rotatingId, rotatingIdLen);
-    NL_TEST_ASSERT(inSuite, rotatingIdLen == state->GetRotatingIdLength());
+    EXPECT_EQ(rotatingIdLen, state->GetRotatingIdLength());
 
     const uint8_t * testRotatingId = state->GetRotatingId();
     for (size_t i = 0; i < rotatingIdLen; i++)
     {
-        NL_TEST_ASSERT(inSuite, testRotatingId[i] == rotatingId[i]);
+        EXPECT_EQ(testRotatingId[i], rotatingId[i]);
     }
 
     state->SetRotatingId(rotatingIdLong, rotatingIdLongLen);
 
-    NL_TEST_ASSERT(inSuite, chip::Dnssd::kMaxRotatingIdLen == state->GetRotatingIdLength());
+    EXPECT_EQ(chip::Dnssd::kMaxRotatingIdLen, state->GetRotatingIdLength());
 
     const uint8_t * testRotatingIdLong = state->GetRotatingId();
     for (size_t i = 0; i < chip::Dnssd::kMaxRotatingIdLen; i++)
     {
-        NL_TEST_ASSERT(inSuite, testRotatingIdLong[i] == rotatingIdLong[i]);
+        EXPECT_EQ(testRotatingIdLong[i], rotatingIdLong[i]);
     }
 }
 
-void TestUDCIdentificationDeclaration(nlTestSuite * inSuite, void * inContext)
+TEST_F(TestUdcMessages, TestUDCIdentificationDeclaration)
 {
     IdentificationDeclaration id;
     IdentificationDeclaration idOut;
@@ -416,25 +426,25 @@
     id.SetCommissionerPasscode(true);
     id.SetCommissionerPasscodeReady(true);
 
-    NL_TEST_ASSERT(inSuite, id.HasDiscoveryInfo());
-    NL_TEST_ASSERT(inSuite, strcmp(id.GetInstanceName(), instanceName) == 0);
-    NL_TEST_ASSERT(inSuite, vendorId == id.GetVendorId());
-    NL_TEST_ASSERT(inSuite, productId == id.GetProductId());
-    NL_TEST_ASSERT(inSuite, port == id.GetCdPort());
-    NL_TEST_ASSERT(inSuite, strcmp(id.GetDeviceName(), deviceName) == 0);
-    NL_TEST_ASSERT(inSuite, rotatingIdLen == id.GetRotatingIdLength());
-    NL_TEST_ASSERT(inSuite, memcmp(id.GetRotatingId(), rotatingId, rotatingIdLen) == 0);
-    NL_TEST_ASSERT(inSuite, pairingHint == id.GetPairingHint());
-    NL_TEST_ASSERT(inSuite, strcmp(id.GetPairingInst(), pairingInst) == 0);
+    EXPECT_TRUE(id.HasDiscoveryInfo());
+    EXPECT_STREQ(id.GetInstanceName(), instanceName);
+    EXPECT_EQ(vendorId, id.GetVendorId());
+    EXPECT_EQ(productId, id.GetProductId());
+    EXPECT_EQ(port, id.GetCdPort());
+    EXPECT_STREQ(id.GetDeviceName(), deviceName);
+    EXPECT_EQ(rotatingIdLen, id.GetRotatingIdLength());
+    EXPECT_EQ(memcmp(id.GetRotatingId(), rotatingId, rotatingIdLen), 0);
+    EXPECT_EQ(pairingHint, id.GetPairingHint());
+    EXPECT_STREQ(id.GetPairingInst(), pairingInst);
 
-    NL_TEST_ASSERT(inSuite, id.GetNumTargetAppInfos() == 3);
-    NL_TEST_ASSERT(inSuite, id.GetTargetAppInfo(0, appInfo) && appInfo.vendorId == 1 && appInfo.productId == 9);
-    NL_TEST_ASSERT(inSuite, id.GetTargetAppInfo(1, appInfo) && appInfo.vendorId == 2 && appInfo.productId == 8);
-    NL_TEST_ASSERT(inSuite, id.GetTargetAppInfo(2, appInfo) && appInfo.vendorId == 3 && appInfo.productId == 7);
-    NL_TEST_ASSERT(inSuite, id.GetNoPasscode() == true);
-    NL_TEST_ASSERT(inSuite, id.GetCdUponPasscodeDialog() == true);
-    NL_TEST_ASSERT(inSuite, id.GetCommissionerPasscode() == true);
-    NL_TEST_ASSERT(inSuite, id.GetCommissionerPasscodeReady() == true);
+    EXPECT_EQ(id.GetNumTargetAppInfos(), 3);
+    EXPECT_TRUE(id.GetTargetAppInfo(0, appInfo) && appInfo.vendorId == 1 && appInfo.productId == 9);
+    EXPECT_TRUE(id.GetTargetAppInfo(1, appInfo) && appInfo.vendorId == 2 && appInfo.productId == 8);
+    EXPECT_TRUE(id.GetTargetAppInfo(2, appInfo) && appInfo.vendorId == 3 && appInfo.productId == 7);
+    EXPECT_EQ(id.GetNoPasscode(), true);
+    EXPECT_EQ(id.GetCdUponPasscodeDialog(), true);
+    EXPECT_EQ(id.GetCommissionerPasscode(), true);
+    EXPECT_EQ(id.GetCommissionerPasscodeReady(), true);
 
     // TODO: add an ip
 
@@ -444,32 +454,32 @@
     // next, parse this object
     idOut.ReadPayload(idBuffer, sizeof(idBuffer));
 
-    NL_TEST_ASSERT(inSuite, idOut.HasDiscoveryInfo());
-    NL_TEST_ASSERT(inSuite, strcmp(idOut.GetInstanceName(), instanceName) == 0);
-    NL_TEST_ASSERT(inSuite, vendorId == idOut.GetVendorId());
-    NL_TEST_ASSERT(inSuite, productId == idOut.GetProductId());
-    NL_TEST_ASSERT(inSuite, port == idOut.GetCdPort());
-    NL_TEST_ASSERT(inSuite, strcmp(idOut.GetDeviceName(), deviceName) == 0);
-    NL_TEST_ASSERT(inSuite, rotatingIdLen == idOut.GetRotatingIdLength());
-    NL_TEST_ASSERT(inSuite, memcmp(idOut.GetRotatingId(), rotatingId, rotatingIdLen) == 0);
-    NL_TEST_ASSERT(inSuite, strcmp(idOut.GetPairingInst(), pairingInst) == 0);
-    NL_TEST_ASSERT(inSuite, pairingHint == idOut.GetPairingHint());
+    EXPECT_TRUE(idOut.HasDiscoveryInfo());
+    EXPECT_STREQ(idOut.GetInstanceName(), instanceName);
+    EXPECT_EQ(vendorId, idOut.GetVendorId());
+    EXPECT_EQ(productId, idOut.GetProductId());
+    EXPECT_EQ(port, idOut.GetCdPort());
+    EXPECT_STREQ(idOut.GetDeviceName(), deviceName);
+    EXPECT_EQ(rotatingIdLen, idOut.GetRotatingIdLength());
+    EXPECT_EQ(memcmp(idOut.GetRotatingId(), rotatingId, rotatingIdLen), 0);
+    EXPECT_STREQ(idOut.GetPairingInst(), pairingInst);
+    EXPECT_EQ(pairingHint, idOut.GetPairingHint());
 
-    NL_TEST_ASSERT(inSuite, id.GetNumTargetAppInfos() == idOut.GetNumTargetAppInfos());
-    NL_TEST_ASSERT(inSuite, idOut.GetTargetAppInfo(0, appInfo) && appInfo.vendorId == 1 && appInfo.productId == 9);
-    NL_TEST_ASSERT(inSuite, idOut.GetTargetAppInfo(1, appInfo) && appInfo.vendorId == 2 && appInfo.productId == 8);
-    NL_TEST_ASSERT(inSuite, idOut.GetTargetAppInfo(2, appInfo) && appInfo.vendorId == 3 && appInfo.productId == 7);
+    EXPECT_EQ(id.GetNumTargetAppInfos(), idOut.GetNumTargetAppInfos());
+    EXPECT_TRUE(idOut.GetTargetAppInfo(0, appInfo) && appInfo.vendorId == 1 && appInfo.productId == 9);
+    EXPECT_TRUE(idOut.GetTargetAppInfo(1, appInfo) && appInfo.vendorId == 2 && appInfo.productId == 8);
+    EXPECT_TRUE(idOut.GetTargetAppInfo(2, appInfo) && appInfo.vendorId == 3 && appInfo.productId == 7);
 
-    NL_TEST_ASSERT(inSuite, id.GetNoPasscode() == idOut.GetNoPasscode());
-    NL_TEST_ASSERT(inSuite, id.GetCdUponPasscodeDialog() == idOut.GetCdUponPasscodeDialog());
-    NL_TEST_ASSERT(inSuite, id.GetCommissionerPasscode() == idOut.GetCommissionerPasscode());
-    NL_TEST_ASSERT(inSuite, id.GetCommissionerPasscodeReady() == idOut.GetCommissionerPasscodeReady());
+    EXPECT_EQ(id.GetNoPasscode(), idOut.GetNoPasscode());
+    EXPECT_EQ(id.GetCdUponPasscodeDialog(), idOut.GetCdUponPasscodeDialog());
+    EXPECT_EQ(id.GetCommissionerPasscode(), idOut.GetCommissionerPasscode());
+    EXPECT_EQ(id.GetCommissionerPasscodeReady(), idOut.GetCommissionerPasscodeReady());
 
     // TODO: remove following "force-fail" debug line
     // NL_TEST_ASSERT(inSuite, rotatingIdLen != id.GetRotatingIdLength());
 }
 
-void TestUDCCommissionerDeclaration(nlTestSuite * inSuite, void * inContext)
+TEST_F(TestUdcMessages, TestUDCCommissionerDeclaration)
 {
     CommissionerDeclaration id;
     CommissionerDeclaration idOut;
@@ -483,12 +493,12 @@
     id.SetCommissionerPasscode(true);
     id.SetQRCodeDisplayed(true);
 
-    NL_TEST_ASSERT(inSuite, errorCode == id.GetErrorCode());
-    NL_TEST_ASSERT(inSuite, id.GetNeedsPasscode() == true);
-    NL_TEST_ASSERT(inSuite, id.GetNoAppsFound() == true);
-    NL_TEST_ASSERT(inSuite, id.GetPasscodeDialogDisplayed() == true);
-    NL_TEST_ASSERT(inSuite, id.GetCommissionerPasscode() == true);
-    NL_TEST_ASSERT(inSuite, id.GetQRCodeDisplayed() == true);
+    EXPECT_EQ(errorCode, id.GetErrorCode());
+    EXPECT_EQ(id.GetNeedsPasscode(), true);
+    EXPECT_EQ(id.GetNoAppsFound(), true);
+    EXPECT_EQ(id.GetPasscodeDialogDisplayed(), true);
+    EXPECT_EQ(id.GetCommissionerPasscode(), true);
+    EXPECT_EQ(id.GetQRCodeDisplayed(), true);
 
     uint8_t idBuffer[500];
     id.WritePayload(idBuffer, sizeof(idBuffer));
@@ -496,75 +506,10 @@
     // next, parse this object
     idOut.ReadPayload(idBuffer, sizeof(idBuffer));
 
-    NL_TEST_ASSERT(inSuite, errorCode == idOut.GetErrorCode());
-    NL_TEST_ASSERT(inSuite, id.GetNeedsPasscode() == idOut.GetNeedsPasscode());
-    NL_TEST_ASSERT(inSuite, id.GetNoAppsFound() == idOut.GetNoAppsFound());
-    NL_TEST_ASSERT(inSuite, id.GetPasscodeDialogDisplayed() == idOut.GetPasscodeDialogDisplayed());
-    NL_TEST_ASSERT(inSuite, id.GetCommissionerPasscode() == idOut.GetCommissionerPasscode());
-    NL_TEST_ASSERT(inSuite, id.GetQRCodeDisplayed() == idOut.GetQRCodeDisplayed());
+    EXPECT_EQ(errorCode, idOut.GetErrorCode());
+    EXPECT_EQ(id.GetNeedsPasscode(), idOut.GetNeedsPasscode());
+    EXPECT_EQ(id.GetNoAppsFound(), idOut.GetNoAppsFound());
+    EXPECT_EQ(id.GetPasscodeDialogDisplayed(), idOut.GetPasscodeDialogDisplayed());
+    EXPECT_EQ(id.GetCommissionerPasscode(), idOut.GetCommissionerPasscode());
+    EXPECT_EQ(id.GetQRCodeDisplayed(), idOut.GetQRCodeDisplayed());
 }
-
-// Test Suite
-
-/**
- *  Test Suite that lists all the test functions.
- */
-// clang-format off
-static const nlTest sTests[] =
-{
-    NL_TEST_DEF("TestUDCServerClients", TestUDCServerClients),
-    NL_TEST_DEF("TestUDCServerUserConfirmationProvider", TestUDCServerUserConfirmationProvider),
-    // the following test case is not reliable (fails on mac, clang platforms for example)
-    // NL_TEST_DEF("TestUDCServerInstanceNameResolver", TestUDCServerInstanceNameResolver),
-    NL_TEST_DEF("TestUserDirectedCommissioningClientMessage", TestUserDirectedCommissioningClientMessage),
-    NL_TEST_DEF("TestUDCClients", TestUDCClients),
-    NL_TEST_DEF("TestUDCClientState", TestUDCClientState),
-    NL_TEST_DEF("TestUDCIdentificationDeclaration", TestUDCIdentificationDeclaration),
-    NL_TEST_DEF("TestUDCCommissionerDeclaration", TestUDCCommissionerDeclaration),
-
-    NL_TEST_SENTINEL()
-};
-// clang-format on
-
-/**
- *  Set up the test suite.
- */
-static int TestSetup(void * inContext)
-{
-    CHIP_ERROR error = chip::Platform::MemoryInit();
-    if (error != CHIP_NO_ERROR)
-        return FAILURE;
-    return SUCCESS;
-}
-
-/**
- *  Tear down the test suite.
- */
-static int TestTeardown(void * inContext)
-{
-    chip::Platform::MemoryShutdown();
-    return SUCCESS;
-}
-
-// clang-format off
-static nlTestSuite sSuite =
-{
-    "Test-CHIP-UdcMessages",
-    &sTests[0],
-    TestSetup,
-    TestTeardown,
-};
-// clang-format on
-
-/**
- *  Main
- */
-int TestUdcMessages()
-{
-    // Run test suit against one context
-    nlTestRunner(&sSuite, nullptr);
-
-    return (nlTestRunnerStats(&sSuite));
-}
-
-CHIP_REGISTER_TEST_SUITE(TestUdcMessages)
diff --git a/src/test_driver/openiotsdk/unit-tests/test_components.txt b/src/test_driver/openiotsdk/unit-tests/test_components.txt
index 4a61ab8..bb10830 100644
--- a/src/test_driver/openiotsdk/unit-tests/test_components.txt
+++ b/src/test_driver/openiotsdk/unit-tests/test_components.txt
@@ -14,3 +14,4 @@
 TestShell
 SetupPayloadTests
 SupportTests
+UserDirectedCommissioningTests
diff --git a/src/test_driver/openiotsdk/unit-tests/test_components_nl.txt b/src/test_driver/openiotsdk/unit-tests/test_components_nl.txt
index 64f1862..de9e40d 100644
--- a/src/test_driver/openiotsdk/unit-tests/test_components_nl.txt
+++ b/src/test_driver/openiotsdk/unit-tests/test_components_nl.txt
@@ -7,4 +7,3 @@
 SetupPayloadTestsNL
 SupportTestsNL
 TransportLayerTests
-UserDirectedCommissioningTests
\ No newline at end of file