Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek find-unused-sid-commands.py   Sprache: Python

 
#!/usr/bin/python
#
# Find potentially unused UNO command entries in SDI files.
#
# Note that this is not foolproof, some extra checking is required because some command names might be
# constructed at runtime.
#

import subprocess

# search for entries in .sdi files that declare UNO/SID commands
a = subprocess.Popen(r"git grep -P '^\s*\w+Item\s+\w+\s+SID_\w+$' -- *.sdi", stdout=subprocess.PIPE, shell=True)

# parse out the UNO command names
commandSet = list()
with a.stdout as txt:
    for line in txt:
        line = line.strip()
        idx1 = line.find(" ")
        idx2 = line.find(" ", idx1 + 1)
        commandName = line[idx1+1 : idx2].strip()
        sidName = line[idx2+1:].strip()
        commandSet.append((commandName,sidName))

# now check to see if that UNO command is called anywhere in the codebase.
for pair in commandSet:
    commandName = pair[0]
    sidName = pair[1]

    # check to see if that UNO command is called anywhere in the codebase.
    a = subprocess.Popen("git grep -wFn '.uno:" + commandName + "'", stdout=subprocess.PIPE, shell=True)
    cnt = 0
    with a.stdout as txt2:
        for line2 in txt2:
            cnt = cnt + 1
    if cnt > 0:
        continue

    # check to see if the SID is used programmatically
    foundLines = ""
    a = subprocess.Popen("git grep -wn " + sidName, stdout=subprocess.PIPE, shell=True)
    with a.stdout as txt2:
        for line2 in txt2:
            foundLines = foundLines + line2
    if foundLines.find("ExecuteList") != -1:
        continue
    if foundLines.find("GetDispatcher()->Execute") != -1:
        continue
    if foundLines.find("ExecuteScenarioSlot") != -1:
        continue
    # TODO not sure about this, but let's tackle the easy ones first
    if foundLines.find("Invalidate(") != -1:
        continue

    # dump any lines that contain the SID, so we can eyeball the results
    print("remove: " + commandName)
    print(foundLines)
    print("----------------------------------------------------------------------------")

Messung V0.5
C=76 H=72 G=73

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge