From 6cf95e41ed33003eb38a6e760f2426e40ba29561 Mon Sep 17 00:00:00 2001 From: Erki Date: Tue, 5 Mar 2024 20:27:32 +0200 Subject: [PATCH] initial commit --- CMakeLists.txt | 1 - Tests/CMakeLists.txt | 21 +++++++++++++++++++-- Tests/nanopb/simple.proto | 6 ++++++ Tests/packet.cpp | 1 + 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 Tests/nanopb/simple.proto diff --git a/CMakeLists.txt b/CMakeLists.txt index a6f4bf5..d381b51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,6 @@ project(skullc CXX ) -#list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/) option(SKULLC_WITH_TESTS "Enable unit testing." OFF) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 7d01952..cf6cd16 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.8 FATAL_ERROR) +cmake_minimum_required(VERSION 3.24 FATAL_ERROR) option(SKULLC_TESTS_WITH_SANITIZERS "Enable sanitizers for tests." ON) @@ -10,6 +10,20 @@ FetchContent_Declare(Catch2 ) FetchContent_MakeAvailable(Catch2) +FetchContent_Declare(nanopb + GIT_REPOSITORY https://github.com/nanopb/nanopb.git + GIT_TAG origin/master + FIND_PACKAGE_ARGS +) +FetchContent_GetProperties(nanopb) +if (NOT nanopb_POPULATED) + FetchContent_Populate(nanopb) +endif () + +list(APPEND CMAKE_MODULE_PATH "${nanopb_SOURCE_DIR}/extra") +find_package(Nanopb REQUIRED) + + if(SKULLC_TESTS_WITH_SANITIZERS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined -fno-sanitize-recover") set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined -fno-sanitize-recover") @@ -33,17 +47,20 @@ add_executable(tests filters.cpp ) +nanopb_generate_cpp(TARGET proto RELPATH nanopb nanopb/simple.proto) + target_link_libraries(tests PUBLIC skullc::utility skullc::messaging skullc::peripherals Catch2::Catch2 + proto ) set_target_properties(tests PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 23 ) list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/contrib) diff --git a/Tests/nanopb/simple.proto b/Tests/nanopb/simple.proto new file mode 100644 index 0000000..93a8ea1 --- /dev/null +++ b/Tests/nanopb/simple.proto @@ -0,0 +1,6 @@ + +syntax = "proto2"; + +message SimpleMessage { + required int32 lucky_number = 1; +} diff --git a/Tests/packet.cpp b/Tests/packet.cpp index 1343302..bf084d3 100644 --- a/Tests/packet.cpp +++ b/Tests/packet.cpp @@ -5,6 +5,7 @@ #include #include +#include "simple.pb.h" TEST_CASE("Packet copy_data_in copies data in.", "[messaging],[packet]") {