Testing Rainmaker

JoshNOA
Posts: 25
Joined: Wed Aug 02, 2023 12:19 pm

Testing Rainmaker

Postby JoshNOA » Wed Aug 02, 2023 12:31 pm

Hi All,

New here so I apologise in advance if this post is a little malformed.

I am currently working with Rainmaker on the ESP32S2 for work, but I am having trouble understanding the expected method of testing for Rainmaker.

Internally we use Unity.h as our test framework, and have had decent results with it.

Currently I am trying very simple tests whilst I get the hang of Rainmaker, but I am struggling to deinit properly.

My test code is as follows:

Code: Select all

#include "unity.h"
#include "wifi.h"
#include "storage.h"
#include "rainmaker.h"
#include "rmaker_insights.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"

static const char *TAG = "Rainmaker Test";

#define PARAM_ID_1 0
#define PARAM_ID_2 1
#define PARAM_ID_3 2

#define TYPE_ID_1 0
#define TYPE_ID_2 1

static Rainmaker_Handle_t handle;
static bool setup_complete = false;

static bool valid_rainmaker_init(void)
{
    return Rainmaker_Init("Test-node", "Test type");
}

static void rainmaker_setUp(void)
{
    ESP_LOGW(TAG, "SETUP");
    Storage_Init_Custom_Partition("nvs");
    Wifi_Init(false);
    Rainmaker_Init("Test-node", "Test type");
    Rainmaker_Enable_Insights();
    Rainmaker_Start();
}

static void rainmaker_tearDown(void)
{

    ESP_LOGW(TAG, "TEARDOWN");
    Rainmaker_Stop();
    Rainmaker_Deinit();
    Wifi_Deinit();
    Storage_Delete_All_And_Deinit("nvs");
}

static void callback(uint8_t type, uint8_t param, uint8_t val)
{
    return;
}

TEST_CASE("Successful init of rainmaker", "[Rainmaker]")
{
    rainmaker_setUp();
    TEST_ASSERT_TRUE(is_rainmaker_init());
    TEST_ASSERT_TRUE(Rainmaker_Get_Init());
    rainmaker_tearDown();
    UnityConcludeTest();
}

TEST_CASE("Successful deinit of rainmaker", "[Rainmaker]")
{
    rainmaker_setUp();
    rainmaker_tearDown();
    TEST_ASSERT_FALSE(is_rainmaker_init());
    UnityConcludeTest();
}
Which Results in the following logs:

Code: Select all

#### Starting interactive test menu #####

Select a test group:
100. switch 
101. flow sensor 
102. rainmaker 
103. storage 
104. wifi 
105. button 
106. local coms 
107. local coms OTA 
108. temp 
109. led 
110. ota update 
111. https coms 
Please enter an integer between 100 and 999: 
102
Press enter to confirm the option.

#### Starting interactive test menu for component Rainmaker #####

Please Select one of the following options: 
 
1. Run All Tests 
2. Run A Named Test 

#### Running Rainmaker tests #####

