From ee5ecad6c103b904f9657436bd80d8c55837bf7b Mon Sep 17 00:00:00 2001 From: David Cermak Date: Thu, 19 May 2022 17:23:59 +0200 Subject: [PATCH 1/2] ci: Deploy idf_v4.x branch to GitHub Also fixes the CI (removing v5.0 test, simplifying qemu test to only execute connection testing) --- .gitlab-ci.yml | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9a2f4c9..6731a33 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -45,24 +45,6 @@ build_with_idf_v3: - cd $MQTT_PATH && ./ci/modify_for_legacy_idf.sh ${RECENT_IDF} || true - cd $MQTT_PATH/examples/tcp && rm -rf build && make defconfig && make -build_with_idf_v5: - stage: build - image: ${CI_DOCKER_REGISTRY}/esp-env-v5.0:1 - tags: - - build - dependencies: [] - variables: - PYTHON_VER: 3.6.13 - script: - - git clone "${IDF_REPO}" - - source /opt/pyenv/activate && pyenv global $PYTHON_VER - - $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)" - - $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA - - export PEDANTIC_CFLAGS="-Werror -Werror=deprecated-declarations -Werror=unused-variable -Werror=unused-but-set-variable -Werror=unused-function" - - export EXTRA_CFLAGS=${PEDANTIC_CFLAGS} && export EXTRA_CXXFLAGS=${EXTRA_CFLAGS} - - $MQTT_PATH/ci/build_examples.sh - build_with_idf_v4: stage: build image: ${CI_DOCKER_REGISTRY}/esp-env:v4.4-1 @@ -106,7 +88,7 @@ build_with_idf_v4: - $MQTT_PATH/ci/set_idf.sh release/v3.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 make + - $MQTT_PATH/ci/build_examples.sh make build_and_test_qemu: stage: build @@ -115,18 +97,18 @@ build_and_test_qemu: - build - shiny dependencies: [] - variables: - PYTHON_VER: 3.6.13 script: - git clone "${IDF_REPO}" - - source /opt/pyenv/activate && pyenv global $PYTHON_VER # switch to IDF and setup the tools - $MQTT_PATH/ci/set_idf.sh release/v4.4 + - $IDF_PATH/tools/idf_tools.py install-python-env - cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)" + - 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 # build publish-connect stress test, setup test parameters - cd tools/test_apps/protocols/mqtt/publish_connect_test && cat sdkconfig.qemu | $IDF_PATH/tools/ci/envsubst.py > sdkconfig.defaults && idf.py build - - export TEST_PATH=`pwd` && export MQTT_PUBLISH_TEST=1 + - export TEST_PATH=`pwd` - export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages" # run test (with environment->qemu) - cd $IDF_PATH/tools/ci/python_packages/tiny_test_fw/bin @@ -139,7 +121,7 @@ push_master_to_github: - build only: - master - - idf + - idf_v4.x when: on_success variables: GIT_STRATEGY: clone From f16200201ebdf18b215b745557462d10e801d278 Mon Sep 17 00:00:00 2001 From: gabsuren Date: Thu, 24 Mar 2022 13:05:08 +0400 Subject: [PATCH 2/2] MQTT: Fix signature matching for integer values Closes https://github.com/espressif/esp-idf/issues/8482 --- mqtt_client.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mqtt_client.c b/mqtt_client.c index 3b41791..013bde7 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -1006,13 +1006,14 @@ post_data_event: msg_topic = NULL; msg_topic_len = 0; msg_data_offset += msg_data_len; - msg_data_len = esp_transport_read(client-> transport, (char *)client->mqtt_state.in_buffer, + int ret = esp_transport_read(client->transport, (char *)client->mqtt_state.in_buffer, msg_total_len - msg_read_len > buf_len ? buf_len : msg_total_len - msg_read_len, client->config->network_timeout_ms); - if (msg_data_len <= 0) { - ESP_LOGE(TAG, "Read error or timeout: len_read=%zu, errno=%d", msg_data_len, errno); + if (ret <= 0) { + ESP_LOGE(TAG, "Read error or timeout: len_read=%d, errno=%d", ret, errno); return ESP_FAIL; } + msg_data_len = ret; msg_read_len += msg_data_len; goto post_data_event; }