algo2:main:run-tests-proy2-a
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
algo2:main:run-tests-proy2-a [2014/04/06 17:54] – creado nbidart | algo2:main:run-tests-proy2-a [2018/08/10 03:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Cómo correr los tests en sus compus | + | ====== Cómo correr los tests del proyecto 2 ====== |
Confirmar que tienen instalados las siguientes dependencias: | Confirmar que tienen instalados las siguientes dependencias: | ||
Línea 5: | Línea 5: | ||
* python2.7 | * python2.7 | ||
* python-virtualenv | * python-virtualenv | ||
+ | * git-core | ||
* valgrind | * valgrind | ||
* indent | * indent | ||
Línea 12: | Línea 13: | ||
$ sudo apt-get update | $ sudo apt-get update | ||
- | $ sudo apt-get install python2.7 python-virtualenv valgrind indent | + | $ sudo apt-get install python2.7 python-virtualenv |
- | Primero que nada, probar | + | ===== Correr los tests de unidad |
- | * Bajar el esqueleto | + | Primero que nada, probar con el esqueleto |
- | Luego, lo descomprimen y entran en ese directorio: | + | Bajar el último esqueleto eligiendo la arquitectura que necesitan y guardarlo en el disco. |
- | $ tar xzvf dictionary-skeleton-amd64_1.1_2014-04-06.tar.gz | + | $ tar xzvf dictionary-skeleton-amd64_VERSION_FECHA.tar.gz |
- | + | $ cd dictionary-skeleton-amd64_VERSION_FECHA | |
- | $ 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): | 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 -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 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 | $ gcc -shared -o dict.so index.o data.o pair.o list.o dict.o | ||
Línea 40: | Línea 38: | ||
$ valgrind --leak-check=full --show-reachable=yes --log-file=valgring.log python2.7 -m unittest discover -v tests/ | $ 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 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 | + | * dict.c |
+ | * list.c | ||
+ | * pair.c | ||
+ | * index.c | ||
+ | * data.c | ||
+ | |||
+ | ===== Correr los tests de unidad con el dict.c/ | ||
+ | |||
+ | Ahora, para probar el codigo de Uds, deberían borrar | ||
$ rm dict.so dict.o main.o | $ rm dict.so dict.o main.o | ||
- | | ||
- | Y repetir los pasos de arriba pero compilando los .c de Uds: | ||
- | | + | Si van a correr los tests de la lista, borrar: |
- | | + | |
+ | $ rm list.so list.o pair.o | ||
+ | |||
+ | Y repetir los pasos de la sección de arriba pero compilando los .c de Uds: | ||
+ | |||
+ | | ||
+ | | ||
$ gcc -shared -o dict.so index.o data.o pair.o list.o dict.o | $ gcc -shared -o dict.so index.o data.o pair.o list.o dict.o | ||
| | ||
- | Ahora también correr los tests de estilo: | + | Ahora también |
$ python2.7 -m unittest discover -v style_tests/ | $ python2.7 -m unittest discover -v style_tests/ | ||
Línea 58: | Línea 68: | ||
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. | 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. | + | $ valgrind --leak-check=full --show-reachable=yes --log-file=valgring.log python2.7 -m unittest discover -v tests/ |
+ | |||
+ | ===== Correr un sub-set de tests de unidad ===== | ||
+ | |||
+ | Para correr los tests sólo del pair, o sólo los de la lista, sacar la parte del comando que dice " | ||
+ | |||
+ | $ python2.7 -m unittest -v tests.test_pair | ||
+ | |||
+ | O por ejemplo: | ||
+ | |||
+ | $ python2.7 -m unittest -v tests.test_list | ||
+ | |||
+ | No se olviden de siempre usar valgrind junto con el comando que corre los tests. | ||
+ | |||
+ | ===== Correr los tests de aceptación ===== | ||
+ | |||
+ | Por último, correr los tests de aceptación. | ||
+ | |||
+ | $ virtualenv -p / | ||
+ | $ source ~/ | ||
+ | |||
+ | Una vez dentro del entorno virtual (se diferencia porque el prompt cambia), instalar esta nueva dependencia: | ||
+ | |||
+ | (facu-ayed2-env)$ pip install -e git+https:// | ||
+ | |||
+ | Luego, compilar | ||
+ | |||
+ | $ ./ | ||
+ | |||
+ | Todo el output de la corrida de acceptance va a estar en el archivo acceptance-valgrind.log. | ||
+ | |||
+ | ===== NUEVO: Correr los tests del BST ===== | ||
+ | |||
+ | Primero que nada, bajar los archivos de tests para el BST, desde acá: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Luego, copiar los archivos en los lugares adecuados según se explica a continuación: | ||
+ | |||
+ | * bst_wrapper.py -> archivo auxiliar que necesitan los tests, | ||
+ | |||
+ | * test_bst.py -> los tests de unidad del BST como TAD " | ||
+ | |||
+ | * from-to-file.fx -> fixture con tests de load/dump del dict a archivos, que hay que cambiarlo porque ahora el dict usa el BST, el dict queda guardado " | ||
+ | |||
+ | Luego, necesitan compilar la librería del BST (bst.so) para que los tests de unidad del BST funcionen. Esto es, generar el bst.so, tal como antes generaban el list.so y dict.so: | ||
+ | |||
+ | $ gcc -Wall -Werror -Wextra -pedantic -std=c99 -g -fPIC -c index.c data.c pair.c list.c bst.c dict.c | ||
+ | |||
+ | Como antes, generan el list.so: | ||
+ | |||
+ | $ gcc -shared -o list.so index.o data.o pair.o list.o | ||
+ | |||
+ | Ahora, generan la librería nueva, bst.so: | ||
+ | |||
+ | $ gcc -shared -o bst.so index.o data.o pair.o list.o bst.o | ||
+ | |||
+ | También tienen que regenerar el dict.so que ahora depende del bst: | ||
+ | |||
+ | $ gcc -shared -o dict.so index.o data.o pair.o list.o bst.o dict.o | ||
+ | |||
+ | Luego, como antes, los tests se pueden correr de "a pedazos" | ||
+ | |||
+ | $ python -m unittest --verbose tests.test_bst | ||
+ | |||
+ | Para correr los del dict solamente (require el dict.so contruido con el bst.c, como dice arriba): | ||
+ | |||
+ | $ python -m unittest --verbose tests.test_dict | ||
+ | |||
+ | Por último, para correr todos los tests de unidad, pueden usar: | ||
+ | |||
+ | $ python -m unittest discover --verbose tests/ | ||
+ | |||
+ | ==== Correr los tests de estilo de código ==== | ||
+ | |||
+ | Del tarball arriba nombrado, copiar el siguiente archivo: | ||
+ | |||
+ | * test_bst_code_style.py -> los tests de estilo para el bst.c y bst.h, este archivo tiene que ir dentro de la carpeta style_tests/ | ||
+ | |||
+ | Para correr los tests de estilo del árbol solamente: | ||
+ | |||
+ | $ python -m unittest --verbose style_tests.test_bst_code_style | ||
+ | |||
+ | Para correr todos los tests de estilo: | ||
+ | |||
+ | $ python -m unittest discover --verbose style_tests/ | ||
algo2/main/run-tests-proy2-a.1396806899.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)