Úkoly k procvičení - knihovny, make, debugging, profiling, dokumentace:
Nemáte-li zkušenosti s tvorbou Makefile a generováním dokumentace z kódu, můžete si vyzkoušet následující úkoly (bez bodového ohodnocení). Budete-li mít zájem, výsledné řešení můžete i odevzdat jako podklad ke konzultaci, kde probereme veškeré nejasnosti.
-
Stažení a instalace libcurl
Stáhněte curl rozbalte a zkompilujte (při kompilaci lze očekávat určité komplikace, které však lze jednoduše vyřešit).
-
Vytvoření Makefile
- Program bude složen alespoň ze tří souborů *.c a jednoho *.h
- Makefile nebude obsahovat jméno ani jednoho ze zdrojových souborů (může obsahovat jména objektových souborů)
- Počítejte s tím, že knihovna curl je o adresář výše (v Makefile použijte -I../curl/include/ a -L ../curl/lib/.libs/ -lcurl)
- Makefile bude obsahovat cíle pack (zabalí program tak aby mohl být odevzdán), clean (smaže všechny soubory co nemají být odevzdány)
- Spustitelný soubor bude pojmenován podle vašeho loginu (xlogin00)
-
Specifikace testů
- Vytvořte v Makefile cíl test tak, že "make test" spustí testy
- Test stáhne zadaný soubor pomocí vašeho programu a programu wget,
následně spočítá jejich md5sum.
- Další test spočítá paritu několika vámi vytvořených souborů, u kterých budete znát paritu.
- Bude oznámeno, zda testy proběhly úspěšně v následujícím formátu:
Download OK
Parity FAILED
- Testy vytváříme dříve než program podle konceptu Test-driven development.
-
Vytvoření programu
S využitím knihovny libcurl vytvořte program,
který stáhne zadané soubory pomocí protokolu HTTP a spočítá jejich
sudou paritu.
Vstupy/výstupy:
./xlogin00 URL1 FILE1 URL2 FILE2 ...
01...
URL je url souboru, který má být stažen a uložen do souboru FILE.
Pro každý stažený soubor je na standardní výstup vypsána parita tohoto souboru (0 nebo 1).
Pokud bude předán pouze jeden argument, považuje se za soubor pro který se spočítá parita.
./xlogin00 FILE
0
Výpočet parity
Soubor načítejte po znacích a paritu počítejte pro každý znak.
-
Vytvoření dokumentace
- Vytvořte v Makefile cíl doc, který vygeneruje dokumentaci pomocí Doxygen do adresáře ./doc/.
- Zdrojový kód komentujte odpovídajícím způsobem.
-
Debugging
- Vytvořte v Makefile cíl debug, který projekt přeloží s debugovacím příznakem -g3.
- Vytvořte screenshot z ddd, na kterém bude vidět: login (např. v komentáři v kódu),
nastavený break point na kterém se program zastavil a zobrazení hodnoty proměnné (cílem je, aby bylo zřejmé, že jste si zkusili debugging).
- Vytvořte protokol na max jednu stranu A4, kde bude přiložen screenshot a popsána vámi zachycená situace.
-
Profiling
- Proveďte profiling na stávající verzi programu (je třeba použít dostatečně velký vstupní soubor) a
výsledky si uložte.
- Vytvořte 2. verzi programu, ve které upravíte výpočet parity tak,
aby nejdříve provedl XOR všech znaků a vátil paritu výsledného znaku.
- Profilujte novou verzi a určete, zda došlo ke zvýšení výkonu.
- Vytvořte protokol na max jednu stranu A4, kde shrnete výsledky profilingu.
-
Mockup grafického rozhraní
- Vytvořte Mockup, výsledkem bude PDF soubor znázorňující navrhované rozhraní.
- Uživatelské rozhraní nesmí omezit funkčnost programu (musí být možno zadat libovolný počet dvojic URL FILE).
Odevzdatelné soubory:
- Zdrojové soubory (*.c a *.h)
- Makefile
- Doxyfile
- Protokol o debuggingu a profilingu v jednom souboru (protokol.pdf)
- Mockup grafického rozhraní (mockup.pdf)
Odevzdání je dobrovolné a odevzdává se do složky pojmenované dle Vašeho loginu na serveru ivs v /ivs-proj3/
Dle počtu odevzdaných souborů Vám v rámci možností bude zaslána zpětná vazba