fix in MAC equality check fn

This commit is contained in:
Hendrik Schutter 2021-01-27 11:43:30 +01:00
parent 78dbbfaba5
commit a930f709ff
2 changed files with 76 additions and 7 deletions

View File

@ -320,13 +320,13 @@ bool bMeshNetworkCheckMacEquality(const uint8_t* const cpcu8aMAC, const uint8_t*
bool bRet = true; bool bRet = true;
uint8_t index = 0; uint8_t index = 0;
while ((index < 6) && (bRet == true)) while ((index < 10) && (bRet == true))
{ {
if(cpcu8aMAC[index] != cpcu8bMAC[index]) if(cpcu8aMAC[index] != cpcu8bMAC[index])
{ {
bRet = false; bRet = false;
} }
/*
if(index == 5) if(index == 5)
{ {
//last byte of mac //last byte of mac
@ -335,6 +335,7 @@ bool bMeshNetworkCheckMacEquality(const uint8_t* const cpcu8aMAC, const uint8_t*
bRet = true; //last byte differs 1 ore less bRet = true; //last byte differs 1 ore less
} }
} }
*/
index++; index++;
} }
return bRet; return bRet;

View File

@ -3,6 +3,7 @@
#include "Mesh_OTA_Util.h" #include "Mesh_OTA_Util.h"
#include "test_image_hex.h" #include "test_image_hex.h"
#include "Mesh_Network.h"
// ### ### ### distinguish newer image version ### ### ### // ### ### ### distinguish newer image version ### ### ###
@ -206,11 +207,78 @@ TEST_CASE("extract version 999.99.999", "[extract image version number]")
} }
TEST_CASE("same MACs", "[check MAC equality]")
{
unsigned char cMAC_A[] = "012345678901";
unsigned char cMAC_B[] = "012345678901";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("different MACs", "[check MAC equality]")
{
unsigned char cMAC_A[] = "012345678901";
unsigned char cMAC_B[] = "087464874718";
TEST_ASSERT_FALSE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("same MACs last A_byte+1", "[check MAC equality]")
{
unsigned char cMAC_A[] = "012345678902";
unsigned char cMAC_B[] = "012345678901";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("same MACs last B_byte+1", "[check MAC equality]")
{
unsigned char cMAC_A[] = "012345678901";
unsigned char cMAC_B[] = "012345678902";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("same MACs last B_byte+2", "[check MAC equality]")
{
unsigned char cMAC_A[] = "012345678901";
unsigned char cMAC_B[] = "012345678903";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("different MACs last B_byte+2", "[check MAC equality]")
{
unsigned char cMAC_A[] = "012344678901";
unsigned char cMAC_B[] = "012345678903";
TEST_ASSERT_FALSE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("same Node0", "[check MAC equality]")
{
unsigned char cMAC_A[] = "ac67b27162b0";
unsigned char cMAC_B[] = "ac67b27162b0";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("same Node0 first MAC+1", "[check MAC equality]")
{
unsigned char cMAC_A[] = "ac67b27162b1";
unsigned char cMAC_B[] = "ac67b27162b0";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}
TEST_CASE("same Node0 second MAC+1", "[check MAC equality]")
{
unsigned char cMAC_A[] = "ac67b27162b0";
unsigned char cMAC_B[] = "ac67b27162b1";
TEST_ASSERT_TRUE( bMeshNetworkCheckMacEquality(cMAC_A,cMAC_B) );
}