Running tests matching 'Rainmaker'...
Running Successful init of rainmaker...
W (6758) Rainmaker Test: SETUP
I (6763) Wifi: Wifi Init
I (6764) Wifi: nefit_sta init
I (6768) wifi:wifi driver task: 3ffe7650, prio:23, stack:6656, core=0
I (6771) wifi:wifi firmware version: b2f1f86
I (6771) wifi:wifi certification version: v7.0
I (6774) wifi:config NVS flash: enabled
I (6778) wifi:config nano formating: disabled
I (6782) wifi:Init data frame dynamic rx buffer num: 32
I (6787) wifi:Init management frame dynamic rx buffer num: 32
I (6792) wifi:Init management short buffer num: 32
I (6797) wifi:Init dynamic tx buffer num: 32
I (6801) wifi:Init static rx buffer size: 1600
I (6805) wifi:Init static rx buffer num: 10
I (6809) wifi:Init dynamic rx buffer num: 32
I (6814) wifi_init: rx ba win: 6
I (6817) wifi_init: tcpip mbox: 32
I (6821) wifi_init: udp mbox: 6
I (6825) wifi_init: tcp mbox: 6
I (6828) wifi_init: tcp tx win: 5744
I (6833) wifi_init: tcp rx win: 5744
I (6837) wifi_init: tcp mss: 1440
I (6841) wifi_init: WiFi IRAM OP enabled
I (6846) wifi_init: WiFi RX IRAM OP enabled
I (6854) esp_rmaker_work_queue: Work Queue created.
I (6862) esp_mqtt_glue: AWS PPI: ?Platform=APN3|A0|RM|EX00|RMDev|1x0|84F703DB4212
I (6864) esp_mqtt_glue: Initialising MQTT
I (6869) esp_rmaker_mqtt_budget: MQTT Budgeting initialised. Default: 100, Max: 1024, Revive count: 1, Revive period: 5
I (6880) esp_rmaker_node: Node ID ----- UUTpXHzAQWj7CnsZ6o8uGE
I (6887) esp_rmaker_time_service: Time service enabled
I (6893) Insights: Enabling insights
W (6897) Insights: Event loop creation failed with ESP_ERR_INVALID_STATE. Proceeding since it must have been created elsewhere.
I (6911) heap_metrics: free:0x11190 lfb:0xb800 min_free_ever:0x11190
I (6917) esp_insights: =========================================
I (6923) esp_insights: Insights enabled for Node ID UUTpXHzAQWj7CnsZ6o8uGE
I (6930) esp_insights: =========================================
I (6937) Rainmaker: Rainmaker start
E (6941) Rainmaker: No valid types to start
W (6946) Rainmaker Test: TEARDOWN
W (6950) insights_transport: disconnect callback not set
I (6956) esp_insights: Deleting the periodic timer
I (6962) esp_rmaker_work_queue: esp_rmaker_work_queue was successfully deinitialized
E (6970) esp_rmaker_core: ESP RainMaker is still running. Please stop it first.
I (6978) Wifi: Start Deinit
I (6982) wifi:Deinit lldesc rx mblock:10
I (6986) Wifi: nefit_sta destroy
W (6989) Storage: Deleteing nvs partition
/workspaces/Xarkle-hub/components/rainmaker/test/rainmaker_test.c:63:Successful init of rainmaker:PASS
/workspaces/Xarkle-hub/components/rainmaker/test/rainmaker_test.c:63:Successful init of rainmaker:PASS
Running Successful deinit of rainmaker...
W (7306) Rainmaker Test: SETUP
I (7311) Wifi: Wifi Init
I (7312) Wifi: nefit_sta init
I (7315) wifi:wifi driver task: 3ffeeb24, prio:23, stack:6656, core=0
I (7318) wifi:wifi firmware version: b2f1f86
I (7318) wifi:wifi certification version: v7.0
I (7322) wifi:config NVS flash: enabled
I (7326) wifi:config nano formating: disabled
I (7330) wifi:Init data frame dynamic rx buffer num: 32
I (7335) wifi:Init management frame dynamic rx buffer num: 32
I (7341) wifi:Init management short buffer num: 32
I (7345) wifi:Init dynamic tx buffer num: 32
I (7349) wifi:Init static rx buffer size: 1600
I (7353) wifi:Init static rx buffer num: 10
I (7357) wifi:Init dynamic rx buffer num: 32
I (7362) wifi_init: rx ba win: 6
I (7365) wifi_init: tcpip mbox: 32
I (7369) wifi_init: udp mbox: 6
I (7373) wifi_init: tcp mbox: 6
I (7377) wifi_init: tcp tx win: 5744
I (7381) wifi_init: tcp rx win: 5744
I (7385) wifi_init: tcp mss: 1440
I (7389) wifi_init: WiFi IRAM OP enabled
I (7394) wifi_init: WiFi RX IRAM OP enabled
E (7399) esp_rmaker_core: ESP RainMaker already initialised
E (7405) Rainmaker: Could not initialise node
E (7410) Rainmaker: Rainmaker is not init, can't enable insights
I (7417) Rainmaker: Rainmaker start
E (7421) Rainmaker: No valid types to start
W (7426) Rainmaker Test: TEARDOWN
E (7430) insights_transport: Transport callbacks not registered
E (7436) insights_transport: Not initialized
E (7441) esp_rmaker_core: ESP RainMaker is still running. Please stop it first.
I (7449) Wifi: Start Deinit
I (7454) wifi:Deinit lldesc rx mblock:10
I (7458) Wifi: nefit_sta destroy
W (7461) Storage: Deleteing nvs partition
/workspaces/Xarkle-hub/components/rainmaker/test/rainmaker_test.c:71:Successful deinit of rainmaker:PASS
/workspaces/Xarkle-hub/components/rainmaker/test/rainmaker_test.c:71:Successful deinit of rainmaker:PASS

-----------------------
2 Tests 0 Failures 0 Ignored 
OK
As far as i can tell I cannot deinit Rainmaker, as the esp_rmaker_priv_data->state is not equal to ESP_RMAKER_STATE_INIT_DONE. Leading me to believe that I cant deinit because I have not correctly init!

Any pointers, help or advice is greatly welcomed. If you would require additional logs or code then let me know!

ESP_Piyush
Posts: 309
Joined: Wed Feb 20, 2019 7:02 am

Re: Testing Rainmaker

Postby ESP_Piyush » Wed Aug 02, 2023 5:45 pm

I think this is a duplicate of this post: viewtopic.php?f=41&t=34987&p=117909#p117894

Who is online

Users browsing this forum: No registered users and 12 guests