Skip to content
Extraits de code Groupes Projets
Valider a5e78682 rédigé par Laurent Paucot's avatar Laurent Paucot
Parcourir les fichiers

meilleure structure

parent ed718e22
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #8033 réussi
all : fact fact : main.o run.o
gcc -g -std=c99 -o fact run.o main.o -lpthread
fact : run.o test.o
gcc -g -std=c99 -o fact run.o test.o -lpthread -I${HOME}/local/include -lcunit -L${HOME}/local/lib -lm
test : test.o run.o
gcc -g -std=c99 -o test test.o run.o -lpthread -lcunit && ./test
run.o : run.c run.h
gcc -g -std=c99 -o run.o -c run.c -W -Wall -lpthread
run.o : run.c main.o : main.c run.h
gcc -g -std=c99 -o run.o -c run.c -W -Wall -lpthread -lm gcc -g -std=c99 -o main.o -c main.c -W -Wall -lpthread -lm
test.o : test.c run.h test.o : test.c run.h
gcc -g -std=c99 -o test.o -c test.c -I${HOME}/local/include -W -Wall -lcunit -lpthread -lm gcc -g -std=c99 -o test.o -c test.c -I${HOME}/local/include -W -Wall -lcunit -lpthread
clean : clean :
rm -rf fact *.o *.xml "actual_output.txt" rm -rf test fact *.o *.xml "actual_output.txt" "output.txt"
test : fact
./fact Test
cpp : run.c cpp : run.c test.c
cppcheck --enable=all run.c cppcheck --enable=all run.c && cppcheck --enable=all test.c
cpp_xml : run.c cpp_xml : run.c
cppcheck --enable=all --inconclusive --xml --xml-version=2 run.c 2> cppcheck.xml cppcheck --enable=all --inconclusive --xml --xml-version=2 run.c 2> cppcheck.xml
......
...@@ -8,15 +8,16 @@ Convertir et optimiser un programme python en langage C et retourner les diviseu ...@@ -8,15 +8,16 @@ Convertir et optimiser un programme python en langage C et retourner les diviseu
## Fichiers ## Fichiers
* **Makefile** : Permet l'exécution de commandes (compilation du code, exécution des tests). * **Makefile** : Permet l'exécution de commandes (compilation du code, exécution des tests).
* **run.c** : Contient les fonctions du programme ainsi que le *run* pour lancer le programme. * **run.c** : Contient le corps du code de l'algorithme
* **run.h** : Contient la déclaration des fonctions de base du programme. * **run.h** : Contient les signatures des fonctions de run.c.
* **test.c** : Contient des tests en CUnit permettant de tester le programme. * **main.c** : Contient la fonction main du programme principal (run.c).
* **Test_file** : Dossier contenant différents input et output pour divers exemples de nombres (entiers,petits,grands). * **test.c** : Contient des tests en CUnit permettant de tester les fonctions de run.c.
* **Test_files** : Dossier contenant différents input et output pour divers exemples de nombres (entiers,petits,grands).
## Librairies utilisées ## Librairies utilisées
- Librairies standards en C - Librairies standards en C
- Librairie pthreads et semaphores: exécution des threads et des semaphores - Librairie pthreads et semaphores: exécution des threads et des semaphores
- Librairie Cunit: utiliser pour les tests unitaires - Librairie Cunit: utilisée pour les tests unitaires
- Librairie time: calcule le temps d'exécution du programme - Librairie time: calcule le temps d'exécution du programme
......
#include "run.h"
int main(int argc, char *argv[]){
if (argc == 5 && strcmp("-N",argv[1])==0){
int err = run(argv[3],argv[4],atoi(argv[2]));
if (err == -1){return EXIT_FAILURE;}
}
else
{
if (argc == 3){
int err = run(argv[1],argv[2],4);
if (err == -1){return EXIT_FAILURE;}
}
else{
printf("Invalid type of number of arguments, please try again with the right format\n");
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}
\ No newline at end of file
...@@ -32,7 +32,6 @@ queue_t *get_from_buffer_2(struct buffer_cw *buf){ // trouver un element ...@@ -32,7 +32,6 @@ queue_t *get_from_buffer_2(struct buffer_cw *buf){ // trouver un element
struct queue *result; struct queue *result;
result = buf->tab[buf->tail]; //donne une valeur a result result = buf->tab[buf->tail]; //donne une valeur a result
//free(buf->tab[buf->tail]);
buf->tab[buf->tail] = NULL; buf->tab[buf->tail] = NULL;
buf->len--; //diminue l'espace occupé par le buffer buf->len--; //diminue l'espace occupé par le buffer
buf->tail = (buf->tail + 1)%buf->size; buf->tail = (buf->tail + 1)%buf->size;
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include <unistd.h> #include <unistd.h>
#include <pthread.h> #include <pthread.h>
#include <semaphore.h> #include <semaphore.h>
#include <math.h>
#include <pthread.h> #include <pthread.h>
#include <semaphore.h> #include <semaphore.h>
......
...@@ -183,65 +183,40 @@ int setup(void){ ...@@ -183,65 +183,40 @@ int setup(void){
return 0; return 0;
} }
int main(int argc, char *argv[]){ int main(){
if (argc == 2 && strcmp(argv[1],"Test")==0){ if (CUE_SUCCESS != CU_initialize_registry())
{
if (CUE_SUCCESS != CU_initialize_registry()) return CU_get_error();
{ }
return CU_get_error();
}
CU_pSuite pSuite = NULL;
pSuite = CU_add_suite("ma_suite",setup,teardown);
if (NULL == pSuite) CU_pSuite pSuite = NULL;
{
CU_cleanup_registry();
return CU_get_error();
}
if (NULL == CU_add_test(pSuite,"test_is_div",test_is_div) || pSuite = CU_add_suite("ma_suite",setup,teardown);
NULL == CU_add_test(pSuite, "test_is_prime",test_is_prime) ||
NULL == CU_add_test(pSuite, "test_is_not_prime",test_is_not_prime) ||
NULL == CU_add_test(pSuite,"empty_file_test",empty_file_test) ||
NULL == CU_add_test(pSuite,"short_file_test",short_file_test) ||
NULL == CU_add_test(pSuite,"file_test : N = 4",file_test_N_4) ||
NULL == CU_add_test(pSuite,"file_test N = 1",file_test_N_1))
{
CU_cleanup_registry();
return CU_get_error();
}
if (NULL == pSuite)
CU_basic_run_tests(); {
CU_automated_run_tests(); CU_cleanup_registry();
CU_basic_show_failures(CU_get_failure_list()); return CU_get_error();
} }
else
if (NULL == CU_add_test(pSuite,"test_is_div",test_is_div) ||
NULL == CU_add_test(pSuite, "test_is_prime",test_is_prime) ||
NULL == CU_add_test(pSuite, "test_is_not_prime",test_is_not_prime) ||
NULL == CU_add_test(pSuite,"empty_file_test",empty_file_test) ||
NULL == CU_add_test(pSuite,"short_file_test",short_file_test) ||
NULL == CU_add_test(pSuite,"file_test : N = 4",file_test_N_4) ||
NULL == CU_add_test(pSuite,"file_test N = 1",file_test_N_1))
{ {
if (argc == 5 && strcmp("-N",argv[1])==0){ CU_cleanup_registry();
int err = run(argv[3],argv[4],atoi(argv[2])); return CU_get_error();
if (err == -1){return EXIT_FAILURE;}
}
else
{
if (argc == 3){
int err = run(argv[1],argv[2],4);
if (err == -1){return EXIT_FAILURE;}
}
else{
printf("Invalid type of number of arguments, please try again with the right format\n");
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
} }
return EXIT_SUCCESS;
} CU_basic_run_tests();
\ No newline at end of file CU_automated_run_tests();
CU_basic_show_failures(CU_get_failure_list());
return EXIT_SUCCESS;
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter