diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 862222c..ad95133 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,3 +38,12 @@ jobs: EXTRA_TWISTER_FLAGS="--short-build-path -O/tmp/twister-out" fi west twister -T app -v --inline-logs --integration $EXTRA_TWISTER_FLAGS + + - name: Run tests + working-directory: cannectivity + shell: bash + run: | + if [ "${{ runner.os }}" = "Windows" ]; then + EXTRA_TWISTER_FLAGS="--short-build-path -O/tmp/twister-out" + fi + west twister -T tests -v --inline-logs --integration $EXTRA_TWISTER_FLAGS diff --git a/include/cannectivity/usb/class/gs_usb.h b/include/cannectivity/usb/class/gs_usb.h index 17e38f9..f89b5e6 100644 --- a/include/cannectivity/usb/class/gs_usb.h +++ b/include/cannectivity/usb/class/gs_usb.h @@ -28,6 +28,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + /** * @name Geschwister Schneider USB/CAN protocol software/hardware version definitions * @{ @@ -631,4 +635,8 @@ struct gs_usb_ops { int gs_usb_register(const struct device *dev, const struct device **channels, size_t nchannels, const struct gs_usb_ops *ops, void *user_data); +#ifdef __cplusplus +} +#endif + #endif /* CANNECTIVITY_INCLUDE_USB_CLASS_GS_USB_H_ */ diff --git a/tests/subsys/usb/gs_usb/cxx/CMakeLists.txt b/tests/subsys/usb/gs_usb/cxx/CMakeLists.txt new file mode 100644 index 0000000..24b569a --- /dev/null +++ b/tests/subsys/usb/gs_usb/cxx/CMakeLists.txt @@ -0,0 +1,10 @@ +# Copyright (c) 2024 Henrik Brix Andersen +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.13.1) +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) + +project(cxx LANGUAGES CXX) + +FILE(GLOB app_sources src/*.cpp) +target_sources(app PRIVATE ${app_sources}) diff --git a/tests/subsys/usb/gs_usb/cxx/app.overlay b/tests/subsys/usb/gs_usb/cxx/app.overlay new file mode 100644 index 0000000..be54e2c --- /dev/null +++ b/tests/subsys/usb/gs_usb/cxx/app.overlay @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2024 Henrik Brix Andersen + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&zephyr_udc0 { + gs_usb0: gs_usb0 { + compatible = "gs_usb"; + }; +}; diff --git a/tests/subsys/usb/gs_usb/cxx/prj.conf b/tests/subsys/usb/gs_usb/cxx/prj.conf new file mode 100644 index 0000000..e0b8122 --- /dev/null +++ b/tests/subsys/usb/gs_usb/cxx/prj.conf @@ -0,0 +1,7 @@ +CONFIG_CPP=y + +CONFIG_USB_DEVICE_STACK=y + +CONFIG_USB_DEVICE_GS_USB_IDENTIFICATION=y +CONFIG_USB_DEVICE_GS_USB_TIMESTAMP=y +CONFIG_USB_DEVICE_GS_USB_TERMINATION=y diff --git a/tests/subsys/usb/gs_usb/cxx/src/main.cpp b/tests/subsys/usb/gs_usb/cxx/src/main.cpp new file mode 100644 index 0000000..298ca37 --- /dev/null +++ b/tests/subsys/usb/gs_usb/cxx/src/main.cpp @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2024 Henrik Brix Andersen + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include diff --git a/tests/subsys/usb/gs_usb/cxx/testcase.yaml b/tests/subsys/usb/gs_usb/cxx/testcase.yaml new file mode 100644 index 0000000..7bcb486 --- /dev/null +++ b/tests/subsys/usb/gs_usb/cxx/testcase.yaml @@ -0,0 +1,33 @@ +# Copyright (c) 2024 Henrik Brix Andersen +# SPDX-License-Identifier: Apache-2.0 + +common: + tags: usb can + depends_on: usb_device + build_only: true + integration_platforms: + - frdm_k64f + platform_exclude: + - native_sim +tests: + usb.gs_usb.cxx98: + extra_configs: + - CONFIG_STD_CPP98=y + usb.gs_usb.cxx11: + extra_configs: + - CONFIG_STD_CPP11=y + usb.gs_usb.cxx14: + extra_configs: + - CONFIG_STD_CPP14=y + usb.gs_usb.cxx17: + extra_configs: + - CONFIG_STD_CPP17=y + usb.gs_usb.cxx2a: + extra_configs: + - CONFIG_STD_CPP2A=y + usb.gs_usb.cxx20: + extra_configs: + - CONFIG_STD_CPP20=y + usb.gs_usb.cxx2b: + extra_configs: + - CONFIG_STD_CPP2B=y