Skip to content

Commit

Permalink
check answer command enabled more thoroughly, fix blank answer, more …
Browse files Browse the repository at this point in the history
…coverage
  • Loading branch information
john30 committed Mar 9, 2024
1 parent f26c48e commit c53ca68
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
6 changes: 3 additions & 3 deletions src/ebusd/mainloop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ result_t MainLoop::decodeRequest(Request* req, bool* connected, RequestMode* req
return RESULT_OK;
}
if (cmd == "ANSWER") {
if (m_enableHex && !m_protocol->isReadOnly()) {
if (m_enableHex && m_protocol->isAnswering()) {
return executeAnswer(args, ostream);
}
*ostream << "ERR: command not enabled";
Expand Down Expand Up @@ -1231,17 +1231,17 @@ result_t MainLoop::executeAnswer(const vector<string>& args, ostringstream* ostr
}
}
SlaveSymbolString answer;
answer.push_back(0); // room for length byte
if (argPos > 0 && argPos < args.size()) {
answer.push_back(0); // room for length byte
result_t ret = answer.parseHex(args[argPos++]);
if (ret != RESULT_OK) {
return ret;
}
if (answer.size() > 16) {
return RESULT_ERR_INVALID_POS;
}
answer.adjustHeader();
}
answer.adjustHeader();
if (argPos < args.size()) {
argPos = 0; // print usage
}
Expand Down
7 changes: 6 additions & 1 deletion test_coverage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ elif [[ -n "$1" ]]; then
pid=$(ps -C ebusd -o pid=)
done
else
$ebusd -d tcp:127.0.0.1:8876 --initsend --latency 10 -n -c "$PWD/contrib/etc/ebusd" --pollinterval=10 -s --scanretries=0 -a 31 --acquireretries 3 --answer --generatesyn --receivetimeout 40000 --sendretries 1 --enablehex --htmlpath "$PWD/contrib/html" --httpport 8878 --pidfile "$PWD/ebusd.pid" --localhost -p 8877 -l "$PWD/ebusd.log" --logareas all --loglevel debug --lograwdata=bytes --lograwdatafile "$PWD/ebusd.raw" --lograwdatasize 1 --dumpfile "$PWD/ebusd.dump" --dumpsize 100 -D --scanconfig --aclfile="$PWD/acl.csv" --mqttport=1883 --enablehex --enabledefine
$ebusd -d tcp:127.0.0.1:8876 --initsend --latency 10 -n -c "$PWD/contrib/etc/ebusd" --pollinterval=10 -s --scanretries=0 -a 31 --acquireretries 3 --answer --generatesyn --receivetimeout 40000 --sendretries 1 --enablehex --htmlpath "$PWD/contrib/html" --httpport 8878 --pidfile "$PWD/ebusd.pid" --localhost -p 8877 -l "$PWD/ebusd.log" --logareas all --loglevel debug --lograwdata=bytes --lograwdatafile "$PWD/ebusd.raw" --lograwdatasize 1 --dumpfile "$PWD/ebusd.dump" --dumpsize 100 -D --scanconfig --aclfile="$PWD/acl.csv" --mqttport=1883 --enablehex --enabledefine --answer
sleep 3
pid=`head -n 1 "$PWD/ebusd.pid"`
fi
Expand Down Expand Up @@ -336,6 +336,11 @@ a test testpass
w -c mc.5 -d 53 installparam 123
hex fe070400
hex 53070400
hex -s f0 -n fe07fe0102
inject 3115b509030d1e00/02a85b
answer -d 50 0704 b5454850303003277201
answer 0705 010203
answer -s ff -m 0706 ab
dump
grab result
grab result all
Expand Down

0 comments on commit c53ca68

Please sign in to comment.