Page 1 of 2

[ISE] gtest

Posted: Sun Feb 24, 2013 8:44 pm
by Flipper
Zijn er hier mensen met ervaring in gtest (google test)? We moeten voor ISE daarmee leren werken, maar ik krijg het alleszins niet aan de praat/gecompileerd... ook niet wanneer ik die tutorial op Ansymo opvolg. Of werken dat soort macro-viezigheden alleen in de computerklas? :shock:

Re: [ISE] gtest

Posted: Sun Feb 24, 2013 9:14 pm
by Fristi
Nog nooit van gehoord :P

Re: [ISE] gtest

Posted: Sun Feb 24, 2013 9:17 pm
by Flipper
Fristi wrote:Nog nooit van gehoord :P
Ge moogt blij zijn, blijf daarvan af :P

Re: [ISE] gtest

Posted: Sun Feb 24, 2013 10:39 pm
by Fristi
Flipper wrote:
Fristi wrote:Nog nooit van gehoord :P
Ge moogt blij zijn, blijf daarvan af :P
Mwah, now I'm curious though :P

Re: [ISE] gtest

Posted: Mon Feb 25, 2013 9:22 am
by timvdm
Waar heb je juist problemen mee? Het compileren van de libraries? Gebruik (includes/linken)?

Re: [ISE] gtest

Posted: Mon Feb 25, 2013 5:12 pm
by Flipper
Fristi wrote:
Flipper wrote:
Fristi wrote:Nog nooit van gehoord :P
Ge moogt blij zijn, blijf daarvan af :P
Mwah, now I'm curious though :P
Image
:panic: :panic: :panic:
timvdm wrote:Waar heb je juist problemen mee? Het compileren van de libraries? Gebruik (includes/linken)?
Werkt em überhaupt bij jou? Ik kom wel is nr jou de volgende keer dat ik jou zie, want dan doe ik blijkbaar iets verkeerd :shock:

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 2:15 am
by Fristi
Flipper wrote:
Fristi wrote:
Flipper wrote:
Fristi wrote:Nog nooit van gehoord :P
Ge moogt blij zijn, blijf daarvan af :P
Mwah, now I'm curious though :P
Image
:panic: :panic: :panic:
timvdm wrote:Waar heb je juist problemen mee? Het compileren van de libraries? Gebruik (includes/linken)?
Werkt em überhaupt bij jou? Ik kom wel is nr jou de volgende keer dat ik jou zie, want dan doe ik blijkbaar iets verkeerd :shock:
zeg toch maar wa er misgaat :P. Wat is trouwens de link naar de ansymo pagina?

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 1:03 pm
by Bob
Flipper, die zijn tutorial is jammer genoeg op Mac gebaseerd en laat een beetje te wensen over voor Linux, maar werkt grotendeels.

Ik geloof dat die handleiding in grote stappen uitlegt hoe je die libraries statisch gecompileerd krijgt (met .a extensie), dan moet je die libraries ergens bij je project droppen. Dan moet je enkel nog deftig linken.
Is het in bovenstaand stukje al foutgelopen? Dan kan ik je gemakkelijk helpen.

Hoe dan ook, plak hier even je error output als je wilt. Ik weet dat er in mijn jaar een library ontbrak bij meeste mensen waaraan eerst nog gelinked moet worden voordat gtest werkt.

Daarnaast, als je het aan de praat werkt is het een leuk speeltje ze. Je kan zelfs 'death tests' maken, scenario's verzinnen in welke je programma moet crashen en het dan neer zien gaan. Serge loves that shit :D

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 2:15 pm
by Fristi
Als ik bob zijn uitleg zo zie ligt het probleem bij het linken van libraries, maar das ni specifiek gtest hoor, die shit gade altijd hebben dan :P.

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 3:13 pm
by Flipper
Bob wrote:Flipper, die zijn tutorial is jammer genoeg op Mac gebaseerd en laat een beetje te wensen over voor Linux, maar werkt grotendeels.
....
Mac! beuhaark Image

Nee maar zonder gekheid, ik heb intussen gtest aan de praat gekregen :o
ImageImageImageImageImage

Fouten:
- Bij de include directories (onder Properties >> C/C++ General >> Paths and Symbols) moet je ff opletten dat onder het tablad "Includes" in het deel "Languages" GNU C++ kiest en niet de default Assembly.

