Also generate normalized XML

In order to increase the test coverage also generate the normalized version
of XML output.
This commit is contained in:
Stefan Wahren 2020-07-06 12:06:39 +02:00 committed by Stefan Wahren
parent 17a73287c2
commit bf177d1fe7

View File

@ -37,51 +37,71 @@ if [ $# -eq 2 ]; then
fi fi
# Check if mbus_parse_hex exists # Check if mbus_parse_hex exists
if [ ! -x $mbus_parse_hex ]; then if [ ! -x "$mbus_parse_hex" ]; then
echo "mbus_parse_hex not found" echo "mbus_parse_hex not found"
echo "path to mbus_parse_hex: $mbus_parse_hex" echo "path to mbus_parse_hex: $mbus_parse_hex"
exit 3 exit 3
fi fi
generate_xml() {
directory="$1"
hexfile="$2"
mode="$3"
filename=$(basename "$hexfile" .hex)
if [ "$mode" = "normalized" ]; then
options="-n"
mode=".norm"
else
options=""
mode=""
fi
# Parse hex file and write XML in file
"$mbus_parse_hex" $options "$hexfile" > "$directory/$filename$mode.xml.new"
result=$?
# Check parsing result
if [ $result -ne 0 ]; then
echo "Unable to generate XML for $hexfile"
rm "$directory/$filename$mode.xml.new"
return 1
fi
# Compare old XML with new XML and write in file
diff -u "$directory/$filename$mode.xml" "$directory/$filename$mode.xml.new" 2> /dev/null > "$directory/$filename$mode.dif"
result=$?
case "$result" in
0)
# XML equal -> remove new
rm "$directory/$filename$mode.xml.new"
rm "$directory/$filename$mode.dif"
;;
1)
# different -> print diff
cat "$directory/$filename$mode.dif" && rm "$directory/$filename$mode.dif"
echo ""
;;
*)
# no old -> rename XML
echo "Create $filename$mode.xml"
mv "$directory/$filename$mode.xml.new" "$directory/$filename$mode.xml"
rm "$directory/$filename$mode.dif"
;;
esac
return $result
}
for hexfile in "$directory"/*.hex; do for hexfile in "$directory"/*.hex; do
if [ ! -f "$hexfile" ]; then if [ ! -f "$hexfile" ]; then
continue continue
fi fi
filename=`basename $hexfile .hex` generate_xml "$directory" "$hexfile" "default"
# Parse hex file and write XML in file generate_xml "$directory" "$hexfile" "normalized"
$mbus_parse_hex "$hexfile" > "$directory/$filename.xml.new"
result=$?
# Check parsing result
if [ $result -ne 0 ]; then
echo "Unable to generate XML for $hexfile"
rm "$directory/$filename.xml.new"
continue
fi
# Compare old XML with new XML and write in file
diff -u "$directory/$filename.xml" "$directory/$filename.xml.new" 2> /dev/null > "$directory/$filename.dif"
result=$?
case "$result" in
0)
# XML equal -> remove new
rm "$directory/$filename.xml.new"
rm "$directory/$filename.dif"
;;
1)
# different -> print diff
cat "$directory/$filename.dif" && rm "$directory/$filename.dif"
echo ""
;;
*)
# no old -> rename XML
echo "Create $filename.xml"
mv "$directory/$filename.xml.new" "$directory/$filename.xml"
rm "$directory/$filename.dif"
;;
esac
done done