Skip to content

Commit

Permalink
Replace nl-unit-test with pigweed for protocols/secure_channel (#33499)
Browse files Browse the repository at this point in the history
* secure channel tests to pigweed

* Remove nlunit tests dependency

* Update conversion to pigweed

* Relocate class

* Revert old implementation

* Restore

* Move definition of TEST_F_FROM_FIXTURE to UnitTest

* Fix test error

* Add missing deps

* Revert order change

* Restyle

* Revert

* Add missing header

* Add UnitTestPigweedUtils

* IoT SDK update tests list

* Remove unused define

* Change target type

* license

* Assert

* rollback

* cleanup

* Change function to method

* Restyle

* Fix dependency between tests

* Fix merge

* Fix

* Review fix

* Fix typo

* Fix review issues

* Fix review issues
  • Loading branch information
jlatusek authored Jun 4, 2024
1 parent f350172 commit 3cc96a1
Show file tree
Hide file tree
Showing 15 changed files with 694 additions and 1,117 deletions.
1 change: 0 additions & 1 deletion src/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ if (chip_build_tests) {
"${chip_root}/src/lib/format/tests",
"${chip_root}/src/lib/support/tests",
"${chip_root}/src/protocols/secure_channel/tests",
"${chip_root}/src/protocols/secure_channel/tests:tests_nltest",
"${chip_root}/src/system/tests",
"${chip_root}/src/transport/tests",
]
Expand Down
9 changes: 9 additions & 0 deletions src/lib/support/tests/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,15 @@ import("//build_overrides/pigweed.gni")

import("${chip_root}/build/chip/chip_test_suite.gni")

pw_source_set("pw-test-macros") {
output_dir = "${root_out_dir}/lib"
public_deps = [
"$dir_pw_log:impl",
"$dir_pw_unit_test",
]
sources = [ "ExtraPwTestMacros.h" ]
}

chip_test_suite("tests") {
output_name = "libSupportTests"

Expand Down
56 changes: 56 additions & 0 deletions src/lib/support/tests/ExtraPwTestMacros.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
*
* Copyright (c) 2024 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once

/*
* Run Fixture's class function as a test.
* It is used to execute test cases that need to use private members of a particular class.
* Unlike the pigweed macro `FRIEND_TEST`, this approach allows you to define the entire
* test_fixture class as a friend, rather than having to define each testcase as a friend.
*
* @param test_fixture - the fixture class.
*
* @param test_name - the name of the test function.
*
* Example:
* class Foo // class to be tested
* {
* friend class TestCtx;
* private:
* bool privateFunction();
* };
*
* class TestCtx: public ::testing::Test
* {
* public:
* void testFunction();
* };
*
* TEST_F_FROM_FIXTURE(TestCtx, testFunction)
* {
* Foo foo;
* EXPECT_TRUE(foo.privateFunction());
* }
*
*/
#define TEST_F_FROM_FIXTURE(test_fixture, test_name) \
TEST_F(test_fixture, test_name) \
{ \
test_name(); \
} \
void test_fixture::test_name()
38 changes: 9 additions & 29 deletions src/protocols/secure_channel/tests/BUILD.gn
Original file line number Diff line number Diff line change
@@ -1,39 +1,15 @@
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")
import("${chip_root}/src/app/icd/icd.gni")

chip_test_suite("tests") {
output_name = "libSecureChannelTests"

test_sources = [
"TestCASESession.cpp",
"TestCheckInCounter.cpp",
"TestCheckinMsg.cpp",
]

sources = [ "CheckIn_Message_test_vectors.h" ]

cflags = [ "-Wconversion" ]
public_deps = [
"${chip_root}/src/app/icd/server:icd-server-config",
"${chip_root}/src/credentials/tests:cert_test_vectors",
"${chip_root}/src/lib/core",
"${chip_root}/src/lib/support",
"${chip_root}/src/lib/support:test_utils",
"${chip_root}/src/lib/support:testing",
"${chip_root}/src/protocols/secure_channel",
"${chip_root}/src/protocols/secure_channel:check-in-counter",
"${dir_pw_unit_test}",
]
}

chip_test_suite_using_nltest("tests_nltest") {
# Renamed ouput during the transition away from nltest
output_name = "libSecureChannelTestsNL"

test_sources = [
"TestCASESession.cpp",
"TestDefaultSessionResumptionStorage.cpp",
"TestPASESession.cpp",
"TestPairingSession.cpp",
Expand All @@ -44,22 +20,26 @@ chip_test_suite_using_nltest("tests_nltest") {
# "TestMessageCounterManager.cpp",
]

sources = [ "CheckIn_Message_test_vectors.h" ]

cflags = [ "-Wconversion" ]
public_deps = [
"${chip_root}/src/app/icd/server:icd-server-config",
"${chip_root}/src/credentials/tests:cert_test_vectors",
"${chip_root}/src/crypto/tests:tests.lib",
"${chip_root}/src/lib/core",
"${chip_root}/src/lib/support",
"${chip_root}/src/lib/support:test_utils",
"${chip_root}/src/lib/support:testing",
"${chip_root}/src/lib/support:testing_nlunit",
"${chip_root}/src/lib/support/tests:pw-test-macros",
"${chip_root}/src/messaging/tests:helpers",
"${chip_root}/src/protocols",
"${chip_root}/src/protocols/secure_channel",
"${chip_root}/src/protocols/secure_channel:check-in-counter",
"${chip_root}/src/transport/raw/tests:helpers",
"${nlunit_test_root}:nlunit-test",
"${dir_pw_unit_test}",
]

cflags = [ "-Wconversion" ]

if (chip_enable_icd_server) {
public_deps += [ "${chip_root}/src/app/icd/server:configuration-data" ]
}
Expand Down
Loading

0 comments on commit 3cc96a1

Please sign in to comment.