Compare commits
2 commits
main
...
feature/js
Author | SHA1 | Date | |
---|---|---|---|
|
7d570b4761 | ||
|
0c2314a413 |
6 changed files with 156 additions and 1 deletions
|
@ -159,9 +159,19 @@ build_flags =
|
||||||
[env:native_test_only]
|
[env:native_test_only]
|
||||||
platform = native
|
platform = native
|
||||||
test_framework = unity
|
test_framework = unity
|
||||||
|
lib_deps =
|
||||||
|
ArduinoJson
|
||||||
|
fabiobatsilva/ArduinoFake@^0.4.0
|
||||||
|
lib_compat_mode = off
|
||||||
|
test_build_src = yes
|
||||||
|
build_src_filter =
|
||||||
|
-<*> ; exclude all files by default
|
||||||
|
+<lib/bitaxe_fetch.cpp> ; include only specific files you need
|
||||||
build_flags =
|
build_flags =
|
||||||
${btclock_base.build_flags}
|
${btclock_base.build_flags}
|
||||||
-D MCP_INT_PIN=8
|
-D MCP_INT_PIN=8
|
||||||
-D NEOPIXEL_PIN=34
|
-D NEOPIXEL_PIN=34
|
||||||
-D NEOPIXEL_COUNT=4
|
-D NEOPIXEL_COUNT=4
|
||||||
-D NUM_SCREENS=7
|
-D NUM_SCREENS=7
|
||||||
|
-DUNIT_TEST
|
||||||
|
-std=gnu++17
|
20
test/test_json/data/20241219-test-braiins.json
Normal file
20
test/test_json/data/20241219-test-braiins.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"username": "bd123",
|
||||||
|
"btc": {
|
||||||
|
"all_time_reward": "0.00012536",
|
||||||
|
"hash_rate_unit": "Gh/s",
|
||||||
|
"hash_rate_5m": 2586.8588,
|
||||||
|
"hash_rate_60m": 2628.4603,
|
||||||
|
"hash_rate_24h": 120.2364,
|
||||||
|
"hash_rate_yesterday": 0,
|
||||||
|
"low_workers": 0,
|
||||||
|
"off_workers": 5,
|
||||||
|
"ok_workers": 1,
|
||||||
|
"dis_workers": 1,
|
||||||
|
"current_bad": "0.00000006",
|
||||||
|
"shares_5m": 180690,
|
||||||
|
"shares_60m": 2203150,
|
||||||
|
"shares_24h": 2418744,
|
||||||
|
"shares_yesterday": 0
|
||||||
|
}
|
||||||
|
}
|
1
test/test_json/data/20241219-test-ocean-api.json
Normal file
1
test/test_json/data/20241219-test-ocean-api.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"result":{"snap_type":"user","snap_ts":"1734565260","shares_60s":"9988210688","shares_300s":"49864507392","hashrate_60s":"714983970841960960","hashrate_300s":"713888094932634112","lastest_share_ts":"1734565263","shares_in_tides":"159369973182353","estimated_earn_next_block":"0.58907916","estimated_bonus_earn_next_block":"0.00000000","estimated_total_earn_next_block":"0.58907916","estimated_payout_next_block":"0.58907916","unpaid":"0.00000000"}}
|
41
test/test_json/data/bitaxe_2_3_0.json
Normal file
41
test/test_json/data/bitaxe_2_3_0.json
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"power": 15.710000038146973,
|
||||||
|
"voltage": 5178.75,
|
||||||
|
"current": 3028.75,
|
||||||
|
"temp": 72,
|
||||||
|
"vrTemp": 0,
|
||||||
|
"hashRate": 690.13493843712524,
|
||||||
|
"bestDiff": "6.78G",
|
||||||
|
"bestSessionDiff": "6.78G",
|
||||||
|
"isUsingFallbackStratum": 0,
|
||||||
|
"freeHeap": 145052,
|
||||||
|
"coreVoltage": 1200,
|
||||||
|
"coreVoltageActual": 1201,
|
||||||
|
"frequency": 500,
|
||||||
|
"ssid": "BTClock",
|
||||||
|
"macAddr": "DC:DB:0C:13:10:F8",
|
||||||
|
"hostname": "bitaxe1-white",
|
||||||
|
"wifiStatus": "Connected!",
|
||||||
|
"sharesAccepted": 514214,
|
||||||
|
"sharesRejected": 293,
|
||||||
|
"uptimeSeconds": 2084435,
|
||||||
|
"asicCount": 1,
|
||||||
|
"smallCoreCount": 1276,
|
||||||
|
"ASICModel": "BM1368",
|
||||||
|
"stratumURL": "pool.noderunners.network",
|
||||||
|
"fallbackStratumURL": "pool.noderunners.network",
|
||||||
|
"stratumPort": 1337,
|
||||||
|
"fallbackStratumPort": 7331,
|
||||||
|
"stratumUser": "bc1.BitAxe1",
|
||||||
|
"fallbackStratumUser": "bc1.BitAxe1",
|
||||||
|
"version": "v2.3.0",
|
||||||
|
"boardVersion": "401",
|
||||||
|
"runningPartition": "ota_1",
|
||||||
|
"flipscreen": 1,
|
||||||
|
"overheat_mode": 0,
|
||||||
|
"invertscreen": 0,
|
||||||
|
"invertfanpolarity": 1,
|
||||||
|
"autofanspeed": 0,
|
||||||
|
"fanspeed": 100,
|
||||||
|
"fanrpm": 5850
|
||||||
|
}
|
15
test/test_json/test_bitaxe_parser.hpp
Normal file
15
test/test_json/test_bitaxe_parser.hpp
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Mock the Arduino String class if needed
|
||||||
|
#ifndef ARDUINO
|
||||||
|
class String {
|
||||||
|
public:
|
||||||
|
String(const char* str) : data(str) {}
|
||||||
|
const char* c_str() const { return data; }
|
||||||
|
private:
|
||||||
|
const char* data;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Declare only the function you want to test
|
||||||
|
void bitaxeParseApiResponse(String apiResponse);
|
68
test/test_json/test_datasources.cpp
Normal file
68
test/test_json/test_datasources.cpp
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#include <unity.h>
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include "test_bitaxe_parser.hpp"
|
||||||
|
|
||||||
|
void setUp(void)
|
||||||
|
{
|
||||||
|
// Setup code
|
||||||
|
}
|
||||||
|
|
||||||
|
void tearDown(void)
|
||||||
|
{
|
||||||
|
// Cleanup code
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_bitaxe_api(void)
|
||||||
|
{
|
||||||
|
JsonDocument doc;
|
||||||
|
|
||||||
|
std::ifstream file("test/test_json/data/bitaxe_2_3_0.json");
|
||||||
|
std::string json((std::istreambuf_iterator<char>(file)),
|
||||||
|
std::istreambuf_iterator<char>());
|
||||||
|
|
||||||
|
DeserializationError error = deserializeJson(doc, json);
|
||||||
|
std::string bitaxeHashrate = std::to_string(static_cast<int>(std::round(doc["hashRate"].as<float>())));
|
||||||
|
std::string bitaxeBestDiff = doc["bestDiff"].as<std::string>();
|
||||||
|
String testInput = "{\"test\":\"data\"}";
|
||||||
|
|
||||||
|
bitaxeParseApiResponse(testInput);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL_STRING(bitaxeHashrate.c_str(), std::string("690").c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_braiins_api(void)
|
||||||
|
{
|
||||||
|
JsonDocument doc;
|
||||||
|
|
||||||
|
std::ifstream file("test/test_json/data/20241219-test-braiins.json");
|
||||||
|
std::string json((std::istreambuf_iterator<char>(file)),
|
||||||
|
std::istreambuf_iterator<char>());
|
||||||
|
|
||||||
|
DeserializationError error = deserializeJson(doc, json);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(DeserializationError::Ok, error.code());
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_ocean_api(void)
|
||||||
|
{
|
||||||
|
JsonDocument doc;
|
||||||
|
|
||||||
|
std::ifstream file("test/test_json/data/20241219-test-ocean-api.json");
|
||||||
|
std::string json((std::istreambuf_iterator<char>(file)),
|
||||||
|
std::istreambuf_iterator<char>());
|
||||||
|
|
||||||
|
DeserializationError error = deserializeJson(doc, json);
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL(DeserializationError::Ok, error.code());
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
UNITY_BEGIN();
|
||||||
|
RUN_TEST(test_bitaxe_api);
|
||||||
|
RUN_TEST(test_braiins_api);
|
||||||
|
RUN_TEST(test_ocean_api);
|
||||||
|
return UNITY_END();
|
||||||
|
}
|
Loading…
Reference in a new issue