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;
uint8_t index = 0;
while ((index < 6) && (bRet == true))
while ((index < 10) && (bRet == true))
{
if(cpcu8aMAC[index] != cpcu8bMAC[index])
{
bRet = false;
}
/*
if(index == 5)
{
//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
}
}
*/
index++;
}
return bRet;

View File

@ -3,6 +3,7 @@
#include "Mesh_OTA_Util.h"
#include "test_image_hex.h"
#include "Mesh_Network.h"
// ### ### ### 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) );
}