Move tests, add applicaiton tests. (#1031)

Co-authored-by: kallanreed <kallanreed@outlook.com>
This commit is contained in:
Kyle Reed 2023-05-21 17:33:12 -07:00 committed by GitHub
parent 4d1269051b
commit 6c541af0fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 7434 additions and 7123 deletions

View File

@ -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

View 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)

View 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
)

View 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);
}

View 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();

View File

@ -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
) )

View 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"

File diff suppressed because it is too large Load Diff