Frage

Derzeit verwenden wir gcov mit unserer Test-Suite für Linux C ++ Anwendung und es macht einen guten Job bei der Linie Abdeckung zu messen.

Kann sich Funktion / Methode Berichterstattung Bericht zusätzlich gcov Berichterstattung an die Leitung?

Suchen Sie die Parameter an gcov glaube ich akzeptiert es nicht möglich ist, aber ich kann etwas fehlen. Oder vielleicht ist es ein anderes Werkzeug, die Funktion / Methode Berichterstattung Bericht aus Statistiken, die von gcc produzieren kann?

Update: Mit Funktion / Methode Abdeckung ich meinen Prozentsatz der Funktionen, die während der Tests ausgeführt werden soll

.
War es hilfreich?

Lösung

Ich denke, was Sie meinen, ist die Option -f, die den Prozentsatz der Zeilen pro Funktion abgedeckt geben. Es ist ein interessanter Artikel über gcov unter Dr. Dobbs die möglicherweise hilfreich sein. Wenn „Mann gcov“ nicht das Flag -f, wenn Sie reasobably aktuelle Version der gcc-Suite haben.

Edit: , um den Prozentsatz der Funktionen erhalten nicht ausgeführt Sie können einfach durch die Funktionsabdeckung Ausgabe analysieren, wie 0,00% Deckung ziemlich gleichwertig genannt nicht sein sollte. Dieses kleine Skript druckt der Prozentsatz der Funktionen nicht ausgeführt:

#!/bin/bash

if test -z "$1"
then
    echo "First argument must be function coverage file"
else
    notExecuted=`cat $1 | grep "^0.00%" | wc -l`
    executed=`cat $1 | grep -v "^0.00%" | wc -l`

    percentage=$(echo "scale=2; $notExecuted / ($notExecuted + $executed) * 100" |bc)

    echo $percentage
fi

Andere Tipps

Wir haben begonnen, gcov zu verwenden und lcov zusammen. Die Ergebnisse aus lcov tun den Prozentsatz der Funktionen enthalten, die für das „Modul“ ausgeführt werden, Sie suchen auf.

EDIT: Die Modul kann von Verzeichnissen bis auf Dateien gehen.

Ich möchte auch hinzufügen, dass, wenn Sie bereits die GNU Compiler-Tools verwenden, dann gcov / lcov auch nicht schwierig sein wird für Sie zum Laufen zu bringen und die Ergebnisse es produziert sind sehr beeindruckend.

Das lcov Dienstprogramm ist schön, und wir nutzen es. Aber ich bin nicht sicher, ob Sie es brauchen für das, was Sie wollen.

Wir

  1. Mit ctags ( wikipedia ; Source ), die alle in den entsprechenden Header-Dateien deklarierten Funktionen zu finden.

  2. Ausführen gcov Zeilenabdeckung in den binären für jede Funktion zu erhalten.

  3. Vergleichen Sie die Liste der Funktionen von 1 & 2 "Funktionen Called" / "verfügbare Funktionen" zu erzeugen.

Wir nennen es „API coverage“, da wir Schritt # 1 nur für die öffentlichen API-Header anzuwenden. Aber Sie können es tun, auf allen Header oder nur eine Teilmenge, wie Sie wählen. Ich denke, dass das Verhältnis wir auf diese Weise herzustellen, ist das Verhältnis der Sie suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top