added test-framework
This commit is contained in:
2
components/mesh_ota/CMakeLists.txt
Normal file
2
components/mesh_ota/CMakeLists.txt
Normal file
@ -0,0 +1,2 @@
|
||||
idf_component_register(SRCS "mesh_ota.c"
|
||||
INCLUDE_DIRS "include")
|
0
components/mesh_ota/component.mk
Normal file
0
components/mesh_ota/component.mk
Normal file
12
components/mesh_ota/include/mesh_ota.h
Normal file
12
components/mesh_ota/include/mesh_ota.h
Normal 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);
|
42
components/mesh_ota/mesh_ota.c
Normal file
42
components/mesh_ota/mesh_ota.c
Normal 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;
|
||||
}
|
3
components/mesh_ota/test/CMakeLists.txt
Normal file
3
components/mesh_ota/test/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
idf_component_register(SRC_DIRS "."
|
||||
INCLUDE_DIRS "."
|
||||
REQUIRES cmock mesh_ota)
|
7
components/mesh_ota/test/component.mk
Normal file
7
components/mesh_ota/test/component.mk
Normal 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
|
59
components/mesh_ota/test/test_mesh_ota.c
Normal file
59
components/mesh_ota/test/test_mesh_ota.c
Normal 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) );
|
||||
}
|
Reference in New Issue
Block a user