123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/usr/bin/env bash
- #
- # testing script: compileAllExamples
- #
- # This script will compile all the local examples, optionally installing wolfSSL in the ESP-IDF components directory.
- #
- # Example usage:
- # cd wolfssl && docker run --rm -v $PWD:/project -w /project espressif/idf:latest IDE/Espressif/ESP-IDF/compileAllExamples.sh
- #
- # Parameter option to also run the ./setup.sh to install the wolfSSL component in ESP-IDF and test for multiple installs:
- #
- # --run-setup
- #
- # Note that once installed, the wolfSSL component will need to be manually removed to successfully run this script.
- #
- if [[ "$IDF_PATH" == "" ]]; then
- echo "Error: $IDF_PATH not found; run Espressif export.sh"
- exit 1
- fi
- SCRIPT_DIR=$(builtin cd ${BASH_SOURCE%/*}; pwd)
- RUN_SETUP=$1
- THIS_ERR=0
- echo "Found IDF_PATH = $IDF_PATH"
- # Regular tests of wolfSSL in local component directories of each project:
- #
- # Note these tests should FAIL if wolfSSL is already installed in ESP-IDF
- #
- for file in "benchmark" "client" "server" "test"; do
- pushd ${SCRIPT_DIR}/examples/wolfssl_${file}/ && idf.py fullclean build;
- THIS_ERR=$?
- popd
- if [ $THIS_ERR -ne 0 ]; then
- echo "Failed in ${file}"
- exit 1
- fi
- done
- # Check for option to also install wolfSSL.
- #
- # When doing so, we'll run a check that multiple installs should cause build failure.
- if [[ "$RUN_SETUP" == "--run-setup" ]]; then
- echo "Running wolfSSL setup.sh"
- # install wolfSSL into EDP-IDF shared components directory.
- ./setup.sh --verbose
- THIS_ERR=$?
- if [ $? -ne 0 ]; then
- echo "Failed running setup.sh"
- exit 1
- fi
- # Check ESP-IDF install:
- #
- # The wolfssl_test_idf should NOT have a local components/wolfssl when testing!
- # This test is to confirm the ESP-IDF component build properly after setup.
- #
- echo ""
- echo "Testing a build of wolfSSL in ESP-IDF components directory"
- echo ""
- for file in "test_idf"; do
- if [ -e "../../../include/user_settings.h" ]; then
- mv "../../../include/user_settings.h" "../../../include/user_settings.h.${file}.bak"
- fi
- pushd ${SCRIPT_DIR}/examples/wolfssl_${file}/ && idf.py fullclean build;
- THIS_ERR=$?
- popd
- if [ $? -ne 0 ]; then
- echo "Failed in ${file}"
- exit 1
- fi
- done
- # Check multiple installs: the wolfSSL component in ESP-IDF and local directory:
- #
- # The wolfssl_test project already has a local wolfSSL component directory.
- #
- # Once wolfssl has been installed to ESP-IDF components, the local
- # component build SHOULD fail:
- echo ""
- echo "Testing a build of wolfSSL in both local and ESP-IDF components directory"
- echo ""
- for file in "test"; do
- pushd ${SCRIPT_DIR}/examples/wolfssl_${file}/ && idf.py fullclean build;
- THIS_ERR=$?
- popd
- if [ $THIS_ERR -ne 0 ]; then
- echo ""
- echo "Success: Confirmed build fails when wolfSSL found in ESP-IDF and local project."
- echo ""
- else
- echo "Error: build should have failed when wolfSSL found in ESP-IDF and local project."
- exit 1
- fi
- done
- else
- echo "Skipping ESP-IDF install tests. For these tests, use parameter: --run-setup"
- fi
- # Show a reminder that wolfSSL was installed as a shared component.
- if [[ "$RUN_SETUP" == "--run-setup" ]]; then
- echo ""
- echo "wolfSSL was installed as an ESP-IDF component. This will be in conflict with any project that has a local component."
- echo ""
- echo "Delete the installed component before re-running this test."
- echo ""
- fi
- # Done
- echo "Completed compileAllExamples in $SCRIPT_DIR"
|