TDD framework Embedded C
No meu trabalho fiz uma pesquisa sobre frameworks para aplicar TDD e vou mostrar a vocês os mais interessantes:
On my work I did research about TDD’s frameworks to put in practice TDD and I will show you the most interesting ones:
| FrameWork | Descritivo simples | Vantagens | Desvantagens | Licença | Site | Doc | Saída | Funções usadas | Compatível com VC | Teste Nurit |
| FCTX | tudo em um .h | basta colocar o .h no fonte que for testar que está pronto. | repetição de código para cada módulo testado (aumenta o binário?) | BSD | http://fctx.wildbearsoftware.com/ | SIM | XML padrão JUNI | string.h assert.h stdarg.h stdlib.h stdio.h time.h float.h math.h ctype.h unistd.h | SIM; projeto TddTestwithFct | |
| xUnit compatível | Macro expansiveis, que podem não ser fáceis de lidar em todos compiladores. | próprio (linhas com os teste feitos) | _pipe, assert, stdout, sdterr, va_xxx, strings, malloc/realloc, calloc, free, memXXX, clock_t, goto, fprintf | |||||||
| ANSI | pipes | mínima (pontinhos correndo) | macros ##, #arg, double, int | |||||||
| Fixture | ||||||||||
| CU | simples framework para testes automatizados | tudo em um .c e um .h | Não é xUnit | GNU | http://cu.danfis.cz/ | SIM | texto | stdlib.h stdio.h string.h sys/wait.h | ||
| ANSI | Macro expansiveis, que podem não ser fáceis de lidar em todos compiladores. | pipe,perror, fork, WIFEXITED, WIFSIGNALED, stdout, sterr, fprintf, flush, snprintf, strings | ||||||||
| pipes | macro ##name | |||||||||
| fork | ||||||||||
| C unit | frame work bem completo (idependente de OS) | xUnit compatível | tem install para plataformas feito em JAM (parece ser um make) | GNU – LGPL-2 | http://sourceforge.net/projects/cunit/ | SIM | próprio | stdio.h stdlib.h ctype.h assert.h string.h limits.h time.h,math.h | ||
| flexivel | muitos módulos | XML | fprintf,assert,stdout,printf,fopen,setvbuf, size_t,snprintf,longjmp/setjump, double, clock(), exit, va_start/list, toupper,getchar,fgets, time,ctime, malloc,cmalloc | |||||||
| talvez seja possivel cortar os módulos não necessários. | Console (testes com interatividade) | |||||||||
| Cu Test | simples e direto. Feito para GNU portable | xUnit compatível | simples | zlib/libpng | http://cutest.sourceforge.net/ | simples, mas o próprio fonte vem com os testes do framework | texto | setjmp.h,stdarg.h, assert.h,stdlib.h,stdio.h,string.h | ||
| cross-plataform | strXXX,malloc,STRINGMAX, va_start,va_end,vsprintf,memmove,memcpy,setjmp,sprintf | |||||||||
| tudo em um .c e um .h | ||||||||||
| Embedded Unit | desenvolvido para embedded e tudo é colocado numa global. Não usa std lib, tudo é feito na lib | xUnit compatível | projeto um pouco complexo devido não usar o std lib. | GNU | http://embunit.sourceforge.net/ | SIM | XML | stdio.h (PARA OS OUTPUTTERS) | ||
| Fixture | faz uns 3 anos que não é alterado | texto | fprintf,stdout | |||||||
| feito no Japão (?) | bom, deve ser limitado em algumas coisas | |||||||||
| em tese mais simples de portar | ||||||||||
| 2 libs, uma os testes e outra o outputters |
