added test-framework

This commit is contained in:
2021-01-02 00:30:13 +01:00
parent fb5924cff1
commit 563a7b19a8
19 changed files with 1431 additions and 49 deletions

View File

@ -0,0 +1,2 @@
idf_component_register(SRCS "mesh_ota.c"
INCLUDE_DIRS "include")

View File

View File

@ -0,0 +1,12 @@
#include <string.h>
#include "esp_system.h"
#include "esp_event.h"
#include "esp_log.h"
bool bNewerVersion(const char* pu8Local, const char* pu8Remote);

View File

@ -0,0 +1,42 @@
#include "mesh_ota.h"
/*
* 999.999.999
* Return true if remote version is newer (higher) than local version
*/
bool bNewerVersion(const char* pu8Local, const char* pu8Remote){
char u8LocalTmp[12];
char u8RemoteTmp[12];
char* pu8saveptrLocal;
char* pu8saveptrRemote;
strcpy(u8LocalTmp, pu8Local);
strcpy(u8RemoteTmp, pu8Remote);
char* pu8TokenLocal = strtok_r(u8LocalTmp, ".", &pu8saveptrLocal);
char* pu8TokenRemote = strtok_r(u8RemoteTmp, ".", &pu8saveptrRemote) ;
bool bReturn = false;
uint8_t u8Index = 0;
while( (u8Index <= 2) && (bReturn == false)){
u8Index++;
if(atoi(pu8TokenLocal) < atoi(pu8TokenRemote))
{
bReturn = true;
}
pu8TokenLocal = strtok_r(NULL, ".", &pu8saveptrLocal);
pu8TokenRemote = strtok_r(NULL, ".", &pu8saveptrRemote) ;
}
return bReturn;
}

View File

@ -0,0 +1,3 @@
idf_component_register(SRC_DIRS "."
INCLUDE_DIRS "."
REQUIRES cmock mesh_ota)

View File

@ -0,0 +1,7 @@
# This is the minimal test component makefile.
#
# The following line is needed to force the linker to include all the object
# files into the application, even if the functions in these object files
# are not referenced from outside (which is usually the case for unit tests).
#
COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive

View File

@ -0,0 +1,59 @@
#include <limits.h>
#include "unity.h"
#include "mesh_ota.h"
TEST_CASE("Remote got patch", "[distinguish newer image version]")
{
char versionLocal[] = "1.2.3"; //current running image
char versionRemote[] = "1.2.4"; //image from server
TEST_ASSERT_TRUE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Remote got minor", "[distinguish newer image version]")
{
char versionLocal[] = "1.2.3"; //current running image
char versionRemote[] = "1.3.3"; //image from server
TEST_ASSERT_TRUE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Remote got major", "[distinguish newer image version]")
{
char versionLocal[] = "1.2.3"; //current running image
char versionRemote[] = "2.2.3"; //image from server
TEST_ASSERT_TRUE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Local got patch", "[distinguish newer image version]")
{
char versionLocal[] = "1.2.4"; //current running image
char versionRemote[] = "1.2.3"; //image from server
TEST_ASSERT_FALSE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Local got minor", "[distinguish newer image version]")
{
char versionLocal[] = "1.3.3"; //current running image
char versionRemote[] = "1.2.3"; //image from server
TEST_ASSERT_FALSE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Local got major", "[distinguish newer image version]")
{
char versionLocal[] = "2.2.3"; //current running image
char versionRemote[] = "1.2.3"; //image from server
TEST_ASSERT_FALSE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Remote got alpha and patch", "[distinguish newer image version]")
{
char versionLocal[] = "2.2.3"; //current running image
char versionRemote[] = "a2.2.4"; //image from server
TEST_ASSERT_TRUE( bNewerVersion(versionLocal, versionRemote) );
}
TEST_CASE("Remote got max", "[distinguish newer image version]")
{
char versionLocal[] = "2.2.3"; //current running image
char versionRemote[] = "999.999.999"; //image from server
TEST_ASSERT_TRUE( bNewerVersion(versionLocal, versionRemote) );
}