- In de test-file zit er geen main functie (VOZE MACROS :shock: )
dus NIET:

Code: Select all

int main() {
TEST(blah, banaan) {
EXPECT_EQ("kaboom!", foo());
}
}
maar WEL:

Code: Select all


TEST(blah, banaan) {
EXPECT_EQ("kaboom!", foo());
}
- Als em nog niet werkt, zou ik nakijken of er onder de Library (onder Properties >> C/C++ General >> Paths and Symbols, tablad Library) of er echt

Code: Select all

gtest_main
gtest
staat en niet:

Code: Select all

/your/path/to-that/file/libgtest_main.a
/your/path/to-that/file/libgtest.a
en ook niet:

Code: Select all

libgtest_main.a
libgtest.a
Want..
(1) Eclipse heeft de rare neiging om de prefix "lib" en suffix ".a" zelf aan toe te voegen, vandaar dat je ze moet verwijderen bij het adden
(2) Eclipse gaat ook u irriteren dat relative adressing onveilig is, negeer dit, blijkbaar zorgt de "library path" gedeelte ervoor dat de .a-files gevonden worden. Nog zo'n rare kattensprong van Eclipse, waarom de path nog eens apart gaan aangeven als ge toch veel beter gewoon ineens de path naar de .a-files kunt verwijzen? :|

En wat voor drugs nemen die Eclipse-bouwers? Ik bedoel, qua editor ist em auwesome, maar die huge menus.... :shock:

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 3:17 pm
by Fristi
Nja, da's gewoon hoe eclipse werkt, deze shit gade hebben met elke library.. :)

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 3:21 pm
by Flipper
Fristi wrote:zeg toch maar wa er misgaat :P. Wat is trouwens de link naar de ansymo pagina?
http://ansymo.ua.ac.be/inleiding-softwa ... oe-eclipse" onclick="window.open(this.href);return false;
Het stuk "Voorbereiding" en Stap 6 lezen. Die omslachtige TicTacToe-gedoe moogt ge dus skippen als ge alleen geïnteresseerd bent in de gtest.. :wink:

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 4:15 pm
by Bob
Goeie tut Flipper :D

Toch effe een paar dingen verduidelijken:
(1) Eclipse heeft de rare neiging om de prefix "lib" en suffix ".a" zelf aan toe te voegen, vandaar dat je ze moet verwijderen bij het adden
Dit is eigenlijk eigen aan de linker en heeft dus niets met Eclipse te maken. Je kan zelf iets compilen met een library in terminal door ergens -lgtest toe te voegen, waarbij '-l' staat voor "hier komt een library" waarbij de 'lib' en '.a' of '.so' worden weggelaten, en je kan dan ook -L/usr/.../ gebruiken om aan te duiden waar die libraries zitten (dus inderdaad je library path).
Nog zo'n rare kattensprong van Eclipse, waarom de path nog eens apart gaan aangeven als ge toch veel beter gewoon ineens de path naar de .a-files kunt verwijzen?
Als je bedoelt de library path apart aangeven, je hebt zo bijvoorbeeld de Boost library die bestaat uit vele kleine componenten, dan geef je dan gewoon de Boost root path mee in plaats van elke subfolder apart te gaan linken.

Libraries zijn een hel in het begin. Ik heb het ook gewoon zelf moeten leren met veel vallen en opstaan.
Misschien paar tips die ik de harde manier heb moeten leren:
  • Standaard zitten libraries onder /usr/lib of onder /usr/local/lib
  • Libraries zijn vaak onderverdeeld over de eigenlijke libraries (.a of .so ofzo) en de headers (.h) via welke je ze kan aanspreken
  • Headers zitten standaard onder /usr/include of onder /usr/local/include
  • Shared libraries worden aangeduid door de extensie '.so' en zitten ergens in /usr/lib, zodat iedereen eraan kan (hence shared). Static worden aangeduid met '.a' en kan je dus overal meenemen.

Re: [ISE] gtest

Posted: Tue Feb 26, 2013 9:21 pm
by Joachimvdh
Fristi wrote:Nog nooit van gehoord :P
Image

Re: [ISE] gtest

Posted: Wed Feb 27, 2013 4:05 am
by Fristi
Pfft, in mijnen tijd bestond da nog nie :(. Intussen is c++, jammer genoeg, ook weer eeuwen geleden.