mirror of
https://github.com/espressif/esp-mqtt.git
synced 2025-07-30 02:38:19 +02:00
Merge branch 'update/qemu_test_IDFv4.3' into 'master'
CI: Update QEMU image and test against IDF v4.4-dev (plus minor fixes) See merge request espressif/esp-mqtt!104
This commit is contained in:
@ -47,7 +47,7 @@ build_with_idf_v3:
|
|||||||
|
|
||||||
build_with_idf_v4:
|
build_with_idf_v4:
|
||||||
stage: build
|
stage: build
|
||||||
image: ${CI_DOCKER_REGISTRY}/esp32-ci-env
|
image: ${CI_DOCKER_REGISTRY}/esp-env:v4.4-1
|
||||||
tags:
|
tags:
|
||||||
- build
|
- build
|
||||||
dependencies: []
|
dependencies: []
|
||||||
@ -56,9 +56,12 @@ build_with_idf_v4:
|
|||||||
paths:
|
paths:
|
||||||
- tidybuild/*
|
- tidybuild/*
|
||||||
expire_in: 1 day
|
expire_in: 1 day
|
||||||
|
variables:
|
||||||
|
PYTHON_VER: 3.6.13
|
||||||
script:
|
script:
|
||||||
- cit_add_ssh_key "${GITLAB_KEY}"
|
- cit_add_ssh_key "${GITLAB_KEY}"
|
||||||
- git clone "${IDF_REPO}"
|
- git clone "${IDF_REPO}"
|
||||||
|
- source /opt/pyenv/activate && pyenv global $PYTHON_VER
|
||||||
- $MQTT_PATH/ci/set_idf.sh master
|
- $MQTT_PATH/ci/set_idf.sh master
|
||||||
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
||||||
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
||||||
@ -72,6 +75,11 @@ build_with_idf_v4:
|
|||||||
- export EXTRA_CFLAGS=${PEDANTIC_CFLAGS} && export EXTRA_CXXFLAGS=${EXTRA_CFLAGS}
|
- export EXTRA_CFLAGS=${PEDANTIC_CFLAGS} && export EXTRA_CXXFLAGS=${EXTRA_CFLAGS}
|
||||||
# build other examples
|
# build other examples
|
||||||
- $MQTT_PATH/ci/build_examples.sh
|
- $MQTT_PATH/ci/build_examples.sh
|
||||||
|
# rebuild with IDFv4.3
|
||||||
|
- $MQTT_PATH/ci/set_idf.sh release/v4.3
|
||||||
|
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
||||||
|
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
||||||
|
- $MQTT_PATH/ci/build_examples.sh
|
||||||
# rebuild with IDFv4.2
|
# rebuild with IDFv4.2
|
||||||
- $MQTT_PATH/ci/set_idf.sh release/v4.2
|
- $MQTT_PATH/ci/set_idf.sh release/v4.2
|
||||||
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
||||||
@ -90,26 +98,30 @@ build_with_idf_v4:
|
|||||||
|
|
||||||
build_and_test_qemu:
|
build_and_test_qemu:
|
||||||
stage: build
|
stage: build
|
||||||
image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20191124
|
image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20210517-dda2caf0
|
||||||
tags:
|
tags:
|
||||||
- build
|
- build
|
||||||
- shiny
|
- shiny
|
||||||
dependencies: []
|
dependencies: []
|
||||||
|
variables:
|
||||||
|
PYTHON_VER: 3.7.0
|
||||||
script:
|
script:
|
||||||
- cit_add_ssh_key "${GITLAB_KEY}"
|
- cit_add_ssh_key "${GITLAB_KEY}"
|
||||||
- git clone "${IDF_REPO}"
|
- git clone "${IDF_REPO}"
|
||||||
- $MQTT_PATH/ci/set_idf.sh release/v4.1
|
# switch to IDF and setup the right tools
|
||||||
|
- $MQTT_PATH/ci/set_idf.sh master
|
||||||
|
- source /opt/pyenv/activate && pyenv install $PYTHON_VER && pyenv global $PYTHON_VER
|
||||||
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
||||||
|
- ./install.sh && source export.sh
|
||||||
|
- python -m pip install -r $IDF_PATH/tools/ci/python_packages/ttfw_idf/requirements.txt && python -m pip install paho-mqtt
|
||||||
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
||||||
# build publish stress test
|
# build publish-connect stress test, setup test parameters
|
||||||
- cd $IDF_PATH/examples/protocols/mqtt/publish_test && cat sdkconfig.qemu | $IDF_PATH/tools/ci/envsubst.py >> sdkconfig.defaults && idf.py build
|
- cd tools/test_apps/protocols/mqtt/publish_connect_test && cat sdkconfig.qemu | $IDF_PATH/tools/ci/envsubst.py > sdkconfig.defaults && idf.py build
|
||||||
- source /opt/pyenv/activate && pyenv global 2.7.15 && python --version
|
- export TEST_PATH=`pwd` && export MQTT_PUBLISH_TEST=1
|
||||||
# setup runner params
|
|
||||||
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages"
|
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages"
|
||||||
- export TEST_CASE_PATH=$IDF_PATH/components/mqtt/weekend_test
|
|
||||||
- cd $IDF_PATH/tools/ci/python_packages/tiny_test_fw/bin
|
|
||||||
# run test (with environment->qemu)
|
# run test (with environment->qemu)
|
||||||
- python Runner.py $TEST_CASE_PATH -c $TEST_CASE_PATH/test_weekend_mqtt_qemu.yml -e $TEST_CASE_PATH/env.yml
|
- cd $IDF_PATH/tools/ci/python_packages/tiny_test_fw/bin
|
||||||
|
- python Runner.py $TEST_PATH -c $TEST_PATH/publish_connect_mqtt_qemu.yml -e $TEST_PATH/env.yml
|
||||||
|
|
||||||
clang_tidy_check:
|
clang_tidy_check:
|
||||||
stage: static_analysis
|
stage: static_analysis
|
||||||
|
@ -57,6 +57,10 @@
|
|||||||
// Features supported in 4.3
|
// Features supported in 4.3
|
||||||
#define MQTT_SUPPORTED_FEATURE_DIGITAL_SIGNATURE
|
#define MQTT_SUPPORTED_FEATURE_DIGITAL_SIGNATURE
|
||||||
#define MQTT_SUPPORTED_FEATURE_TRANSPORT_SOCK_ERRNO_REPORTING
|
#define MQTT_SUPPORTED_FEATURE_TRANSPORT_SOCK_ERRNO_REPORTING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
|
||||||
|
// Features supported in 4.4
|
||||||
#define MQTT_SUPPORTED_FEATURE_CERTIFICATE_BUNDLE
|
#define MQTT_SUPPORTED_FEATURE_CERTIFICATE_BUNDLE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -58,6 +58,7 @@ esp_err_t outbox_set_tick(outbox_handle_t outbox, int msg_id, outbox_tick_t tick
|
|||||||
int outbox_get_size(outbox_handle_t outbox);
|
int outbox_get_size(outbox_handle_t outbox);
|
||||||
esp_err_t outbox_cleanup(outbox_handle_t outbox, int max_size);
|
esp_err_t outbox_cleanup(outbox_handle_t outbox, int max_size);
|
||||||
void outbox_destroy(outbox_handle_t outbox);
|
void outbox_destroy(outbox_handle_t outbox);
|
||||||
|
void outbox_delete_all_items(outbox_handle_t outbox);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -224,7 +224,7 @@ esp_err_t outbox_cleanup(outbox_handle_t outbox, int max_size)
|
|||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void outbox_destroy(outbox_handle_t outbox)
|
void outbox_delete_all_items(outbox_handle_t outbox)
|
||||||
{
|
{
|
||||||
outbox_item_handle_t item, tmp;
|
outbox_item_handle_t item, tmp;
|
||||||
STAILQ_FOREACH_SAFE(item, outbox, next, tmp) {
|
STAILQ_FOREACH_SAFE(item, outbox, next, tmp) {
|
||||||
@ -232,6 +232,10 @@ void outbox_destroy(outbox_handle_t outbox)
|
|||||||
free(item->buffer);
|
free(item->buffer);
|
||||||
free(item);
|
free(item);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
void outbox_destroy(outbox_handle_t outbox)
|
||||||
|
{
|
||||||
|
outbox_delete_all_items(outbox);
|
||||||
free(outbox);
|
free(outbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1491,6 +1491,7 @@ static void esp_mqtt_task(void *pv)
|
|||||||
|
|
||||||
}
|
}
|
||||||
esp_transport_close(client->transport);
|
esp_transport_close(client->transport);
|
||||||
|
outbox_delete_all_items(client->outbox);
|
||||||
xEventGroupSetBits(client->status_bits, STOPPED_BIT);
|
xEventGroupSetBits(client->status_bits, STOPPED_BIT);
|
||||||
|
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
|
Reference in New Issue
Block a user