mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-12-24 06:49:24 -05:00
Move tests, add applicaiton tests. (#1031)
Co-authored-by: kallanreed <kallanreed@outlook.com>
This commit is contained in:
parent
4d1269051b
commit
6c541af0fd
@ -35,7 +35,7 @@ set(FIRMWARE_FILENAME ${FIRMWARE_NAME}.bin)
|
|||||||
|
|
||||||
add_subdirectory(application)
|
add_subdirectory(application)
|
||||||
add_subdirectory(baseband)
|
add_subdirectory(baseband)
|
||||||
add_subdirectory(baseband-test)
|
add_subdirectory(test)
|
||||||
|
|
||||||
# NOTE: Dependencies break if the .bin files aren't included in DEPENDS. WTF, CMake?
|
# NOTE: Dependencies break if the .bin files aren't included in DEPENDS. WTF, CMake?
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
|
File diff suppressed because it is too large
Load Diff
30
firmware/test/CMakeLists.txt
Normal file
30
firmware/test/CMakeLists.txt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright (C) 2023 Bernd Herzog, Kyle Reed
|
||||||
|
#
|
||||||
|
# This file is part of PortaPack.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
project(tests)
|
||||||
|
|
||||||
|
set(DOCTESTINC ${PROJECT_SOURCE_DIR}/include)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
add_subdirectory(application)
|
||||||
|
add_subdirectory(baseband)
|
||||||
|
|
||||||
|
add_custom_target(build_tests)
|
||||||
|
add_dependencies(build_tests application_test baseband_test)
|
70
firmware/test/application/CMakeLists.txt
Normal file
70
firmware/test/application/CMakeLists.txt
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# Copyright (C) 2023 Bernd Herzog, Kyle Reed
|
||||||
|
#
|
||||||
|
# This file is part of PortaPack.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; see the file COPYING. If not, write to
|
||||||
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
project(application_test)
|
||||||
|
|
||||||
|
enable_language(C CXX ASM)
|
||||||
|
|
||||||
|
include(${CHIBIOS_PORTAPACK}/boards/PORTAPACK_APPLICATION/board.cmake)
|
||||||
|
include(${CHIBIOS_PORTAPACK}/os/hal/platforms/LPC43xx_M0/platform.cmake)
|
||||||
|
include(${CHIBIOS}/os/hal/hal.cmake)
|
||||||
|
include(${CHIBIOS_PORTAPACK}/os/ports/GCC/ARMCMx/LPC43xx_M0/port.cmake)
|
||||||
|
include(${CHIBIOS}/os/kernel/kernel.cmake)
|
||||||
|
include(${CHIBIOS_PORTAPACK}/os/various/fatfs_bindings/fatfs.cmake)
|
||||||
|
include(${CHIBIOS}/test/test.cmake)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_COMPILER g++)
|
||||||
|
|
||||||
|
add_executable(application_test EXCLUDE_FROM_ALL
|
||||||
|
${PROJECT_SOURCE_DIR}/main.cpp
|
||||||
|
${PROJECT_SOURCE_DIR}/test_basics.cpp
|
||||||
|
${PROJECT_SOURCE_DIR}/test_optional.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(application_test PRIVATE
|
||||||
|
${DOCTESTINC}
|
||||||
|
${COMMON}
|
||||||
|
${PORTINC}
|
||||||
|
${KERNINC}
|
||||||
|
${TESTINC}
|
||||||
|
${HALINC}
|
||||||
|
${PLATFORMINC}
|
||||||
|
${BOARDINC}
|
||||||
|
${CHIBIOS}/os/various
|
||||||
|
${BASEBAND}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_compile_options(application_test PRIVATE
|
||||||
|
-DLPC43XX
|
||||||
|
-DLPC43XX_M0
|
||||||
|
-D__NEWLIB__
|
||||||
|
-DHACKRF_ONE
|
||||||
|
-DTOOLCHAIN_GCC
|
||||||
|
-DTOOLCHAIN_GCC_ARM
|
||||||
|
-D_RANDOM_TCC=0
|
||||||
|
-DVERSION_STRING=\"${VERSION}\"
|
||||||
|
${USE_CPPOPT}
|
||||||
|
${USE_OPT}
|
||||||
|
${CPPWARN}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_test(NAME application_test
|
||||||
|
COMMAND application_test
|
||||||
|
)
|
27
firmware/test/application/test_basics.cpp
Normal file
27
firmware/test/application/test_basics.cpp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023
|
||||||
|
*
|
||||||
|
* This file is part of PortaPack.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
* any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; see the file COPYING. If not, write to
|
||||||
|
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "doctest.h"
|
||||||
|
|
||||||
|
TEST_CASE("Testing test framework") {
|
||||||
|
REQUIRE(1 == 1);
|
||||||
|
REQUIRE_FALSE(1 == 2);
|
||||||
|
}
|
42
firmware/test/application/test_optional.cpp
Normal file
42
firmware/test/application/test_optional.cpp
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023
|
||||||
|
*
|
||||||
|
* This file is part of PortaPack.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
* any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; see the file COPYING. If not, write to
|
||||||
|
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "doctest.h"
|
||||||
|
#include "optional.hpp"
|
||||||
|
|
||||||
|
TEST_SUITE_BEGIN("optional");
|
||||||
|
|
||||||
|
TEST_CASE("Default instance should not be valid.") {
|
||||||
|
Optional<int> o;
|
||||||
|
REQUIRE_FALSE(o.is_valid());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Instance with value should be valid.") {
|
||||||
|
Optional<int> o{1};
|
||||||
|
REQUIRE(o.is_valid());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("value() should return value.") {
|
||||||
|
Optional<int> o{1};
|
||||||
|
REQUIRE(o.value() == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_SUITE_END();
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2023 Bernd Herzog
|
# Copyright (C) 2023 Bernd Herzog, Kyle Reed
|
||||||
#
|
#
|
||||||
# This file is part of PortaPack.
|
# This file is part of PortaPack.
|
||||||
#
|
#
|
||||||
@ -18,30 +18,27 @@
|
|||||||
# Boston, MA 02110-1301, USA.
|
# Boston, MA 02110-1301, USA.
|
||||||
#
|
#
|
||||||
|
|
||||||
enable_language(C CXX ASM)
|
|
||||||
|
|
||||||
project(baseband_test)
|
project(baseband_test)
|
||||||
|
|
||||||
|
enable_language(C CXX ASM)
|
||||||
|
|
||||||
include(${CHIBIOS_PORTAPACK}/boards/PORTAPACK_BASEBAND/board.cmake)
|
include(${CHIBIOS_PORTAPACK}/boards/PORTAPACK_BASEBAND/board.cmake)
|
||||||
include(${CHIBIOS_PORTAPACK}/os/hal/platforms/LPC43xx_M4/platform.cmake)
|
include(${CHIBIOS_PORTAPACK}/os/hal/platforms/LPC43xx_M4/platform.cmake)
|
||||||
include(${CHIBIOS}/os/hal/hal.cmake)
|
include(${CHIBIOS}/os/hal/hal.cmake)
|
||||||
include(${CHIBIOS_PORTAPACK}/os/ports/GCC/ARMCMx/LPC43xx_M4/port.cmake)
|
include(${CHIBIOS_PORTAPACK}/os/ports/GCC/ARMCMx/LPC43xx_M4/port.cmake)
|
||||||
include(${CHIBIOS}/os/kernel/kernel.cmake)
|
include(${CHIBIOS}/os/kernel/kernel.cmake)
|
||||||
|
|
||||||
include(${CHIBIOS}/test/test.cmake)
|
include(${CHIBIOS}/test/test.cmake)
|
||||||
|
|
||||||
set(TEST_FILENAME testrunner)
|
set(CMAKE_CXX_COMPILER g++)
|
||||||
set(HOST_TOOLCHAIN g++)
|
|
||||||
set(DDEFS -DLPC43XX -DLPC43XX_M4 -D__NEWLIB__ -DHACKRF_ONE -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -D_RANDOM_TCC=0 -D'VERSION_STRING=\"${VERSION}\"')
|
|
||||||
|
|
||||||
set(CPP_FILES
|
add_executable(baseband_test EXCLUDE_FROM_ALL
|
||||||
${PROJECT_SOURCE_DIR}/main.cpp
|
${PROJECT_SOURCE_DIR}/main.cpp
|
||||||
${PROJECT_SOURCE_DIR}/dsp_fft_test.cpp
|
${PROJECT_SOURCE_DIR}/dsp_fft_test.cpp
|
||||||
${COMMON}/dsp_fft.cpp
|
${COMMON}/dsp_fft.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(CPP_INCLUDES
|
target_include_directories(baseband_test PRIVATE
|
||||||
${PROJECT_SOURCE_DIR}/include
|
${DOCTESTINC}
|
||||||
${COMMON}
|
${COMMON}
|
||||||
${PORTINC}
|
${PORTINC}
|
||||||
${KERNINC}
|
${KERNINC}
|
||||||
@ -53,12 +50,17 @@ set(CPP_INCLUDES
|
|||||||
${BASEBAND}
|
${BASEBAND}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(
|
target_compile_options(baseband_test PRIVATE
|
||||||
baseband_test ALL
|
-DLPC43XX
|
||||||
COMMAND echo ${CPP_INCLUDES} | sed "s/[^[:space:]]*/-I \\\\0/g" > include_files
|
-DLPC43XX_M4
|
||||||
COMMAND ${HOST_TOOLCHAIN} ${DDEFS} -o ${TEST_FILENAME} -g ${CPP_FILES} `cat include_files`
|
-D__NEWLIB__
|
||||||
|
-DHACKRF_ONE
|
||||||
|
-DTOOLCHAIN_GCC
|
||||||
|
-DTOOLCHAIN_GCC_ARM
|
||||||
|
-D_RANDOM_TCC=0
|
||||||
|
-DVERSION_STRING=\"${VERSION}\"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_test(NAME /home/j39f3fs/dev/portapack-mayhem
|
add_test(NAME baseband_test
|
||||||
COMMAND ${TEST_FILENAME}
|
COMMAND baseband_test
|
||||||
)
|
)
|
23
firmware/test/baseband/main.cpp
Normal file
23
firmware/test/baseband/main.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 Bernd Herzog
|
||||||
|
*
|
||||||
|
* This file is part of PortaPack.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
* any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; see the file COPYING. If not, write to
|
||||||
|
* the Free Software Foundation, Inc., 51 Franklin Street,
|
||||||
|
* Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
|
||||||
|
#include "doctest.h"
|
7223
firmware/test/include/doctest.h
Normal file
7223
firmware/test/include/doctest.h
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user