mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-01 11:44:38 +02:00
Add zephyr action
This commit is contained in:
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@@ -28,6 +28,8 @@ jobs:
|
|||||||
uses: ./.github/workflows/hostap.yml
|
uses: ./.github/workflows/hostap.yml
|
||||||
nginx:
|
nginx:
|
||||||
uses: ./.github/workflows/nginx.yml
|
uses: ./.github/workflows/nginx.yml
|
||||||
|
zephyr:
|
||||||
|
uses: ./.github/workflows/zephyr.yml
|
||||||
# TODO: Currently this test fails. Enable it once it becomes passing.
|
# TODO: Currently this test fails. Enable it once it becomes passing.
|
||||||
# haproxy:
|
# haproxy:
|
||||||
# uses: ./.github/workflows/haproxy.yml
|
# uses: ./.github/workflows/haproxy.yml
|
||||||
|
95
.github/workflows/zephyr.yml
vendored
Normal file
95
.github/workflows/zephyr.yml
vendored
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
name: Zephyr tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run_test:
|
||||||
|
name: Build and run
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 20
|
||||||
|
steps:
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
# Don't prompt for anything
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
sudo apt-get update
|
||||||
|
# most of the ci-base zephyr docker image packages
|
||||||
|
sudo apt-get install -y zip bridge-utils uml-utilities \
|
||||||
|
git cmake ninja-build gperf ccache dfu-util device-tree-compiler wget \
|
||||||
|
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
|
||||||
|
make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1 \
|
||||||
|
autoconf automake bison build-essential ca-certificates cargo ccache chrpath cmake \
|
||||||
|
cpio device-tree-compiler dfu-util diffstat dos2unix doxygen file flex g++ gawk gcc \
|
||||||
|
gcovr git git-core gnupg gperf gtk-sharp2 help2man iproute2 lcov libcairo2-dev \
|
||||||
|
libglib2.0-dev libgtk2.0-0 liblocale-gettext-perl libncurses5-dev libpcap-dev \
|
||||||
|
libpopt0 libsdl1.2-dev libsdl2-dev libssl-dev libtool libtool-bin locales make \
|
||||||
|
net-tools ninja-build openssh-client parallel pkg-config python3-dev python3-pip \
|
||||||
|
python3-ply python3-setuptools python-is-python3 qemu rsync socat srecord sudo \
|
||||||
|
texinfo unzip wget ovmf xz-utils
|
||||||
|
|
||||||
|
- name: Install west
|
||||||
|
run: sudo pip install west
|
||||||
|
|
||||||
|
- name: Init west workspace
|
||||||
|
run: west init zephyr
|
||||||
|
|
||||||
|
- name: Update west.yml
|
||||||
|
working-directory: zephyr/zephyr
|
||||||
|
run: |
|
||||||
|
REF=$(echo '${{ github.ref }}' | sed -e 's/\//\\\//g')
|
||||||
|
sed -e 's/remotes:/remotes:\n \- name: wolfssl\n url\-base: https:\/\/github.com\/${{ github.repository_owner }}/' -i west.yml
|
||||||
|
sed -e "s/projects:/projects:\n \- name: wolfssl\n path: modules\/crypto\/wolfssl\n remote: wolfssl\n revision: $REF/" -i west.yml
|
||||||
|
|
||||||
|
- name: Update west workspace
|
||||||
|
working-directory: zephyr
|
||||||
|
run: west update -n -o=--depth=1
|
||||||
|
|
||||||
|
- name: Export zephyr
|
||||||
|
working-directory: zephyr
|
||||||
|
run: west zephyr-export
|
||||||
|
|
||||||
|
- name: Install pip dependencies
|
||||||
|
working-directory: zephyr
|
||||||
|
run: sudo pip install -r zephyr/scripts/requirements.txt
|
||||||
|
|
||||||
|
- name: Install zephyr SDK
|
||||||
|
run: |
|
||||||
|
wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz
|
||||||
|
tar xf zephyr-sdk-0.16.1_linux-x86_64.tar.xz
|
||||||
|
cd zephyr-sdk-0.16.1
|
||||||
|
./setup.sh -h -c
|
||||||
|
|
||||||
|
- name: Run wolfssl test
|
||||||
|
id: wolfssl-test
|
||||||
|
working-directory: zephyr
|
||||||
|
run: |
|
||||||
|
./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_test/sample.crypto.wolfssl_test -vvv
|
||||||
|
rm -rf zephyr/twister-out
|
||||||
|
|
||||||
|
- name: Run wolfssl TLS sock test
|
||||||
|
id: wolfssl-tls-sock
|
||||||
|
working-directory: zephyr
|
||||||
|
run: |
|
||||||
|
./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_sock/sample.crypto.wolfssl_tls_sock -vvv
|
||||||
|
rm -rf zephyr/twister-out
|
||||||
|
|
||||||
|
- name: Run wolfssl TLS thread test
|
||||||
|
id: wolfssl-tls-thread
|
||||||
|
working-directory: zephyr
|
||||||
|
run: |
|
||||||
|
./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_thread/sample.crypto.wolfssl_tls_thread -vvv
|
||||||
|
rm -rf zephyr/twister-out
|
||||||
|
|
||||||
|
- name: Zip failure logs
|
||||||
|
if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
|
||||||
|
run: |
|
||||||
|
zip -9 -r logs.zip zephyr/twister-out
|
||||||
|
|
||||||
|
- name: Upload failure logs
|
||||||
|
if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: zephyr-client-test-logs
|
||||||
|
path: logs.zip
|
||||||
|
retention-days: 5
|
@@ -253,10 +253,6 @@
|
|||||||
#include <esp_log.h>
|
#include <esp_log.h>
|
||||||
#endif /* WOLFSSL_ESPIDF */
|
#endif /* WOLFSSL_ESPIDF */
|
||||||
|
|
||||||
#ifdef HAVE_PTHREAD
|
|
||||||
#include <pthread.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(HAVE_PTHREAD) || \
|
#if defined(HAVE_PTHREAD) || \
|
||||||
(!defined(NO_CRYPT_BENCHMARK) && !defined(NO_STDIO_FILESYSTEM) && \
|
(!defined(NO_CRYPT_BENCHMARK) && !defined(NO_STDIO_FILESYSTEM) && \
|
||||||
!defined(NO_ERROR_STRINGS) && !defined(NO_MAIN_DRIVER) && \
|
!defined(NO_ERROR_STRINGS) && !defined(NO_MAIN_DRIVER) && \
|
||||||
|
@@ -60,6 +60,14 @@ then "Open Terminal".
|
|||||||
|
|
||||||
## Build and Run wolfCrypt Test Application
|
## Build and Run wolfCrypt Test Application
|
||||||
|
|
||||||
|
If you want to run build apps without running `west zephyr-export` then it is
|
||||||
|
possible by setting the `CMAKE_PREFIX_PATH` variable to the location of the
|
||||||
|
zephyr sdk and building from the `zephyr` directory. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
CMAKE_PREFIX_PATH=/path/to/zephyr-sdk-<VERSION> west build -p always -b qemu_x86 ../modules/crypto/wolfssl/zephyr/samples/wolfssl_test/
|
||||||
|
```
|
||||||
|
|
||||||
build and execute `wolfssl_test`
|
build and execute `wolfssl_test`
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
# Configure stack and heap sizes
|
# Configure stack and heap sizes
|
||||||
CONFIG_MAIN_STACK_SIZE=32768
|
CONFIG_MAIN_STACK_SIZE=32768
|
||||||
CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=16384
|
|
||||||
|
|
||||||
# Pthreads
|
# Pthreads
|
||||||
CONFIG_PTHREAD_IPC=y
|
CONFIG_PTHREAD_IPC=y
|
||||||
|
@@ -2,9 +2,14 @@ sample:
|
|||||||
description: wolfCrypt benchmark sample app
|
description: wolfCrypt benchmark sample app
|
||||||
name: wolfCrypt benchmark
|
name: wolfCrypt benchmark
|
||||||
common:
|
common:
|
||||||
min_flash: 65
|
|
||||||
min_ram: 36
|
|
||||||
tags: crypto wolfssl userspace random
|
tags: crypto wolfssl userspace random
|
||||||
|
harness: console
|
||||||
|
harness_config:
|
||||||
|
type: one_line
|
||||||
|
regex:
|
||||||
|
- "Benchmark complete"
|
||||||
tests:
|
tests:
|
||||||
crypto.wolfssl_benchmark:
|
sample.crypto.wolfssl_benchmark:
|
||||||
platform_allow: qemu_x86 nrf5340dk_nrf5340_cpuapp_ns nrf5340dk_nrf5340_cpuapp
|
platform_allow: qemu_x86
|
||||||
|
integration_platforms:
|
||||||
|
- qemu_x86
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
# Configure stack and heap sizes
|
# Configure stack and heap sizes
|
||||||
CONFIG_MAIN_STACK_SIZE=32768
|
CONFIG_MAIN_STACK_SIZE=32768
|
||||||
CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=16384
|
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=16384
|
||||||
|
|
||||||
# Pthreads
|
# Pthreads
|
||||||
CONFIG_PTHREAD_IPC=y
|
CONFIG_PTHREAD_IPC=y
|
||||||
|
@@ -2,9 +2,14 @@ sample:
|
|||||||
description: wolfCrypt test sample app
|
description: wolfCrypt test sample app
|
||||||
name: wolfCrypt test
|
name: wolfCrypt test
|
||||||
common:
|
common:
|
||||||
min_flash: 65
|
harness: console
|
||||||
min_ram: 36
|
harness_config:
|
||||||
tags: crypto wolfssl userspace random
|
type: one_line
|
||||||
|
regex:
|
||||||
|
- "Exiting main with return code: 0"
|
||||||
tests:
|
tests:
|
||||||
crypto.wolfssl_test:
|
sample.crypto.wolfssl_test:
|
||||||
platform_allow: qemu_x86 nrf5340dk_nrf5340_cpuapp_ns nrf5340dk_nrf5340_cpuapp
|
timeout: 120
|
||||||
|
platform_allow: qemu_x86
|
||||||
|
integration_platforms:
|
||||||
|
- qemu_x86
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
CONFIG_MAIN_STACK_SIZE=16384
|
CONFIG_MAIN_STACK_SIZE=16384
|
||||||
CONFIG_ENTROPY_GENERATOR=y
|
CONFIG_ENTROPY_GENERATOR=y
|
||||||
CONFIG_INIT_STACKS=y
|
CONFIG_INIT_STACKS=y
|
||||||
CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=8192
|
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=8192
|
||||||
|
|
||||||
# General config
|
# General config
|
||||||
CONFIG_NEWLIB_LIBC=y
|
CONFIG_NEWLIB_LIBC=y
|
||||||
|
@@ -1,9 +1,16 @@
|
|||||||
common:
|
|
||||||
harness: crypto
|
|
||||||
tags: crypto
|
|
||||||
sample:
|
sample:
|
||||||
description: wolfSSL TLS test application
|
description: wolfSSL TLS test application
|
||||||
name: wolfSSL TLS Test
|
name: wolfSSL TLS Test
|
||||||
|
common:
|
||||||
|
harness: console
|
||||||
|
harness_config:
|
||||||
|
type: multi_line
|
||||||
|
regex:
|
||||||
|
- "Server Return: 0"
|
||||||
|
- "Client Return: 0"
|
||||||
tests:
|
tests:
|
||||||
test:
|
sample.crypto.wolfssl_tls_sock:
|
||||||
platform_whitelist: qemu_x86
|
timeout: 60
|
||||||
|
platform_allow: qemu_x86
|
||||||
|
integration_platforms:
|
||||||
|
- qemu_x86
|
||||||
|
@@ -296,8 +296,10 @@ static void wolfssl_memstats(WOLFSSL* ssl)
|
|||||||
/* Start the server thread. */
|
/* Start the server thread. */
|
||||||
void start_thread(THREAD_CB func, func_args* args, THREAD_TYPE* thread)
|
void start_thread(THREAD_CB func, func_args* args, THREAD_TYPE* thread)
|
||||||
{
|
{
|
||||||
|
/* Casting to k_thread_entry_t should be fine since we just ignore the
|
||||||
|
* extra arguments being passed in */
|
||||||
k_thread_create(thread, server_stack, K_THREAD_STACK_SIZEOF(server_stack),
|
k_thread_create(thread, server_stack, K_THREAD_STACK_SIZEOF(server_stack),
|
||||||
func, args, NULL, NULL, 5, 0, K_NO_WAIT);
|
(k_thread_entry_t)func, args, NULL, NULL, 5, 0, K_NO_WAIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void join_thread(THREAD_TYPE thread)
|
void join_thread(THREAD_TYPE thread)
|
||||||
@@ -350,7 +352,7 @@ int wolfssl_server_accept_tcp(WOLFSSL* ssl, SOCKET_T* fd, SOCKET_T* acceptfd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Thread to do the server operations. */
|
/* Thread to do the server operations. */
|
||||||
void server_thread(void* arg1, void* arg2, void* arg3)
|
void server_thread(void* arg1)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
WOLFSSL_CTX* server_ctx = NULL;
|
WOLFSSL_CTX* server_ctx = NULL;
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
CONFIG_MAIN_STACK_SIZE=16384
|
CONFIG_MAIN_STACK_SIZE=16384
|
||||||
CONFIG_ENTROPY_GENERATOR=y
|
CONFIG_ENTROPY_GENERATOR=y
|
||||||
CONFIG_INIT_STACKS=y
|
CONFIG_INIT_STACKS=y
|
||||||
CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=65536
|
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=65536
|
||||||
|
|
||||||
# Pthreads
|
# Pthreads
|
||||||
CONFIG_PTHREAD_IPC=y
|
CONFIG_PTHREAD_IPC=y
|
||||||
|
@@ -1,9 +1,18 @@
|
|||||||
common:
|
|
||||||
harness: crypto
|
|
||||||
tags: crypto
|
|
||||||
sample:
|
sample:
|
||||||
description: wolfSSL TLS test application
|
description: wolfSSL TLS test application
|
||||||
name: wolfSSL TLS Test
|
name: wolfSSL TLS Test
|
||||||
|
common:
|
||||||
|
harness: console
|
||||||
|
harness_config:
|
||||||
|
type: multi_line
|
||||||
|
regex:
|
||||||
|
- "Server Return: 0"
|
||||||
|
- "Server Error: 0"
|
||||||
|
- "Client Return: 0"
|
||||||
|
- "Client Error: 0"
|
||||||
tests:
|
tests:
|
||||||
test:
|
sample.crypto.wolfssl_tls_thread:
|
||||||
platform_whitelist: qemu_x86
|
timeout: 60
|
||||||
|
platform_allow: qemu_x86
|
||||||
|
integration_platforms:
|
||||||
|
- qemu_x86
|
||||||
|
@@ -519,8 +519,10 @@ static void wolfssl_memstats(WOLFSSL* ssl)
|
|||||||
/* Start the server thread. */
|
/* Start the server thread. */
|
||||||
void start_thread(THREAD_CB func, func_args* args, THREAD_TYPE* thread)
|
void start_thread(THREAD_CB func, func_args* args, THREAD_TYPE* thread)
|
||||||
{
|
{
|
||||||
|
/* Casting to k_thread_entry_t should be fine since we just ignore the
|
||||||
|
* extra arguments being passed in */
|
||||||
k_thread_create(thread, server_stack, K_THREAD_STACK_SIZEOF(server_stack),
|
k_thread_create(thread, server_stack, K_THREAD_STACK_SIZEOF(server_stack),
|
||||||
func, args, NULL, NULL, 5, 0, K_NO_WAIT);
|
(k_thread_entry_t)func, args, NULL, NULL, 5, 0, K_NO_WAIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void join_thread(THREAD_TYPE thread)
|
void join_thread(THREAD_TYPE thread)
|
||||||
@@ -530,7 +532,7 @@ void join_thread(THREAD_TYPE thread)
|
|||||||
|
|
||||||
|
|
||||||
/* Thread to do the server operations. */
|
/* Thread to do the server operations. */
|
||||||
void server_thread(void* arg1, void* arg2, void* arg3)
|
void server_thread(void* arg1)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
WOLFSSL_CTX* server_ctx = NULL;
|
WOLFSSL_CTX* server_ctx = NULL;
|
||||||
|
Reference in New Issue
Block a user