Fixed templating bug and update test cases

This commit is contained in:
Magnus 2023-01-19 12:55:46 +01:00
parent 71e67ca3f1
commit a8773a7ba1
4 changed files with 41 additions and 3 deletions

View File

@ -39,7 +39,7 @@ build_flags =
-DUSE_LITTLEFS=true -DUSE_LITTLEFS=true
-DUSER_SSID=\""\"" # =\""myssid\"" -DUSER_SSID=\""\"" # =\""myssid\""
-DUSER_SSID_PWD=\""\"" # =\""mypwd\"" -DUSER_SSID_PWD=\""\"" # =\""mypwd\""
-DCFG_APPVER="\"1.2.0\"" -DCFG_APPVER="\"1.2.1\""
#-DCFG_GITREV=\""beta-3\"" #-DCFG_GITREV=\""beta-3\""
!python script/git_rev.py !python script/git_rev.py
lib_deps = lib_deps =
@ -120,9 +120,10 @@ lib_deps =
https://github.com/bxparks/AUnit#v1.6.1 https://github.com/bxparks/AUnit#v1.6.1
${common_env_data.lib_deps} ${common_env_data.lib_deps}
board = ${common_env_data.board} board = ${common_env_data.board}
build_type = release build_type = debug
board_build.filesystem = littlefs board_build.filesystem = littlefs
build_src_filter = +<*> -<main.cpp> +<../test/tests*.cpp> build_src_filter = +<*> -<main.cpp> +<../test/tests*.cpp>
monitor_filters = esp8266_exception_decoder
[env:gravity32-release] [env:gravity32-release]
framework = ${common_env_data.framework} framework = ${common_env_data.framework}

View File

@ -194,4 +194,17 @@ const char* TemplatingEngine::create(TemplatingEngine::Templates idx,
return ""; return "";
} }
// added to support more unit test scenarios.
const char* TemplatingEngine::create(const char* formatTemplate) {
_baseTemplate = String(formatTemplate);
// Insert data into template.
transform();
_baseTemplate.clear();
if (_output) return _output;
return "";
}
// EOF // EOF

View File

@ -160,7 +160,8 @@ class TemplatingEngine {
} }
} }
} }
strncat(_output, format + k, size - k); // strncat(_output, format + k, size - k);
strncat(_output, format + k, strlen(format + k));
Log.notice(F("TPL : Transformed template %d chars to %d chars" CR), Log.notice(F("TPL : Transformed template %d chars to %d chars" CR),
strlen(format), strlen(_output)); strlen(format), strlen(_output));
@ -202,6 +203,7 @@ class TemplatingEngine {
float tempC, float runTime); float tempC, float runTime);
const char *create(TemplatingEngine::Templates idx, const char *create(TemplatingEngine::Templates idx,
bool useDefaultTemplate = false); bool useDefaultTemplate = false);
const char *create(const char *formatTemplate);
}; };
#endif // SRC_TEMPLATING_HPP_ #endif // SRC_TEMPLATING_HPP_

View File

@ -125,4 +125,26 @@ test(template_applyTemplate5) {
assertEqual(s, v); assertEqual(s, v);
} }
test(template_applyTemplate6) {
TemplatingEngine e;
char buffer[20];
myConfig.setMDNS("gravitymon");
const char* tpl =
"<prtg><result><channel>Densite</channel><float>1</float><value>${gravity}</value></result>"
"<result><channel>Batterie</channel><float>1</float><value>${battery}</value></result>"
"<result><channel>Temperature</channel><float>1</float><value>${temp}</value></result></prtg>";
e.initialize(45.0, 1.123, 1.223, 21.2, 2.98);
String s = e.create(tpl);
String batt =
convertFloatToString(myBatteryVoltage.getVoltage(), &buffer[0], 2);
batt.trim();
String v = "<prtg><result><channel>Densite</channel><float>1</float><value>1.1230</value></result>"
"<result><channel>Batterie</channel><float>1</float><value>" + batt + "</value></result>"
"<result><channel>Temperature</channel><float>1</float><value>21.2</value></result></prtg>";
assertEqual(s, v);
}
// EOF // EOF