diff --git a/examples/bluetooth/.build-test-rules.yml b/examples/bluetooth/.build-test-rules.yml index 688f85517d3..4585349849e 100644 --- a/examples/bluetooth/.build-test-rules.yml +++ b/examples/bluetooth/.build-test-rules.yml @@ -20,9 +20,6 @@ examples/bluetooth/bluedroid/ble: disable: - if: SOC_BLE_SUPPORTED != 1 disable_test: - - if: IDF_TARGET == "esp32s31" - temporary: true - reason: lack of runners - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner @@ -56,9 +53,6 @@ examples/bluetooth/bluedroid/ble/ble_throughput: disable: - if: SOC_BLE_SUPPORTED != 1 disable_test: - - if: IDF_TARGET == "esp32s31" - temporary: true - reason: lack of runners - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner @@ -75,9 +69,6 @@ examples/bluetooth/bluedroid/ble_50: disable: - if: SOC_BLE_50_SUPPORTED != 1 disable_test: - - if: IDF_TARGET == "esp32s31" - temporary: true - reason: lack of runners - if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112 temporary: true reason: lack of runner diff --git a/examples/bluetooth/bluedroid/ble/ble_throughput/pytest_ble_throughput_test.py b/examples/bluetooth/bluedroid/ble/ble_throughput/pytest_ble_throughput_test.py index 05994b0d759..a89a5e6b10f 100644 --- a/examples/bluetooth/bluedroid/ble/ble_throughput/pytest_ble_throughput_test.py +++ b/examples/bluetooth/bluedroid/ble/ble_throughput/pytest_ble_throughput_test.py @@ -27,10 +27,9 @@ CUR_DIR = Path(__file__).parent.resolve() ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32h4'], + ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32h4', 'esp32s31'], indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_gatt_write_throughput(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: server = dut[0] client = dut[1] @@ -119,10 +118,9 @@ def test_c2_26mhz_xtal_write_throughput(app_path: str, dut: tuple[IdfDut, IdfDut ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32h4'], + ['esp32', 'esp32c3', 'esp32c6', 'esp32c61', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32h4', 'esp32s31'], indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_gatt_notify_throughput(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: server = dut[0] client = dut[1] diff --git a/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c b/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c index 493afb75242..ef75a76f202 100644 --- a/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c +++ b/examples/bluetooth/bluedroid/ble/gatt_security_client/main/example_ble_sec_gattc_demo.c @@ -456,8 +456,6 @@ static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *par scan_result->scan_rst.adv_data_len + scan_result->scan_rst.scan_rsp_len, ESP_BLE_AD_TYPE_NAME_CMPL, &adv_name_len); - ESP_LOGI(GATTC_TAG, "Scan result, device "ESP_BD_ADDR_STR", name len %u", ESP_BD_ADDR_HEX(scan_result->scan_rst.bda), adv_name_len); - ESP_LOG_BUFFER_CHAR(GATTC_TAG, adv_name, adv_name_len); if (adv_name != NULL) { if (strlen(remote_device_name) == adv_name_len && strncmp((char *)adv_name, remote_device_name, adv_name_len) == 0) { // Note: If there are multiple devices with the same device name, the device may connect to an unintended one. @@ -544,6 +542,9 @@ void app_main(void) #if CONFIG_EXAMPLE_CI_PIPELINE_ID memcpy(remote_device_name, esp_bluedroid_get_example_name(), sizeof(remote_device_name)); + ble_scan_params.scan_interval = ESP_BLE_GAP_SCAN_ITVL_MS(50); + ble_scan_params.scan_window = ESP_BLE_GAP_SCAN_WIN_MS(50); + ble_scan_params.scan_duplicate = BLE_SCAN_DUPLICATE_ENABLE; #endif ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); diff --git a/examples/bluetooth/bluedroid/ble/pytest_ble_test.py b/examples/bluetooth/bluedroid/ble/pytest_ble_test.py index 36a632639b8..ae79a6e4370 100644 --- a/examples/bluetooth/bluedroid/ble/pytest_ble_test.py +++ b/examples/bluetooth/bluedroid/ble/pytest_ble_test.py @@ -26,10 +26,9 @@ GATT_CI_CONFIGS = ['name', 'smp_off|smp_off', 'min_bin|min_bin', 'log_off|log_of ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], + ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_gatt_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: gatt_client = dut[1] gatt_server = dut[0] @@ -125,10 +124,9 @@ GATT_SECURITY_CI_CONFIGS = ['name', 'min_bin|min_bin', 'log_off|log_off'] ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], + ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_gatt_security_func(app_path: str, dut: tuple[IdfDut, IdfDut], target: tuple) -> None: gatt_security_client = dut[1] gatt_security_server = dut[0] @@ -258,10 +256,9 @@ def test_c2_26mhz_xtal_gatt_security_func(app_path: str, dut: tuple[IdfDut, IdfD ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], + ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_ble_ibeacon_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: ibeacon_sender = dut[0] ibeacon_receiver = dut[1] @@ -339,10 +336,9 @@ def test_c2_26mhz_ble_ibeacon_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], + ['esp32', 'esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_gatt_config_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: gatt_client = dut[1] gatt_server = dut[0] @@ -429,7 +425,7 @@ def test_c2_26mhz_xtal_gatt_config_func(app_path: str, dut: tuple[IdfDut, IdfDut @pytest.mark.parametrize('config, app_path', [('init_deinit', f'{str(CUR_DIR / "gatt_client")}')], indirect=True) @idf_parametrize( 'target', - ['esp32c6', 'esp32h2', 'esp32c3', 'esp32s3', 'esp32c5', 'esp32c61', 'esp32', 'esp32h4'], + ['esp32c6', 'esp32h2', 'esp32c3', 'esp32s3', 'esp32c5', 'esp32c61', 'esp32', 'esp32h4', 'esp32s31'], indirect=['target'], ) def test_bluedroid_host_init_deinit(dut: Dut) -> None: diff --git a/examples/bluetooth/bluedroid/ble_50/periodic_adv/partitions.csv b/examples/bluetooth/bluedroid/ble_50/periodic_adv/partitions.csv new file mode 100644 index 00000000000..5fb9b1afffd --- /dev/null +++ b/examples/bluetooth/bluedroid/ble_50/periodic_adv/partitions.csv @@ -0,0 +1,6 @@ +# Name, Type, SubType, Offset, Size, Flags +# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x4000, +phy_init, data, phy, 0xd000, 0x1000, +factory, app, factory, 0x10000, 0x1F0000, diff --git a/examples/bluetooth/bluedroid/ble_50/periodic_adv/sdkconfig.defaults.esp32s31 b/examples/bluetooth/bluedroid/ble_50/periodic_adv/sdkconfig.defaults.esp32s31 new file mode 100644 index 00000000000..2fa76338fe0 --- /dev/null +++ b/examples/bluetooth/bluedroid/ble_50/periodic_adv/sdkconfig.defaults.esp32s31 @@ -0,0 +1,7 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32s31" +CONFIG_BT_ENABLED=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" diff --git a/examples/bluetooth/bluedroid/ble_50/pytest_ble50_test.py b/examples/bluetooth/bluedroid/ble_50/pytest_ble50_test.py index b07e7ab1ca8..2436eb7b7dd 100644 --- a/examples/bluetooth/bluedroid/ble_50/pytest_ble50_test.py +++ b/examples/bluetooth/bluedroid/ble_50/pytest_ble50_test.py @@ -23,9 +23,10 @@ BLE50_SECURITY_CI_CONFIGS = ['name'] indirect=True, ) @idf_parametrize( - 'target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], indirect=['target'] + 'target', + ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], + indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_ble50_security_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: server = dut[0] client = dut[1] @@ -113,9 +114,10 @@ def test_c2_26mhz_xtal_ble50_security_func(app_path: str, dut: tuple[IdfDut, Idf indirect=True, ) @idf_parametrize( - 'target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], indirect=['target'] + 'target', + ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], + indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_period_adv_sync_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: adv_dut = dut[0] sync_dut = dut[1] @@ -187,9 +189,10 @@ def test_c2_26mhz_xtal_period_adv_sync_func(app_path: str, dut: tuple[IdfDut, Id indirect=True, ) @idf_parametrize( - 'target', ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4'], indirect=['target'] + 'target', + ['esp32c3', 'esp32c6', 'esp32c5', 'esp32h2', 'esp32s3', 'esp32c61', 'esp32h4', 'esp32s31'], + indirect=['target'], ) -@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of runner') def test_ble50_security_config_func(app_path: str, dut: tuple[IdfDut, IdfDut]) -> None: server = dut[0] client = dut[1]