finished freertos unittests, valgrind not happy yet
This commit is contained in:
parent
39dad5f45b
commit
47d85fb61c
69
automation/Jenkinsfile
vendored
69
automation/Jenkinsfile
vendored
@ -2,6 +2,7 @@ pipeline {
|
|||||||
environment {
|
environment {
|
||||||
BUILDDIR_HOST = 'cmake-build-tests-host'
|
BUILDDIR_HOST = 'cmake-build-tests-host'
|
||||||
BUILDDIR_LINUX = 'cmake-build-tests-linux'
|
BUILDDIR_LINUX = 'cmake-build-tests-linux'
|
||||||
|
BUILDDIR_FREERTOS = 'cmake-build-tests-freertos'
|
||||||
DOCDDIR = 'cmake-build-documentation'
|
DOCDDIR = 'cmake-build-documentation'
|
||||||
}
|
}
|
||||||
agent {
|
agent {
|
||||||
@ -12,77 +13,39 @@ pipeline {
|
|||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Host') {
|
stage('Host') {
|
||||||
stages{
|
|
||||||
stage('Clean') {
|
|
||||||
steps {
|
steps {
|
||||||
sh 'rm -rf $BUILDDIR_HOST'
|
sh 'rm -rf $BUILDDIR_HOST'
|
||||||
}
|
|
||||||
}
|
dir(BUILDDIR_LINUX) {
|
||||||
stage('Configure') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_HOST) {
|
|
||||||
sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Build') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_HOST) {
|
|
||||||
sh 'cmake --build . -j4'
|
sh 'cmake --build . -j4'
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Unittests') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_HOST) {
|
|
||||||
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Valgrind') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_HOST) {
|
|
||||||
sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Linux') {
|
stage('Linux') {
|
||||||
stages{
|
|
||||||
stage('Clean') {
|
|
||||||
steps {
|
steps {
|
||||||
sh 'rm -rf $BUILDDIR_LINUX'
|
sh 'rm -rf $BUILDDIR_HOST'
|
||||||
}
|
|
||||||
}
|
dir(BUILDDIR_HOST) {
|
||||||
stage('Configure') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_LINUX) {
|
|
||||||
sh 'cmake -DFSFW_OSAL=linux -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
sh 'cmake -DFSFW_OSAL=linux -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Build') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_LINUX) {
|
|
||||||
sh 'cmake --build . -j4'
|
sh 'cmake --build . -j4'
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Unittests') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_LINUX) {
|
|
||||||
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Valgrind') {
|
|
||||||
steps {
|
|
||||||
dir(BUILDDIR_LINUX) {
|
|
||||||
sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
stage('FreeRTOS') {
|
||||||
|
steps {
|
||||||
|
sh 'rm -rf $BUILDDIR_FREERTOS'
|
||||||
|
|
||||||
|
dir(BUILDDIR_FREERTOS) {
|
||||||
|
sh 'cmake -DFSFW_OSAL=freertos -DFSFW_BUILD_TESTS=ON -DFSFW_CICD_BUILD=ON ..'
|
||||||
|
sh 'cmake --build . -j4'
|
||||||
|
sh 'cmake --build . -- fsfw-tests_coverage -j4'
|
||||||
|
//sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Documentation') {
|
stage('Documentation') {
|
||||||
|
@ -110,11 +110,13 @@ ReturnValue_t Clock::convertTimeOfDayToTimeval(const TimeOfDay_t* from, timeval*
|
|||||||
time_tm.tm_min = from->minute;
|
time_tm.tm_min = from->minute;
|
||||||
time_tm.tm_sec = from->second;
|
time_tm.tm_sec = from->second;
|
||||||
|
|
||||||
time_t seconds = mktime(&time_tm);
|
time_tm.tm_isdst = 0;
|
||||||
|
|
||||||
|
time_t seconds = timegm(&time_tm);
|
||||||
|
|
||||||
to->tv_sec = seconds;
|
to->tv_sec = seconds;
|
||||||
to->tv_usec = from->usecond;
|
to->tv_usec = from->usecond;
|
||||||
// Fails in 2038..
|
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -552,10 +552,7 @@ ReturnValue_t CCSDSTime::convertFromCDS(timeval* to, const CCSDSTime::CDS_short*
|
|||||||
if (to == nullptr or from == nullptr) {
|
if (to == nullptr or from == nullptr) {
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
}
|
}
|
||||||
uint16_t days = (from->dayMSB << 8) + from->dayLSB;
|
int32_t days = (from->dayMSB << 8) + from->dayLSB;
|
||||||
if (days <= DAYS_CCSDS_TO_UNIX_EPOCH) {
|
|
||||||
return INVALID_TIME_FORMAT;
|
|
||||||
}
|
|
||||||
days -= DAYS_CCSDS_TO_UNIX_EPOCH;
|
days -= DAYS_CCSDS_TO_UNIX_EPOCH;
|
||||||
to->tv_sec = days * SECONDS_PER_DAY;
|
to->tv_sec = days * SECONDS_PER_DAY;
|
||||||
uint32_t msDay =
|
uint32_t msDay =
|
||||||
|
@ -24,15 +24,19 @@ extern int customTeardown();
|
|||||||
|
|
||||||
#ifdef FSFW_OSAL_FREERTOS
|
#ifdef FSFW_OSAL_FREERTOS
|
||||||
struct Taskparameters {
|
struct Taskparameters {
|
||||||
int argc; char** argv;
|
int argc; char** argv;TaskHandle_t catchTask;
|
||||||
} taskParameters;
|
} taskParameters;
|
||||||
|
|
||||||
void unittestTaskFunction( void *pvParameters ) {
|
void unittestTaskFunction( void *pvParameters ) {
|
||||||
puts("go");
|
|
||||||
Taskparameters* parameters = (Taskparameters*)pvParameters;
|
Taskparameters* parameters = (Taskparameters*)pvParameters;
|
||||||
|
|
||||||
int result = Catch::Session().run(parameters->argc, parameters->argv);
|
int result = Catch::Session().run(parameters->argc, parameters->argv);
|
||||||
puts("gone");
|
|
||||||
vTaskDelete( NULL );
|
vTaskDelay(pdMS_TO_TICKS(10));
|
||||||
|
vTaskSuspendAll();
|
||||||
|
vTaskDelete(parameters->catchTask);
|
||||||
|
customTeardown();
|
||||||
|
exit(result);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -42,21 +46,17 @@ int main(int argc, char* argv[]) {
|
|||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
puts("pre");
|
|
||||||
|
|
||||||
#ifdef FSFW_OSAL_FREERTOS
|
#ifdef FSFW_OSAL_FREERTOS
|
||||||
puts("task");
|
|
||||||
xTaskCreate( unittestTaskFunction, /* The function that implements the task. */
|
xTaskCreate( unittestTaskFunction, /* The function that implements the task. */
|
||||||
"Unittests", /* The text name assigned to the task - for debug only as it is not used by the kernel. */
|
"Unittests", /* The text name assigned to the task - for debug only as it is not used by the kernel. */
|
||||||
configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */
|
configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */
|
||||||
&taskParameters, /* The parameter passed to the task - not used in this simple case. */
|
&taskParameters, /* The parameter passed to the task - not used in this simple case. */
|
||||||
1, /* The priority assigned to the task. */
|
1, /* The priority assigned to the task. */
|
||||||
NULL ); /* The task handle is not required, so NULL is passed. */
|
&taskParameters.catchTask); /* The task handle is not required, so NULL is passed. */
|
||||||
taskParameters.argc = argc;
|
taskParameters.argc = argc;
|
||||||
taskParameters.argv = argv;
|
taskParameters.argv = argv;
|
||||||
vTaskStartScheduler();
|
vTaskStartScheduler();
|
||||||
#else
|
#else
|
||||||
puts("nom");
|
|
||||||
// Catch internal function call
|
// Catch internal function call
|
||||||
result = Catch::Session().run(argc, argv);
|
result = Catch::Session().run(argc, argv);
|
||||||
#endif
|
#endif
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
#include <catch2/catch_approx.hpp>
|
#include <catch2/catch_approx.hpp>
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "CatchDefinitions.h"
|
#include "CatchDefinitions.h"
|
||||||
|
|
||||||
TEST_CASE("OSAL::Clock Test", "[OSAL::Clock Test]") {
|
TEST_CASE("OSAL::Clock Test", "[OSAL::Clock Test]") {
|
||||||
|
@ -4,11 +4,9 @@
|
|||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
|
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
|
||||||
#define configUSE_TICKLESS_IDLE 0
|
#define configUSE_TICKLESS_IDLE 0
|
||||||
#define configCPU_CLOCK_HZ 60000000
|
#define configTICK_RATE_HZ 1000
|
||||||
#define configSYSTICK_CLOCK_HZ 1000000
|
|
||||||
#define configTICK_RATE_HZ 250
|
|
||||||
#define configMAX_PRIORITIES 5
|
#define configMAX_PRIORITIES 5
|
||||||
#define configMINIMAL_STACK_SIZE 128
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) PTHREAD_STACK_MIN )
|
||||||
#define configMAX_TASK_NAME_LEN 16
|
#define configMAX_TASK_NAME_LEN 16
|
||||||
#define configUSE_16_BIT_TICKS 0
|
#define configUSE_16_BIT_TICKS 0
|
||||||
#define configIDLE_SHOULD_YIELD 1
|
#define configIDLE_SHOULD_YIELD 1
|
||||||
@ -18,7 +16,7 @@
|
|||||||
#define configUSE_RECURSIVE_MUTEXES 0
|
#define configUSE_RECURSIVE_MUTEXES 0
|
||||||
#define configUSE_COUNTING_SEMAPHORES 1
|
#define configUSE_COUNTING_SEMAPHORES 1
|
||||||
#define configUSE_ALTERNATIVE_API 0 /* Deprecated! */
|
#define configUSE_ALTERNATIVE_API 0 /* Deprecated! */
|
||||||
#define configQUEUE_REGISTRY_SIZE 10
|
#define configQUEUE_REGISTRY_SIZE 20
|
||||||
#define configUSE_QUEUE_SETS 0
|
#define configUSE_QUEUE_SETS 0
|
||||||
#define configUSE_TIME_SLICING 0
|
#define configUSE_TIME_SLICING 0
|
||||||
#define configUSE_NEWLIB_REENTRANT 0
|
#define configUSE_NEWLIB_REENTRANT 0
|
||||||
@ -32,7 +30,7 @@
|
|||||||
/* Memory allocation related definitions. */
|
/* Memory allocation related definitions. */
|
||||||
#define configSUPPORT_STATIC_ALLOCATION 0
|
#define configSUPPORT_STATIC_ALLOCATION 0
|
||||||
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
||||||
#define configTOTAL_HEAP_SIZE 10240
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 1024 * 1024 ) )
|
||||||
#define configAPPLICATION_ALLOCATED_HEAP 1
|
#define configAPPLICATION_ALLOCATED_HEAP 1
|
||||||
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
|
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user