Skip to content

Commit

Permalink
Merge branch 'master' into patch-19
Browse files Browse the repository at this point in the history
  • Loading branch information
lboue authored Feb 26, 2024
2 parents b953a15 + 8f2a4d2 commit 6481e2e
Show file tree
Hide file tree
Showing 248 changed files with 9,340 additions and 1,289 deletions.
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Checks: >
-clang-analyzer-cplusplus.Move,
-clang-analyzer-deadcode.DeadStores,
-clang-analyzer-nullability.NullablePassedToNonnull,
-clang-analyzer-optin.core.EnumCastOutOfRange,
-clang-analyzer-optin.cplusplus.UninitializedObject,
-clang-analyzer-optin.cplusplus.VirtualCall,
-clang-analyzer-optin.osx.cocoa.localizability.EmptyLocalizationContextChecker,
Expand Down
32 changes: 1 addition & 31 deletions .github/.wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,19 @@ abfb
ABI
ABIs
ables
AccessControl
AccessControlEntry
accesscontrol
accessor
Accessors
AccountLogin
acdbc
ack
ACKed
ACL
ACLs
actdiag
AdapterAddress
AdapterName
adb
AddNOC
AddOrUpdateThreadNetwork
AddOrUpdateWiFiNetwork
addr
AddResponse
AddThreadNetwork
AddStatus
adk
AdministratorCommissioning
adoc
adr
AdvAutonomous
Expand All @@ -48,7 +38,6 @@ AE
aef
AES
AIDL
AlarmCode
algs
alloc
Ameba
Expand All @@ -61,15 +50,12 @@ AnnounceOTAProvider
AnnounceOTAProviderRequest
APIs
apk
AppConfig
AppImpl
AppleTV
appliable
ApplianceControl
applianceeventsandalert
ApplianceIdentification
appliancestatistics
ApplicationBasic
ApplicationId
ApplicationIdentifier
ApplicationLauncher
Expand Down Expand Up @@ -171,7 +157,6 @@ BRD
breakpoint
bredr
BridgedDeviceBasicInformation
bridgedLightEndpoint
bringup
BroadcastReceiver
BromateConcentrationMeasurement
Expand Down Expand Up @@ -259,9 +244,6 @@ CLIs
cloudbuild
CLRF
clusterAttrs
clusterId
clusterList
clusterListName
ClusterName
ClusterObjectTests
ClusterRevision
Expand Down Expand Up @@ -315,7 +297,6 @@ ContentApp's
ContentAppPlatform
ContentLaunch
ContentLauncher
continuousHinting
contrib
controllee
conv
Expand Down Expand Up @@ -382,7 +363,6 @@ DefaultOTARequestor
DefaultOTARequestorDriver
DefaultOTARequestorStorage
DefaultSuccess
defaultValue
definedValue
DehumidificationControl
DelayedActionTime
Expand Down Expand Up @@ -415,9 +395,7 @@ DeviceLayer
DeviceNetworkProvisioningDelegate
DeviceNetworkProvisioningDelegateImpl
DevicePairingDelegate
deviceSoftwareVersionModel
DeviceTemperatureConfiguration
deviceType
DevKitC
DevKitM
devtype
Expand Down Expand Up @@ -511,8 +489,6 @@ EnableNetwork
EnableWiFiNetwork
endian
EndpointId
endpointName
endsWith
eno
entrypoint
enum
Expand Down Expand Up @@ -580,7 +556,6 @@ FlowMeasurement
FluorideConcentrationMeasurement
focusable
forkpty
formatOnSave
FOTA
FreeRTOS
FreeRTOSConfig
Expand Down Expand Up @@ -614,7 +589,6 @@ GetIP
getManualTests
GetSafeAttributePersistenceProvider
getstarted
getTests
GH
ghcr
ghp
Expand All @@ -639,8 +613,6 @@ graphviz
Groupcast
GroupId
GroupKeyManagement
groupKeySecurityPolicy
groupKeySetID
groupsettings
gsdk
gtk
Expand Down Expand Up @@ -694,8 +666,6 @@ ifconfig
ifdef
ifdefs
IGMP
ignoreApplyUpdate
ignoreQueryImage
ihex
IlluminanceMeasurement
IM
Expand Down
18 changes: 7 additions & 11 deletions .github/workflows/darwin.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -105,19 +105,15 @@ jobs:
mkdir -p /tmp/darwin/framework-tests
../../../out/debug/chip-all-clusters-app --interface-id -1 > >(tee /tmp/darwin/framework-tests/all-cluster-app.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-err.log >&2) &
../../../out/debug/chip-all-clusters-app --interface-id -1 --dac_provider ../../../credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json --product-id 32768 --discriminator 3839 --secured-device-port 5539 --KVS /tmp/chip-all-clusters-app-kvs2 > >(tee /tmp/darwin/framework-tests/all-cluster-app-origin-vid.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-origin-vid-err.log >&2) &
# Disable BLE because the app does not have the permission to use
# it and that may crash the CI.
#
# -enableUndefinedBehaviorSanitizer instruments the code in Matter.framework,
# but to instrument the code in the underlying libCHIP we need to pass CHIP_IS_UBSAN=YES
TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_UBSAN=YES CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1'> >(tee /tmp/darwin/framework-tests/darwin-tests-asan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-err.log >&2)
# Disable BLE (CHIP_IS_BLE=NO) because the app does not have the permission to use it and that may crash the CI.
TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1'> >(tee /tmp/darwin/framework-tests/darwin-tests-asan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-err.log >&2)
# And the same thing, but with MTR_PER_CONTROLLER_STORAGE_ENABLED turned off, so we test that it does not break for now.
TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_UBSAN=YES CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1 MTR_PER_CONTROLLER_STORAGE_ENABLED=0' > >(tee /tmp/darwin/framework-tests/darwin-tests-asan-controller-storage.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-controller-storage-err.log >&2)
TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1 MTR_PER_CONTROLLER_STORAGE_ENABLED=0' > >(tee /tmp/darwin/framework-tests/darwin-tests-asan-controller-storage.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-controller-storage-err.log >&2)
# And the same thing, but with MTR_NO_AVAILABILITY not turned on. This requires -Wno-unguarded-availability-new to avoid availability errors.
TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-unguarded-availability-new' CHIP_IS_UBSAN=YES CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited}' > >(tee /tmp/darwin/framework-tests/darwin-tests-asan-with-availability-annotations.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-with-availability-annotations-err.log >&2)
# -enableThreadSanitizer instruments the code in Matter.framework,
# but to instrument the code in the underlying libCHIP we need to pass CHIP_IS_TSAN=YES
xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableThreadSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_TSAN=YES CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' > >(tee /tmp/darwin/framework-tests/darwin-tests-tsan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-tsan-err.log >&2)
TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-unguarded-availability-new' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited}' > >(tee /tmp/darwin/framework-tests/darwin-tests-asan-with-availability-annotations.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-with-availability-annotations-err.log >&2)
xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableThreadSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' > >(tee /tmp/darwin/framework-tests/darwin-tests-tsan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-tsan-err.log >&2)
working-directory: src/darwin/Framework
- name: Build Matter TV Casting Bridge
run: |
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,11 @@ jobs:
--known-failure app/att-storage.h \
--known-failure app/CommandHandler.h \
--known-failure app/CommandHandlerInterface.h \
--known-failure app/CommandSender.h \
--known-failure app/CommandSenderLegacyCallback.h \
--known-failure app/CompatEnumNames.h \
--known-failure app/data-model/ListLargeSystemExtensions.h \
--known-failure app/EventHeader.h \
--known-failure app/EventLoggingTypes.h \
--known-failure app/InteractionModelHelper.h \
--known-failure app/ReadClient.h \
--known-failure app/ReadHandler.h \
--known-failure app/ReadPrepareParams.h \
--known-failure app/reporting/tests/MockReportScheduler.cpp \
Expand Down Expand Up @@ -132,7 +129,6 @@ jobs:
--known-failure app/util/odd-sized-integers.h \
--known-failure app/util/util.cpp \
--known-failure app/util/util.h \
--known-failure app/WriteClient.h \
--known-failure app/WriteHandler.h \
--known-failure lib/core/CHIPVendorIdentifiers.hpp \
--known-failure platform/DeviceSafeQueue.cpp \
Expand Down
21 changes: 11 additions & 10 deletions .github/workflows/spell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,20 @@ on:
- ".github/.wordlist.txt"

