Skip to content

Commit c11bca8

Browse files
Jerry-ESPDamian-Nordicwqx6restyled-commitsshubhamdp
authored
[v1.2-branch][ESP32][cherry-pick]Cherry pick some necessary fixes for v1.2-branch (#33161)
* [1.1] Cherry pick Thread DNS client and memory leak fixes (#31457) * [app] Fix DeferredAttributePersister memory leak (#31075) * [app] Fix DeferredAttributePerister memory leak ScopedMemoryBuffer's Release() method was used instead of Free(). Add CHECK_RETURN_VALUE annotation to the Release() method to prevent from making such a mistake in the future. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> * Code review --------- Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> (cherry picked from commit 3e8aeeb) * [OpenThread] Harden DNS record parsing (#31227) OpenThread applications would crash upon receiving an empty DNS TXT record. The reason was that the code for copying OT DNS service info object into Matter DnssdService object would not initialize the TXT entry count in the latter object in such a case. In the reported case, the Matter stack was presented an empty TXT record because OpenThread's DNS client received a TXT record with TTL 0 and it discarded its contents. Nevertheless, the issue could be reproduced by publishing Matter service without TXT entries and kicking off DNS query. 1. Initialize the TXT entry and subtype count properly in all scenarios. 2. Do not even process the service info object if an error was returned by OpenThread before. 3. Extract some boilerplate to a separate function to improve readability. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> (cherry picked from commit 76b6bb5) * ESP32: Add EndpointQueueFilter for ESP32 platform (#31440) * Add EndpointQueueFilter for ESP32 platform * Restyled by clang-format * Restyled by gn * fix compile error when disabling inet ipv4 * review changes * Restyled by clang-format * review changes * review changes --------- Co-authored-by: Restyled.io <commits@restyled.io> * [ESP32] Limit number of returned WiFi scan results to configured limit (#30780) Scan results are allocated on the heap and on a resource critical device where heap is less, this may fail if there are a lot of APs in the vicinity. * [ESP32] Fix the threading issue in nimble (#29180) * [ESP32] Fix the threading issue in nimble Send ble connection error than executing in nimble thread context * comment explaining why we are posting connection error event * Adding a comment for kCHIPoBLEConnectionError * IM: Create ReadHandler after Session Establishment for Subscription Resumption (#30491) * IM: Create ReadHandler after Session Establishment for Subscription Resumption * Restyled by clang-format * Make SubscriptionResumptionHelper inherits from SubscriptionInfo * review changes * Rename Helper to SessionEstablisher * Restyled by clang-format * RAII changes * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io> * [ESP32] Fix adding NDEBUG flag to CPPFLAGS (#30763) In esp-idf, NDEBUG flag is added to CPPFLAGS only if assertions are disabled. Making this inline to that. * Add records of session establishment for subscription resumption (#31755) * Add records of session establishment for subscription resumption * Restyled by clang-format * review changes * Schedule subscription resumption when failing to establish the session in SubscriptionResumptionSessionEstablisher * Add option to set subscription timeout resumption retry interval seconds for Linux app Add cirque test for subscription resumption timeout * Restyled by clang-format * Restyled by autopep8 * Restyled by isort * fix CI building * Add test to the test list * add subscription resumption restries number to SubscriptionInfo struct * review changes * make resumption retries persistent * Restyled by clang-format * ci build fixes * try to fix cirque test --------- Co-authored-by: Restyled.io <commits@restyled.io> * ESP32: check ap info in IsStationConnected (#31438) * Add checks for mOTInst in GenericThreadStackManagerImpl_OpenThread (#32482) * Add checks for mOTInst in GenericThreadStackManagerImpl_OpenThread * review changes * [ESP32] Fix few attributes with fixed quality in DeviceInfoProvider (#32893) * [ESP32] Fix few attributes with fixed quality in DeviceInfoProvider Fixed labels, supported locales, supported calendar types were being read from the nvs(flash) and during OTA its a hassle if one wants to upgrade these values. Added few APIs to set the data for these attributes in ESP32DeviceInfoProvider. * Restyled by clang-format * Restyled by prettier-markdown * fix the lint errors * Add back the original Device info provider which reads from the nvs Add StaticESP32DeviceInfoProvider along with APIs to set data Remove changes from example and add a guide along with usage --------- Co-authored-by: Restyled.io <commits@restyled.io> * Implement BLE Manager Shutdown for nimble host (#33109) * [ESP32] Implement BLE Manager Shutdown for nimble host - Replace ble deinit imple in Esp32AppServer with BLEMgr().Shutdown() - Replace few ESP_LOG with ChipLog in Esp32AppServer - Move ble deinit kCommissioningComplete switch case - Make USE_BLE_ONLY_FOR_COMMISSIONING depends on BT_ENABLED * Restyled by clang-format * address reviews * Add checks for timer handler --------- Co-authored-by: Restyled.io <commits@restyled.io> * [ESP32] Made a provision to generate esp_secure_cert partition in factory partition script. (#29840) * Made a provision to generate esp_secure_cert partition in factory partition script. - Added the provision to generate esp_secure_cert_partition based on option --dac-in-secure-cert. - Refactored some code of the existing script - made it more modular. * made outdir user governed * Added the support for onboarding paylaod in factory script (#31274) --------- Co-authored-by: Damian Królik <66667989+Damian-Nordic@users.noreply.github.com> Co-authored-by: Wang Qixiang <43193572+wqx6@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Shubham Patil <shubham.patil@espressif.com> Co-authored-by: shripad621git <79364691+shripad621git@users.noreply.github.com>
1 parent d3e48c6 commit c11bca8

38 files changed

+1455
-352
lines changed

config/esp32/components/chip/CMakeLists.txt

+1-4
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,9 @@ if(NOT "${IDF_TARGET}" STREQUAL "esp32h2")
3838
endif()
3939

4040
if (NOT CMAKE_BUILD_EARLY_EXPANSION)
41-
if (CONFIG_COMPILER_OPTIMIZATION_DEFAULT OR CONFIG_COMPILER_OPTIMIZATION_NONE)
41+
if (CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
4242
set(is_debug TRUE)
4343
else()
44-
if (NOT CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
45-
message(FATAL_ERROR "CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE shall be set")
46-
endif()
4744
set(is_debug FALSE)
4845
endif()
4946
endif()

config/esp32/components/chip/Kconfig

+14-6
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,13 @@ menu "CHIP Core"
186186
help
187187
Enable this option to use LwIP default IPv6 route hook for Route Information Option(RIO) feature.
188188

189+
config ENABLE_ENDPOINT_QUEUE_FILTER
190+
bool "Enable UDP Endpoint queue filter for mDNS Broadcast packets"
191+
depends on USE_MINIMAL_MDNS
192+
default y
193+
help
194+
Enable this option to start a UDP Endpoint queue filter for mDNS Broadcast packets
195+
189196
config ENABLE_LWIP_THREAD_SAFETY
190197
bool "Enable LwIP Thread safety options"
191198
default y
@@ -625,12 +632,13 @@ menu "CHIP Device Layer"
625632
When set, WoBLE advertisements will stop while a WoBLE connection is active.
626633

627634
config USE_BLE_ONLY_FOR_COMMISSIONING
628-
bool "Use BLE only for commissioning"
629-
default y
630-
help
631-
Disable this flag if BLE is used for any other purpose than commissioning.
632-
When enabled, it deinitialized the BLE on successful commissioning, and on
633-
bootup do not initialize the BLE if device is already provisioned with Wi-Fi/Thread credentials.
635+
depends on BT_ENABLED
636+
bool "Use BLE only for commissioning"
637+
default y
638+
help
639+
Disable this flag if BLE is used for any other purpose than commissioning.
640+
When enabled, it deinitialized the BLE on successful commissioning, and on
641+
bootup do not initialize the BLE if device is already provisioned with Wi-Fi/Thread credentials.
634642

635643
endmenu
636644

docs/guides/esp32/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ example on ESP32 series of SoCs
1818
- [Matter OTA](ota.md)
1919
- [Generating and Using ESP Secure Cert Partition](secure_cert_partition.md)
2020
- [BLE Settings](ble_settings.md)
21+
- [Providers](providers.md)

docs/guides/esp32/factory_data.md

+3-7
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,9 @@ Following data can be added to the manufacturing partition using
3030
- Serial Number
3131
- Unique identifier
3232

33-
- Device information
34-
- Fixed Labels
35-
- Supported locales
36-
- Supported calendar types
37-
- Supported modes
38-
- Note: As per spec at max size of label should be 64 and `\0` will be
39-
added at the end.
33+
- Supported modes
34+
- Note: As per spec at max size of label should be 64 and `\0` will be
35+
added at the end.
4036

4137
### Configuration Options
4238

docs/guides/esp32/providers.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
## Providers Implemented for ESP32 Platform
2+
3+
The ESP32 platform has implemented several providers that can be used with data
4+
stored in the factory or by setting fixed data.
5+
6+
Below are the providers that have been implemented:
7+
8+
- [Commissionable Data Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L47)
9+
This provider reads the discriminator and setup pincode related parameters
10+
from the factory partition.
11+
- [Device Attestation Credentials Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L56)
12+
This provider manages the attestation data.
13+
- [Device Instance Info Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L86)
14+
This provider reads basic device information from the factory partition.
15+
- [Device Info Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32DeviceInfoProvider.h#L31)
16+
This provider provides fixed labels, supported calendar types, and supported
17+
locales from the factory partition.
18+
- [Supported Modes](https://github.com/project-chip/connectedhomeip/blob/master/examples/platform/esp32/mode-support/static-supported-modes-manager.h#L28)
19+
This provider offers the supported modes for the mode-select cluster.
20+
21+
More information can be found in the [factory data guide](factory_data.md).
22+
23+
### Device Info Provider
24+
25+
Currently, there are two implementations for this provider:
26+
27+
1. [Reads data stored in the factory partition](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L56)
28+
_(This will be deprecated in the future)_
29+
2. [Provides APIs to set fixed data that gets read later](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/StaticESP32DeviceInfoProvider.h)
30+
31+
- New products should use the `StaticESP32DeviceInfoProvider`. Utilize the
32+
`Set...()` APIs to set the fixed data.
33+
- Existing products using the first implementation can continue to use it if
34+
they do not wish to change the data.
35+
- For products using the first implementation and wanting to change the fixed
36+
data via OTA, they should switch to the second implementation in the OTA
37+
image and use the `Set...()` APIs to set the fixed data.
38+
39+
#### Example:
40+
41+
```cpp
42+
#include <platform/ESP32/StaticESP32FactoryDataProvider.h>
43+
44+
DeviceLayer::StaticESP32DeviceInfoProvider deviceInfoProvider;
45+
46+
// Define array for Supported Calendar Types
47+
using namespace chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum;
48+
CalendarTypeEnum supportedCalendarTypes[] = {
49+
CalendarTypeEnum::kGregorian, CalendarTypeEnum::kCoptic,
50+
CalendarTypeEnum::kEthiopian, CalendarTypeEnum::kChinese,
51+
};
52+
53+
// Define array for Supported Locales
54+
const char* supportedLocales[] = {
55+
"en-US",
56+
"en-EU",
57+
};
58+
59+
// Define array for Fixed labels { EndpointId, Label, Value }
60+
struct StaticESP32DeviceInfoProvider::FixedLabelEntry fixedLabels[] = {
61+
{ 0, "Room", "Bedroom 2" },
62+
{ 0, "Orientation", "North" },
63+
{ 0, "Direction", "Up" },
64+
};
65+
66+
Span<CalendarTypeEnum> sSupportedCalendarTypes(supportedCalendarTypes);
67+
Span<const char*> sSupportedLocales(supportedLocales);
68+
Span<StaticESP32DeviceInfoProvider::FixedLabelEntry> sFixedLabels(fixedLabels);
69+
70+
{
71+
deviceInfoProvider.SetSupportedLocales(sSupportedLocales);
72+
deviceInfoProvider.SetSupportedCalendarTypes(sSupportedCalendarTypes);
73+
deviceInfoProvider.SetFixedLabels(sFixedLabels);
74+
DeviceLayer::SetDeviceInfoProvider(&deviceInfoProvider);
75+
}
76+
```

examples/platform/esp32/common/CommonDeviceCallbacks.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ void CommonDeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, i
5151

5252
case DeviceEventType::kCHIPoBLEConnectionClosed:
5353
ESP_LOGI(TAG, "CHIPoBLE disconnected");
54-
Esp32AppServer::DeInitBLEIfCommissioned();
5554
break;
5655

5756
case DeviceEventType::kDnssdInitialized:
@@ -67,6 +66,7 @@ void CommonDeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, i
6766

6867
case DeviceEventType::kCommissioningComplete: {
6968
ESP_LOGI(TAG, "Commissioning complete");
69+
Esp32AppServer::DeInitBLEIfCommissioned();
7070
}
7171
break;
7272

examples/platform/esp32/common/Esp32AppServer.cpp

+5-39
Original file line numberDiff line numberDiff line change
@@ -115,46 +115,12 @@ static size_t hex_string_to_binary(const char * hex_string, uint8_t * buf, size_
115115

116116
void Esp32AppServer::DeInitBLEIfCommissioned(void)
117117
{
118-
#if CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
118+
#ifdef CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING
119119
if (chip::Server::GetInstance().GetFabricTable().FabricCount() > 0)
120120
{
121-
esp_err_t err = ESP_OK;
122-
123-
#if CONFIG_BT_NIMBLE_ENABLED
124-
if (!ble_hs_is_enabled())
125-
{
126-
ESP_LOGI(TAG, "BLE already deinited");
127-
return;
128-
}
129-
if (nimble_port_stop() != 0)
130-
{
131-
ESP_LOGE(TAG, "nimble_port_stop() failed");
132-
return;
133-
}
134-
vTaskDelay(100);
135-
nimble_port_deinit();
136-
137-
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0)
138-
err = esp_nimble_hci_and_controller_deinit();
139-
#endif
140-
#endif /* CONFIG_BT_NIMBLE_ENABLED */
141-
142-
#if CONFIG_IDF_TARGET_ESP32
143-
err |= esp_bt_mem_release(ESP_BT_MODE_BTDM);
144-
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32H2
145-
err |= esp_bt_mem_release(ESP_BT_MODE_BLE);
146-
#endif
147-
148-
if (err != ESP_OK)
149-
{
150-
ESP_LOGE(TAG, "BLE deinit failed");
151-
}
152-
else
153-
{
154-
ESP_LOGI(TAG, "BLE deinit successful and memory reclaimed");
155-
}
121+
chip::DeviceLayer::Internal::BLEMgr().Shutdown();
156122
}
157-
#endif /* CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING */
123+
#endif /* CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING */
158124
}
159125

160126
void Esp32AppServer::Init(AppDelegate * sAppDelegate)
@@ -165,7 +131,7 @@ void Esp32AppServer::Init(AppDelegate * sAppDelegate)
165131
if (hex_string_to_binary(CONFIG_TEST_EVENT_TRIGGER_ENABLE_KEY, sTestEventTriggerEnableKey,
166132
sizeof(sTestEventTriggerEnableKey)) == 0)
167133
{
168-
ESP_LOGE(TAG, "Failed to convert the EnableKey string to octstr type value");
134+
ChipLogError(DeviceLayer, "Failed to convert the EnableKey string to octstr type value");
169135
memset(sTestEventTriggerEnableKey, 0, sizeof(sTestEventTriggerEnableKey));
170136
}
171137
static OTATestEventTriggerDelegate testEventTriggerDelegate{ ByteSpan(sTestEventTriggerEnableKey) };
@@ -189,7 +155,7 @@ void Esp32AppServer::Init(AppDelegate * sAppDelegate)
189155
if (chip::DeviceLayer::ConnectivityMgr().IsThreadProvisioned() &&
190156
(chip::Server::GetInstance().GetFabricTable().FabricCount() != 0))
191157
{
192-
ESP_LOGI(TAG, "Thread has been provisioned, publish the dns service now");
158+
ChipLogProgress(DeviceLayer, "Thread has been provisioned, publish the dns service now");
193159
chip::app::DnssdServer::Instance().StartServer();
194160
}
195161
#endif

examples/platform/linux/AppMain.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,18 @@ void ChipLinuxAppMainLoop(AppMainLoopImplementation * impl)
561561
// Init ZCL Data Model and CHIP App Server
562562
Server::GetInstance().Init(initParams);
563563

564+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
565+
// Set ReadHandler Capacity for Subscriptions
566+
chip::app::InteractionModelEngine::GetInstance()->SetHandlerCapacityForSubscriptions(
567+
LinuxDeviceOptions::GetInstance().subscriptionCapacity);
568+
chip::app::InteractionModelEngine::GetInstance()->SetForceHandlerQuota(true);
569+
#if CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION
570+
// Set subscription time resumption retry interval seconds
571+
chip::app::InteractionModelEngine::GetInstance()->SetSubscriptionTimeoutResumptionRetryIntervalSeconds(
572+
LinuxDeviceOptions::GetInstance().subscriptionResumptionRetryIntervalSec);
573+
#endif // CHIP_CONFIG_PERSIST_SUBSCRIPTIONS && CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION
574+
#endif // CONFIG_BUILD_FOR_HOST_UNIT_TEST
575+
564576
// Now that the server has started and we are done with our startup logging,
565577
// log our discovery/onboarding information again so it's not lost in the
566578
// noise.

examples/platform/linux/Options.cpp

+40
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,16 @@ enum
8484
kCommissionerOption_FabricID = 0x1020,
8585
kTraceTo = 0x1021,
8686
kOptionSimulateNoInternalTime = 0x1022,
87+
#if defined(PW_RPC_ENABLED)
88+
kOptionRpcServerPort = 0x1023,
89+
#endif
90+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
91+
kDeviceOption_SubscriptionCapacity = 0x1024,
92+
#endif
93+
kDeviceOption_WiFiSupports5g = 0x1025,
94+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
95+
kDeviceOption_SubscriptionResumptionRetryIntervalSec = 0x1026,
96+
#endif
8797
};
8898

8999
constexpr unsigned kAppUsageLength = 64;
@@ -138,6 +148,13 @@ OptionDef sDeviceOptionDefs[] = {
138148
{ "trace-to", kArgumentRequired, kTraceTo },
139149
#endif
140150
{ "simulate-no-internal-time", kNoArgument, kOptionSimulateNoInternalTime },
151+
#if defined(PW_RPC_ENABLED)
152+
{ "rpc-server-port", kArgumentRequired, kOptionRpcServerPort },
153+
#endif
154+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
155+
{ "subscription-capacity", kArgumentRequired, kDeviceOption_SubscriptionCapacity },
156+
{ "subscription-resumption-retry-interval", kArgumentRequired, kDeviceOption_SubscriptionResumptionRetryIntervalSec },
157+
#endif
141158
{}
142159
};
143160

@@ -254,6 +271,16 @@ const char * sDeviceOptionHelp =
254271
#endif
255272
" --simulate-no-internal-time\n"
256273
" Time cluster does not use internal platform time\n"
274+
#if defined(PW_RPC_ENABLED)
275+
" --rpc-server-port\n"
276+
" Start RPC server on specified port\n"
277+
#endif
278+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
279+
" --subscription-capacity\n"
280+
" Max number of subscriptions the device will allow\n"
281+
" --subscription-resumption-retry-interval\n"
282+
" subscription timeout resumption retry interval in seconds\n"
283+
#endif
257284
"\n";
258285

259286
bool Base64ArgToVector(const char * arg, size_t maxSize, std::vector<uint8_t> & outVector)
@@ -507,6 +534,19 @@ bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier,
507534
case kOptionSimulateNoInternalTime:
508535
LinuxDeviceOptions::GetInstance().mSimulateNoInternalTime = true;
509536
break;
537+
#if defined(PW_RPC_ENABLED)
538+
case kOptionRpcServerPort:
539+
LinuxDeviceOptions::GetInstance().rpcServerPort = static_cast<uint16_t>(atoi(aValue));
540+
break;
541+
#endif
542+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
543+
case kDeviceOption_SubscriptionCapacity:
544+
LinuxDeviceOptions::GetInstance().subscriptionCapacity = static_cast<int32_t>(atoi(aValue));
545+
break;
546+
case kDeviceOption_SubscriptionResumptionRetryIntervalSec:
547+
LinuxDeviceOptions::GetInstance().subscriptionResumptionRetryIntervalSec = static_cast<int32_t>(atoi(aValue));
548+
break;
549+
#endif
510550
default:
511551
PrintArgError("%s: INTERNAL ERROR: Unhandled option: %s\n", aProgram, aName);
512552
retval = false;

examples/platform/linux/Options.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,13 @@ struct LinuxDeviceOptions
6868
chip::FabricId commissionerFabricId = chip::kUndefinedFabricId;
6969
std::vector<std::string> traceTo;
7070
bool mSimulateNoInternalTime = false;
71-
71+
#if defined(PW_RPC_ENABLED)
72+
uint16_t rpcServerPort = 33000;
73+
#endif
74+
#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
75+
int32_t subscriptionCapacity = CHIP_IM_MAX_NUM_SUBSCRIPTIONS;
76+
int32_t subscriptionResumptionRetryIntervalSec = -1;
77+
#endif
7278
static LinuxDeviceOptions & GetInstance();
7379
};
7480

scripts/tests/cirque_tests.sh

+3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ CIRQUE_TESTS=(
4949
"CommissioningFailureOnReportTest"
5050
"PythonCommissioningTest"
5151
"CommissioningWindowTest"
52+
"SubscriptionResumptionTest"
53+
"SubscriptionResumptionCapacityTest"
54+
"SubscriptionResumptionTimeoutTest"
5255
)
5356

5457
BOLD_GREEN_TEXT="\033[1;32m"

0 commit comments

Comments
 (0)