mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-23 09:13:43 +08:00
Merge panda subtree
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
# Advisory: union types can be used
|
||||
misra.19.2
|
||||
# FIXME: add it back when fixed in cppcheck. Macro identifiers are unique but it false triggers on defines in #ifdef..#else conditions
|
||||
misra.5.4
|
||||
# Advisory: casting from void pointer to type pointer is ok. Done by STM libraries as well
|
||||
misra.11.4
|
||||
# Advisory: casting from void pointer to type pointer is ok. Done by STM libraries as well
|
||||
misra.11.5
|
||||
@@ -1,24 +1,53 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
mkdir /tmp/misra || true
|
||||
git clone https://github.com/danmar/cppcheck.git || true
|
||||
cd cppcheck
|
||||
git fetch
|
||||
git checkout 44d6066c6fad32e2b0332b3f2b24bd340febaef8
|
||||
git checkout 862c4ef87b109ae86c2d5f12769b7c8d199f35c5
|
||||
make -j4
|
||||
cd ../../../
|
||||
|
||||
# whole panda code
|
||||
tests/misra/cppcheck/cppcheck --dump --enable=all --inline-suppr board/main.c 2>/tmp/misra/cppcheck_output.txt || true
|
||||
python tests/misra/cppcheck/addons/misra.py board/main.c.dump 2>/tmp/misra/misra_output.txt || true
|
||||
|
||||
# violations in safety files
|
||||
(cat /tmp/misra/misra_output.txt | grep safety) > /tmp/misra/misra_safety_output.txt || true
|
||||
(cat /tmp/misra/cppcheck_output.txt | grep safety) > /tmp/misra/cppcheck_safety_output.txt || true
|
||||
printf "\nPANDA CODE\n"
|
||||
tests/misra/cppcheck/cppcheck -DPANDA -UPEDAL -DCAN3 -DUID_BASE -DEON \
|
||||
--suppressions-list=tests/misra/suppressions.txt \
|
||||
--dump --enable=all --inline-suppr --force \
|
||||
board/main.c 2>/tmp/misra/cppcheck_output.txt
|
||||
|
||||
if [[ -s "/tmp/misra/misra_safety_output.txt" ]] || [[ -s "/tmp/misra/cppcheck_safety_output.txt" ]]
|
||||
python tests/misra/cppcheck/addons/misra.py board/main.c.dump 2> /tmp/misra/misra_output.txt || true
|
||||
|
||||
# strip (information) lines
|
||||
cppcheck_output=$( cat /tmp/misra/cppcheck_output.txt | grep -v "(information) " ) || true
|
||||
misra_output=$( cat /tmp/misra/misra_output.txt | grep -v "(information) " ) || true
|
||||
|
||||
|
||||
printf "\nPEDAL CODE\n"
|
||||
tests/misra/cppcheck/cppcheck -UPANDA -DPEDAL -UCAN3 \
|
||||
--suppressions-list=tests/misra/suppressions.txt \
|
||||
-I board/ --dump --enable=all --inline-suppr --force \
|
||||
board/pedal/main.c 2>/tmp/misra/cppcheck_pedal_output.txt
|
||||
|
||||
python tests/misra/cppcheck/addons/misra.py board/pedal/main.c.dump 2> /tmp/misra/misra_pedal_output.txt || true
|
||||
|
||||
# strip (information) lines
|
||||
cppcheck_pedal_output=$( cat /tmp/misra/cppcheck_pedal_output.txt | grep -v "(information) " ) || true
|
||||
misra_pedal_output=$( cat /tmp/misra/misra_pedal_output.txt | grep -v "(information) " ) || true
|
||||
|
||||
if [[ -n "$misra_output" ]] || [[ -n "$cppcheck_output" ]]
|
||||
then
|
||||
echo "Found Misra violations in the safety code:"
|
||||
cat /tmp/misra/misra_safety_output.txt
|
||||
cat /tmp/misra/cppcheck_safety_output.txt
|
||||
echo "Failed! found Misra violations in panda code:"
|
||||
echo "$misra_output"
|
||||
echo "$cppcheck_output"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "$misra_pedal_output" ]] || [[ -n "$cppcheck_pedal_output" ]]
|
||||
then
|
||||
echo "Failed! found Misra violations in pedal code:"
|
||||
echo "$misra_pedal_output"
|
||||
echo "$cppcheck_pedal_output"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Success"
|
||||
|
||||
Reference in New Issue
Block a user