Boost Unit Testing Hauptfunktion?

8

Wie definiere ich meine eigene main() -Funktion beim Testen mit Boost?

Boost verwendet seine eigene Hauptfunktion, aber ich benutze einen benutzerdefinierten Speichermanager und er muss initialisiert werden, bevor Speicher zugewiesen wird, sonst erhalte ich Fehler.

    
ProgrammerAtWork 21.09.2012, 11:19
quelle

4 Antworten

11

Ich glaube nicht, dass Sie tatsächlich Ihre eigene Hauptleitung brauchen. Ich denke, Sie sind viel besser dran mit Globales Gerät :

%Vor%     
Gennadiy Rozental 22.09.2012, 07:13
quelle
8

Sie müssen

definieren

BOOST_TEST_NO_MAIN

vor dem Boost enthält.

BOOST_TEST_MAIN

ist die Standardeinstellung. Ссылка

    
ProgrammerAtWork 21.09.2012 18:13
quelle
0

Sie können ein statisches Objekt definieren und sein Konstruktor wird vor main ausgeführt:

%Vor%     
PSIAlt 21.09.2012 17:34
quelle
-1

Speicher kann vor main :

zugewiesen werden %Vor%

Und Sie könnten Ihren Speichermanager auch zu einer globalen Variable machen,
Sie können jedoch keine bestimmte Reihenfolge der globalen Variableninitialisierung erzwingen. (in Standard C ++ mindestens)

In Windows könnten Sie Ihren Speichermanager in eine DLL setzen, bei der er initialisiert wird, bevor der Application Entry Point aufgerufen wird, aber trotzdem kann etwas anderes einen Speicher vorher zuweisen - eine andere DLL oder CRT Ihrer DLL.

    
Abyx 21.09.2012 11:30
quelle

Tags und Links