Herramientas de usuario

Herramientas del sitio


algo2:main:run-tests-proy2-a

¡Esta es una revisión vieja del documento!


Cómo correr los tests del proyecto 2, parte A

Confirmar que tienen instalados las siguientes dependencias:

  • python2.7
  • python-virtualenv
  • valgrind
  • indent

Para ello, en una terminal, correr los comandos:

$ sudo apt-get update
$ sudo apt-get install python2.7 python-virtualenv valgrind indent

Primero que nada, probar con el esqueleto de código dado por la cátedra. Como ejemplo, vamos a usar el de 64bits. Todas las líneas de esta documentación que empiezan con el símbolo peso, indican que el comando debe ser corrido en una terminal.

  • Bajar el esqueleto y guardarlo en el disco

Luego, lo descomprimen y entran en ese directorio:

$ tar xzvf dictionary-skeleton-amd64_1.1_2014-04-06.tar.gz
$ cd dictionary-skeleton-amd64_1.1_2014-04-06

Ahora, compilar las librerías del dict y de la lista (respetar al pie de la letra los comandos):

$ gcc -Wall -Werror -Wextra -pedantic -std=c99 -fPIC -g -c index.c data.c
$ gcc -shared -o list.so index.o data.o pair.o list.o
$ gcc -shared -o dict.so index.o data.o pair.o list.o dict.o

Correr los tests usando python:

$ python2.7 -m unittest discover -v tests/

Lo de arriba tienen que haber andado bien (debería mostrar OK), correr ahora los mismos tests pero con valgrind:

$ valgrind --leak-check=full --show-reachable=yes --log-file=valgring.log python2.7 -m unittest discover -v tests/

Ahora tienen un archivo nuevo valgrind.log con mucho output, deberían buscar accessos inválidos a memoria, invalid free o memory leaks relacionados con sus archivos.

Ahora, para probar el codigo de Uds, deberían borrar el dict.o y el main.o:

$ rm dict.so dict.o main.o

Y repetir los pasos de arriba pero compilando los .c de Uds:

$ gcc -Wall -Werror -Wextra -pedantic -std=c99 -fPIC -c dict.c

$ gcc -shared -o dict.so index.o data.o pair.o list.o dict.o

Ahora también correr los tests de estilo:

$ python2.7 -m unittest discover -v style_tests/

Y correr los tests de unidad, con el comando que usa valgrind, hasta que no tengan errores ni problemas de memoria en el código de Uds.

Por último, correr los tests de aceptación. Para ello hay que crear un entorno virtual para Python, activarlo e instalar una nueva dependencia:

$ virtualenv -p /usr/bin/python2.7 ~/facu-ayed2-env
$ source ~/facu-ayed2-env/bin/activate
(facu-ayed2-env)$ pip install -e git+https://github.com/matiasb/pexpect-fixtures@2ae01968b50224f180d867574c69ed9d88539131#egg=pexpect_fixtures

Luego, compilar el diccionario como siempre, y correr:

algo2/main/run-tests-proy2-a.1396810344.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)