my_printf
Présentation par Loïc BRANSTETT
Le 04/12/2018
Sommaire
- Présentation du projet
- Organisation
- Architecture
- Tests automatisé
- Bonus
- Questions ?
Présentation du projet
- printf like
- print formatted
Organisation
Architecture
my_printf -> my_vsnprintf
- v: va_list (Listes des arguments)
- s: buffer (Mémoire tampon)
- n: lenght (Longueur maximal)
- printf: print format (Format)
Traitement caractères par caractères
Stockage des informations dans une structure
Stockage a l'aide de bit mask
Traitement du flag puis "affichage"
Tests automatisé
[===] Synthèse: Testés: 79 | Validés: 79 | Échoués: 0 | Plantages: 0
#include <criterion/criterion.h>
#include <criterion/redirect.h>
#include "my_printf.h"
void redirect_all_std(void)
{
cr_redirect_stdout();
cr_redirect_stderr();
}
Test(my_printf, put_string, .init=redirect_all_std)
{
cr_assert_eq(my_printf("%s", "SALUT"), 5);
cr_assert_stdout_eq_str("SALUT");
}
Test(my_printf, put_string_false, .init=redirect_all_std)
{
cr_assert_eq(my_printf("%s\n"), 7);
cr_assert_stdout_eq_str("(null)\n");
}
Tests automatisé
------------------------------------------------------------------------------
GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File Lines Exec Cover Missing
------------------------------------------------------------------------------
my.c 13 13 100%
my_printf.c 33 28 84% 44-48
my_vsnprintf.c 74 69 93% 50-52,69-70
my_vsnprintf_eval.c 26 26 100%
my_vsnprintf_eval_numbers.c 47 44 93% 20-21,44
my_vsnprintf_eval_strings.c 44 44 100%
my_vsnprintf_ntoa.c 66 57 86% 18,35-37,42-46
my_vsnprintf_numbers.c 21 20 95% 41
my_vsnprintf_out.c 17 14 82% 37,41-42
tests/test_my_printf.c 318 318 100%
------------------------------------------------------------------------------
TOTAL 659 633 96%
------------------------------------------------------------------------------
Bonus
Documentation avec Doxygen (html, html interactif, pdf, man)
Bonus
Fonctions analogues
Bonus
Flags supplémentaire
- %n
- .(nombre) et (nombre)
- .* et *
- j et z
- (espace)
Bonus
Questions ?
FIN
my_printf
By urgau-1
my_printf
- 240