22 mar 2012

testeando c

Ahora estoy por aprender C (no C++ ni C#), algo bien dificil de buscar en internet (buscá C en google y seguro que salen cosas útiles)...

Para testear C, hay un "algo" que se llama Check y otros sistemas para test unitarios. (test de a partes).

El problema vino cuando quise testear el producto terminado, algo que interactúe con un programita de consola, lea el standard output y escriba en el standard input, de a turnos y chequé que los resultados son los esperados.

Asi me encontré que no hay en ruby una forma feliz de interactuar con un programa taaan simple.

Lo único que encontré es:
- Kernel.exec es muuy molesto.
- Había una gema que hacía eso, pero... el último commit es de 2008. Utilizaba algo llamado termios de linux (que no está muy bien documentado tampoco).
- Un tipo escribió una guia muy linda sobre ejecución de archivos en ruby, pero no le puso indice. (Parte 1, parte 2, parte 3)
- Ahí encontré que la posta son dos librerías olvidadas de la stdlib de ruby. PTY y Open3.
- Una posibilidad que no llegué a leer es expect.

Esto, lo quiero para poder testear estos "programas".