Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: add unit test for metadata of device info key format from noports #404

Merged
merged 4 commits into from
Sep 20, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 67 additions & 4 deletions packages/atclient/tests/test_atkey_metadata.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "atclient/metadata.h"
#include "atlogger/atlogger.h"
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>

// example:
// "metaData":{
Expand Down Expand Up @@ -179,13 +179,15 @@ static int test_atkey_metadata_from_jsonstr() {

if (atclient_atkey_metadata_is_available_at_initialized(&metadata)) {
ret = 1;
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR, "atclient_atkey_metadata_isavailableat_initialized is intiialized when it should not be\n");
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR,
"atclient_atkey_metadata_isavailableat_initialized is intiialized when it should not be\n");
XavierChanth marked this conversation as resolved.
Show resolved Hide resolved
goto exit;
}

if(atclient_atkey_metadata_is_refresh_at_initialized(&metadata)) {
if (atclient_atkey_metadata_is_refresh_at_initialized(&metadata)) {
ret = 1;
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR, "atclient_atkey_metadata_isrefreshat_initialized is intiialized when it should not be\n");
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR,
"atclient_atkey_metadata_isrefreshat_initialized is intiialized when it should not be\n");
XavierChanth marked this conversation as resolved.
Show resolved Hide resolved
goto exit;
}

Expand Down Expand Up @@ -318,6 +320,63 @@ exit: {
}
}

// This tests the parameters used to generate device info keys in noports
static int test_atkey_metadata_to_protocolstr2() {
int ret = 1;

const char *expected = ":ttl:2592000000:ttr:-1:ccd:true:isEncrypted:true:ivNonce:abcdefghijk";
const size_t expectedlen = strlen(expected);

atclient_atkey_metadata metadata;
atclient_atkey_metadata_init(&metadata);

atclient_atkey_metadata_set_is_public(&metadata, false);
atclient_atkey_metadata_set_is_encrypted(&metadata, true);
atclient_atkey_metadata_set_ttr(&metadata, -1);
atclient_atkey_metadata_set_ccd(&metadata, true);
atclient_atkey_metadata_set_ttl(&metadata, (long)30 * 24 * 60 * 60 * 1000); // 30 days in ms
atclient_atkey_metadata_set_iv_nonce(&metadata, "abcdefghijk");

char *protocolfragment = NULL;
const size_t expected_protocolframent_len = atclient_atkey_metadata_protocol_strlen(&metadata);

if ((ret = atclient_atkey_metadata_to_protocol_str(&metadata, &protocolfragment)) != 0) {
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR, "atclient_atkey_metadata_to_protocolstr failed");
goto exit;
}

const size_t actual_protocolfragment_len = strlen(protocolfragment);

if (actual_protocolfragment_len != expected_protocolframent_len) {
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR,
"actual_protocolfragment_len != expected_protocolframent_len: %lu != %lu", actual_protocolfragment_len,
expected_protocolframent_len);
ret = 1;
goto exit;
}

if (actual_protocolfragment_len != expectedlen) {
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR, "actual_protocolfragment_len != expectedlen: %lu != %lu",
actual_protocolfragment_len, expectedlen);
ret = 1;
goto exit;
}

if (strcmp(protocolfragment, expected) != 0) {
atlogger_log(TAG, ATLOGGER_LOGGING_LEVEL_ERROR, "strncmp(protocolfragment, expected) != 0: %s != %s",
protocolfragment, expected);
ret = 1;
goto exit;
}

ret = 0;
goto exit;
exit: {
atclient_atkey_metadata_free(&metadata);
return ret;
}
}

static int test_atkey_metadata_to_jsonstr() {
int ret = 1;

Expand Down Expand Up @@ -362,6 +421,10 @@ int main() {
goto exit;
}

if ((ret = test_atkey_metadata_to_protocolstr2()) != 0) {
goto exit;
}

ret = 0;
goto exit;
exit: { return ret; }
Expand Down