jobs:
check-reviewdog:
name: Check Spelling - reviewdog
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: reviewdog/action-misspell@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Seems redundant; removed as pyspelling is customized while this is not
# check-reviewdog:
# name: Check Spelling - reviewdog
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - uses: reviewdog/action-misspell@v1
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
check-spellcheck:
name: Check Spelling - pyspelling
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: igsekor/[email protected]
- uses: rojopolis/[email protected]
1 change: 1 addition & 0 deletions .spellcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,4 @@ matrix:
- '**/*.md|!third_party/**|!examples/common/**/repo/**|!docs/ERROR_CODES.md|!docs/clusters.md|!docs/testing/yaml_schema.md|!docs/testing/yaml_pseudocluster.md'
aspell:
ignore-case: true
camel-case: true
2 changes: 2 additions & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,9 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") {
deps += [
"${chip_root}/src/app/server/java",
"${chip_root}/src/controller/java",
"${chip_root}/src/controller/java:jsontlv",
"${chip_root}/src/controller/java:onboarding_payload",
"${chip_root}/src/controller/java:tlv",
"${chip_root}/src/platform/android:java",
]
}
Expand Down
5 changes: 5 additions & 0 deletions build/config/compiler/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -395,11 +395,16 @@ declare_args() {
}

config("sanitize_address") {
defines = []
cflags = [
"-fsanitize=address",
"-fno-omit-frame-pointer",
]
ldflags = cflags

if (target_os == "mac" || target_os == "ios") {
defines += [ "_LIBCPP_HAS_NO_ASAN" ]
}
}

