Liste aller Funktionen in C-Modul

Gast #6582402
Lesenswert?

Hallo zusammen

Ich möchte für mein Unit-Testing herausfinden, welche Funktionen eines 
C-Modules bereits durch einen Test geprüft werden.
Daher muss ich zuerst wissen, welche Funktionen denn im C-Modul 
überhaupt implementiert sind.
Als Zeil möchte ich erreichen, dass mir der Unit-Test am Ende ausspuckt, 
welche Tests noch fehlen.

Am liebsten hätte ich eine Lösung über den Präprozessor, aber das halte 
ich für "utopisch".
Als weitere Möglichkeit sehe ich eine Umsetzung in Python: C-Modul 
parsen und Resultat in eine Datei speichern. Gibt es in Python 
vielleicht schon eine Lib, die mir das weitestgehend abnehmen könnte?

Seht ihr noch andere Möglichkeiten? Kommerzielle Produkte (z.B. Tessy) 
kommen vorerst nicht in Frage.
Persönliche Seite #6583972
Lesenswert?

StinkyWinky schrieb:
> C-Modul parsen und Resultat in eine Datei speichern. Gibt es in Python
> vielleicht schon eine Lib, die mir das weitestgehend abnehmen könnte?

Wie wär's mit gcc -aux-info file
1
-aux-info filename
2

3
  Output to the given filename prototyped declarations for all functions
4
  declared and/or defined in a translation unit, including those in
5
  header files. This option is silently ignored in any language other
6
  than C. 
7

8
  Besides declarations, the file indicates, in comments, the origin of
9
  each declaration (source file and line), whether the declaration was
10
  implicit, prototyped or unprototyped (‘I’, ‘N’ for new or ‘O’ for old,
11
  respectively, in the first character after the line number and the
12
  colon), and whether it came from a declaration or a definition ...

http://gcc.gnu.org/onlinedocs/gcc-8.3.0/gcc/C-Dialect-Options.html#index-aux-info

Braucht zwr immer noch'n Skript, um in das Format zu transformieren, das 
du brauchst.  Ist aber deutlich einfacher, als nen kompletten C-Parser 
zu basteln.
Gast #6584189
Lesenswert?

Danke für die Ideen.
- gcc-nm foo.o -> funktioniert gut, zeig was ich will, den Rest kann ich 
wegfiltern
- Test coverage für CUnit wäre mir neu
- gcc (...) -aux-inf -> listet viele Objekte, jedoch vermisse ich da 
meine Funktionen

Ich denke, ich werde gcc-nm verwenden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren