Dit is de opdracht ggcov-webdb die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
ggcov-webdb - genereer een tussendatabase voor de ggcov-webinterface
KORTE INHOUD
ggcov-webdb [[-r] directory|filet
PRODUCTBESCHRIJVING
Ggcov-webdb genereert een tussendatabase en een boom met bronbestanden van een ontwikkeling
directory, in de vorm van een tarball. De bestanden in deze tarball worden later gebruikt door de
ggcov PHP-pagina's om testdekkingsgegevens aan WWW-browsers te presenteren.
Testdekkingsgegevens worden geproduceerd door C- en C++-programma's die zijn gecompileerd met gcc -fprofile-bogen
-fest-dekking. Dus de combinatie van ggcov-webdb en ggcov PHP-pagina's zijn in feite een
WWW-vervanging voor de gcov programma dat erbij hoort gcc.
De tussenliggende databasebenadering wordt gebruikt om het algemene geval van ontwikkeling af te handelen
machine en de webservermachine zijn gescheiden. De database bevat dekkingsgegevens in
een geïndexeerde, platformonafhankelijke, PHP-vriendelijke vorm. Omdat het databaseformaat
platformonafhankelijk kunnen de PHP-pagina's op webservers van een ander worden ingezet
architectuur voor de ontwikkelmachines. In feite de ggcov webpagina's ondersteunen elk web
server die aan de volgende criteria voldoet:
· ondersteunt PHP versie 4.3 of hoger, en
· zorgt voor de dba extensie met de db4 aanbieder (welke ggcov gebruikt om de
tussenliggende database), en
· zorgt voor de gd extensie (welke ggcov gebruikt om de staafdiagrammen op de
Samenvattingspagina).
De sourceforge.net projectwebserver is een voorbeeld van zo'n server.
Ggcov-webdb produceert een gzipte tarball die de tussenliggende database zelf bevat en
kopieën van alle bronbestanden die in de database vermeld staan. Dit is alles
informatie die de ggcov webpagina's nodig hebben, in één bundel waaruit u gemakkelijk kunt kopiëren
de ontwikkelmachine naar de webserver. Normaal gesproken zou deze tarball worden geëxtraheerd in een
submap van /var/ggcov/tests/ op de webserver.
Er worden argumenten gebruikt om aan te geven hoe dekkingsgegevensbestanden moeten worden gevonden. De argumenten kunnen
combinaties van:
directory
De map wordt gescand op bronbestanden, die worden behandeld alsof ze dat wel waren
opgegeven op de opdrachtregel (behalve dat ontbrekende dekkingsgegevensbestanden stilzwijgend worden weergegeven).
buiten beschouwing gelaten). Als de -r flag van kracht is, worden submappen recursief gescand.
Er kunnen meerdere mappen worden opgegeven en deze worden in de aangegeven volgorde gescand.
uitvoerbaar
Het uitvoerbare bestand wordt gescand op foutopsporingsrecords die het bronbestand bevatten
namen, en elk bestaand bronbestand wordt behandeld alsof het is opgegeven
de opdrachtregel (behalve dat ontbrekende dekkingsgegevensbestanden stilzwijgend worden genegeerd).
Alle gedeelde bibliotheken waarvan het uitvoerbare bestand afhankelijk is, worden ook gescand. Meerdere
uitvoerbare bestanden kunnen worden gespecificeerd en worden in de aangegeven volgorde gescand. Deze functie is
alleen beschikbaar op bepaalde platforms (bijvoorbeeld i386-linux).
bron bestand
Is een normaal bestand dat eindigt op een van de bestandsextensies .c, . Cc, .cxx, .cppof
.C. Bronbestanden worden gekoppeld aan de bijbehorende dekkingsgegevensbestanden (.gcnr en
.gcda bestanden, of .bb, .bbg en .geeft bestanden met oudere compilers) en objectbestanden van
eerst zoeken naar een bestand met dezelfde basisnaam en de juiste extensie
dezelfde map als het bronbestand en vervolgens in alle mappen die zijn opgegeven op
de opdrachtregel (in de volgorde waarin ze zijn opgegeven).
OPTIES
-f test.tgz, --uitvoerbestand=test.tgz
Genereer uitvoer naar de bestandsnaam test.tgz in plaats van de standaard ggcov.webdb.tgz. De
speciale bestandsnaam - kan worden gebruikt om uitvoer naar stdout te genereren.
-o dir, --object-map=dir
Voeg de map toe dir naar het zoekpad voor objectbestanden en dekkingsgegevensbestanden.
-r, --recursief
Wanneer een map is opgegeven op de opdrachtregel, zoekt u naar bestanden met dekkingsgegevens
recursief in alle onderliggende mappen.
-X symbolen, --onderdruk-ifdef=symbolen
Neem geen code op in statistieken of samenvattingen in C-pre-processorrichtlijnen
die afhankelijk zijn van een van de gegeven zaken symbolen. Er kunnen een of meer symbolen worden gegeven,
gescheiden door komma's of witruimte. Ggcov-webdb begrijpt de volgende subset van
de C pre-processor commandoset:
· #als SYMBOOL
· #als gedefinieerd(SYMBOOL)
· #ifdef SYMBOOL
· #ifndef SYMBOOL
· #anders
· #stop als
Bijvoorbeeld -X DEBUG zal de . onderdrukken fprintf() roep deze code in:
niet aangemeld
mijn_functie(niet-ondertekende int x)
{
x+= 42;
#ifdef DEBUG
fprintf(stderr, "mijn_functie: x=%u\n", x);
#stop als
retour x;
}
Deze optie is handig voor het onderdrukken van testinfrastructuurcode, foutopsporingscode of
andere code die is gecompileerd in het uitvoerbare bestand van de dekkingstest, maar waarvan de dekking
is niet significant.
-Y woorden, --onderdruk-commentaar=woorden
Neem in statistieken of samenvattingen geen code op op regels die ook een
commentaar van één regel dat slechts één van de gegeven punten omvat woorden. Eén of meer symbolen
mag worden opgegeven, gescheiden door komma's of witruimte. Opgeven bijvoorbeeld -Y
NEGEER ME zal de . onderdrukken beweren() in deze code:
niet aangemeld
mijn_functie(niet-ondertekende int x)
{
x+= 42;
beweren(x >= 42); /* NEGEER ME */
retour x;
}
Deze optie is handig voor het onderdrukken van testinfrastructuurcode, foutopsporingscode of
andere code die is gecompileerd in het uitvoerbare bestand van de dekkingstest, maar waarvan de dekking
is niet significant.
-Z beginwoord,eindwoord,...
--suppress-commentaar-tussen=beginwoord,eindwoord,...
Neem geen code op in statistieken of samenvattingen op regels tussen de regels die a bevatten
commentaar van één regel bestaande uit alleen startwoord en de volgende opmerking van één regel
alleen bestaande uit eindwoord. Er kunnen twee of meer symbolen worden gegeven, in paren, gescheiden door
komma's of witruimte. Bijvoorbeeld, -Z BEGIN NEGEREN, EINDIGNEREN zal de . onderdrukken
volledige functie in deze code:
/* STARTNEGEREN */
niet aangemeld
mijn_functie(niet-ondertekende int x)
{
x+= 42;
retour x;
}
// ONTKENNEN
Deze optie is handig voor het onderdrukken van testinfrastructuurcode, foutopsporingscode of
andere code die is gecompileerd in het uitvoerbare bestand van de dekkingstest, maar waarvan de dekking
is niet significant.
Voorbeelden
Genereer een tussendatabase voor alle beschikbare bronnen in het uitvoerbare bestand a.out (op
alleen op sommige platforms) en installeer als test foo op de standaardtestlocatie.
mkdir /var/ggcov/tests/foo
ggcov-webdb -f - a.out |
(CD /var/ggcov/tests/foo ; teer -xzf - )
Genereer een tussendatabase voor alle C-bronnen in de huidige map.
ggcov-webdb *.C
Genereer een tussendatabase voor alle C-bronnen in één map waarin het object zich bevindt
bestanden en testdekkingsgegevensbestanden bevinden zich in verschillende mappen:
ggcov-webdb /foe/obj/ /foo/cov-data/ /foo/src/
Gebruik ggcov-webdb online met behulp van onworks.net-services