config("sanitize_thread") {
Expand Down
19 changes: 19 additions & 0 deletions config/esp32/components/chip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,25 @@ endif()

if(CONFIG_ENABLE_ICD_SERVER)
chip_gn_arg_append("chip_enable_icd_server" "true")
if(CONFIG_ICD_ENFORCE_SIT_SLOW_POLL_LIMIT)
chip_gn_arg_append("icd_enforce_sit_slow_poll_limit" "true")
endif()
if(CONFIG_ICD_REPORT_ON_ACTIVE_MODE)
chip_gn_arg_append("chip_icd_report_on_active_mode" "true")
endif()
if(CONFIG_ENABLE_ICD_LIT)
chip_gn_arg_append("chip_enable_icd_lit" "true")
if(CONFIG_ENABLE_ICD_CIP)
chip_gn_arg_append("chip_enable_icd_checkin" "true")
else()
chip_gn_arg_append("chip_enable_icd_checkin" "false")
endif()
if(CONFIG_ENABLE_ICD_USER_ACTIVE_MODE_TRIGGER)
chip_gn_arg_append("chip_enable_icd_user_active_mode_trigger" "true")
else()
chip_gn_arg_append("chip_enable_icd_user_active_mode_trigger" "false")
endif()
endif()
endif()

if(CONFIG_ENABLE_PW_RPC)
Expand Down
52 changes: 50 additions & 2 deletions config/esp32/components/chip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -340,13 +340,27 @@ menu "CHIP Device Layer"
help
Enables or Disables the support for Commissionable Device Type.

config ENABLE_ICD_SERVER
menuconfig ENABLE_ICD_SERVER
bool "Enable ICD server"
depends on OPENTHREAD_MTD
default n
help
Enables or Disables ICD server

config ICD_ENFORCE_SIT_SLOW_POLL_LIMIT
bool "Enforce SIT Slow Polling Max value to 15 seconds"
depends on ENABLE_ICD_SERVER
default n
help
Set to true to enforce SIT Slow Polling Max value to 15seconds

config ICD_REPORT_ON_ACTIVE_MODE
bool "Emit a report on entering active mode"
depends on ENABLE_ICD_SERVER
default n
help
Make the ICD manager emit a report on entering active mode

config ICD_SLOW_POLL_INTERVAL_MS
int "ICD Slow Polling Interval(ms)"
depends on ENABLE_ICD_SERVER
Expand Down Expand Up @@ -389,14 +403,48 @@ menu "CHIP Device Layer"
This value indicates the minimum amount of time in milliseconds the server typically
will stay active after network activity when in active mode.

config ENABLE_ICD_LIT
bool "Enable Long Idle Time ICD"
depends on ENABLE_ICD_SERVER
default n
help
Enables or Disables LIT ICD

config ENABLE_ICD_CIP
bool "Enable Check-in protocol"
depends on ENABLE_ICD_LIT
default y
help
Enables or Disables ICD Check-in protocol

config ICD_CLIENTS_SUPPORTED_PER_FABRIC
int "ICD Clients Number Supported Per Fabric"
depends on ENABLE_ICD_SERVER
depends on ENABLE_ICD_CIP
default 1
help
This value indicates the maximum number of entries that the ICD server is able to store
for each fabric in the RegisteredClients attribute.

config ICD_MAX_NOTIFICATION_SUBSCRIBERS
int "Max ICD notification subscribers"
depends on ENABLE_ICD_SERVER
default 1
help
The ICDManager implements the ICDListener functions and is always subscribed to the ICDNotifier
This allows other Matter modules to inform the ICDManager that it needs to go and may have to stay in Active Mode,
outside of its standard ActiveModeDuration and IdleModeDuration, without being tightly coupled the application
data model

This implementation also allows other modules to implement an ICDListener and subscribe to ICDNotifier
to couple behaviours with the ICD cycles. In such cases, ICD_MAX_NOTIFICATION_SUBSCRIBERS need to be adjusted

config ENABLE_ICD_USER_ACTIVE_MODE_TRIGGER
bool "Enable User Active Mode Trigger feature"
depends on ENABLE_ICD_LIT
default y
help
Enables or Disables ICD User Active Mode Trigger feature

config ENABLE_BG_EVENT_PROCESSING
bool "Enable Background event processing"
default n
Expand Down
Loading

0 comments on commit 6481e2e

Please sign in to comment.