From 54347f57a867d3abb7798ffde2da88fcbfb8971f Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 29 Oct 2008 16:24:28 +0100 Subject: Add runpychecker.sh script and pychecker-false-positives file The runpychecker.sh script will check anaconda for any pychecker warning using a set of options, in combination with filtering of any warning regular- expressions listed in pychecker-false-positives. If any warnings our found they will be stored in pychecker-log and printed to stdout and runpychecker.sh will exit with a status of 1, if no (non filtered) warnings are found it exits with a status of 0 --- pychecker-false-positives | 25 +++++++++++++++++++++++++ runpychecker.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 pychecker-false-positives create mode 100755 runpychecker.sh diff --git a/pychecker-false-positives b/pychecker-false-positives new file mode 100644 index 000000000..d7567669c --- /dev/null +++ b/pychecker-false-positives @@ -0,0 +1,25 @@ +deleted +filter +setattr +^$ +^dm.c: [0-9]*: not running as root returning empty list$ +^Warnings...$ +^anaconda\.py:[0-9]*: No global .* found$ +^cmdline\.py:[0-9]*: No global \(nextWin\) found$ +^fsset\.py:[0-9]*: Object \(bestprep\) has no attribute \(format\)$ +^partitions.py:[0-9]*: Object \(bestprep\) has no attribute \(getPreExisting\)$ +^partitions.py:[0-9]*: Object \(bestreq\) has no attribute \(format\)$ +^iscsi.py:[0-9]*: Invalid arguments to \(addTarget\), got 0, expected between 1 and 7$ +^minihal.py:[0-9]*: Object \(haldev\) has no attribute \(GetAllProperties\)$ +^minihal.py:[0-9]*: Object \(hal\) has no attribute \(FindDeviceByCapability\)$ +^(.*isys/isys.py|network.py):[0-9]*: Object \(.*_iface\) has no attribute \(Get.*\)$ +^network.py:[0-9]*: Object \(.*props\) has no attribute \(Get\)$ +^partedUtils.py:[0-9]*: No module attribute \(__dict__\) found$ +^partedUtils.py:[0-9]*: No module attribute \(DEVICE_SX8\) found$ +^kickstart.py:[0-9]*: No global \(fileSystemTypeGet.*\) found$ +^upgrade.py:[0-9]*: No global \(getUsableLinuxFs\) found$ +^upgrade.py:[0-9]*: No global \(SwapFileDevice\) found$ +^upgrade.py:[0-9]*: No global \(fileSystemTypeGet\) found$ +^upgrade.py:[0-9]*: No global \(FileSystemSetEntry\) found$ +^upgrade.py:[0-9]*: No global \(readFstab\) found$ +Note this last line must never end with a newline \ No newline at end of file diff --git a/runpychecker.sh b/runpychecker.sh new file mode 100755 index 000000000..dacbacf37 --- /dev/null +++ b/runpychecker.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +FALSE_POSITIVES=pychecker-false-positives + +if [ "`tail -c 1 pychecker-false-positives`" == "`echo`" ]; then + echo "Error $FALSE_POSITIVES ends with an enter." + echo "Error the last line of $FALSE_POSITIVES should never have an enter!" + exit 1 +fi + +export PYTHONPATH="isys:textw:iw:installclasses:/usr/lib/booty" + +pychecker --only --limit 1000 \ + --maxlines 500 --maxargs 20 --maxbranches 80 --maxlocals 60 --maxreturns 20 \ + --no-callinit --no-local --no-shadow --no-shadowbuiltin \ + --no-import --no-miximport --no-pkgimport --no-reimport \ + --no-argsused --no-varargsused --no-override \ + anaconda anaconda *.py textw/*.py iw/*.py installclasses/*.py isys/*.py | \ + egrep -v "`cat $FALSE_POSITIVES | tr '\n' '|'`" > pychecker-log + +if [ -s pychecker-log ]; then + echo "Pychecker reports the following issues:" + cat pychecker-log + exit 1 +fi + +rm pychecker-log + +exit 0 -- cgit