diff --git a/Makefile b/Makefile index 358568b955b09611d72e3cd0c9ffd89ae252135c..78270267f8c292d95de00faae50c3fbf0ec8bfd6 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,26 @@ -all : fact - -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 +fact : main.o run.o + gcc -g -std=c99 -o fact run.o main.o -lpthread +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 - gcc -g -std=c99 -o run.o -c run.c -W -Wall -lpthread -lm +main.o : main.c run.h + gcc -g -std=c99 -o main.o -c main.c -W -Wall -lpthread -lm 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 : - rm -rf fact *.o *.xml "actual_output.txt" - - -test : fact - ./fact Test + rm -rf test fact *.o *.xml "actual_output.txt" "output.txt" -cpp : run.c - cppcheck --enable=all run.c +cpp : run.c test.c + cppcheck --enable=all run.c && cppcheck --enable=all test.c cpp_xml : run.c cppcheck --enable=all --inconclusive --xml --xml-version=2 run.c 2> cppcheck.xml diff --git a/README.md b/README.md index 93794955b34676f449b752571f6e9bc3d1d7a3fb..c81bac848a29b44260616a57eaf31a6ec492bc28 100644 --- a/README.md +++ b/README.md @@ -8,15 +8,16 @@ Convertir et optimiser un programme python en langage C et retourner les diviseu ## Fichiers * **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.h** : Contient la déclaration des fonctions de base du programme. -* **test.c** : Contient des tests en CUnit permettant de tester le programme. -* **Test_file** : Dossier contenant différents input et output pour divers exemples de nombres (entiers,petits,grands). +* **run.c** : Contient le corps du code de l'algorithme +* **run.h** : Contient les signatures des fonctions de run.c. +* **main.c** : Contient la fonction main du programme principal (run.c). +* **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 standards en C - 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 diff --git a/main.c b/main.c new file mode 100644 index 0000000000000000000000000000000000000000..cec85aa886034747425b2d3e74e60813968d52d3 --- /dev/null +++ b/main.c @@ -0,0 +1,24 @@ +#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 diff --git a/run.c b/run.c index 82ccb234c82f4123c4a294da82137c19e20ffaf1..1521f5028c4f6e4ddc5107eda8abd45197ea92f9 100755 --- a/run.c +++ b/run.c @@ -32,7 +32,6 @@ queue_t *get_from_buffer_2(struct buffer_cw *buf){ // trouver un element struct queue *result; result = buf->tab[buf->tail]; //donne une valeur a result - //free(buf->tab[buf->tail]); buf->tab[buf->tail] = NULL; buf->len--; //diminue l'espace occupé par le buffer buf->tail = (buf->tail + 1)%buf->size; diff --git a/run.h b/run.h index 9f07197a976bbb2c62339da4410d43c7bbdec269..03363e435979bb3d100f0e475fbe3c3806ecf36d 100644 --- a/run.h +++ b/run.h @@ -4,7 +4,6 @@ #include <unistd.h> #include <pthread.h> #include <semaphore.h> -#include <math.h> #include <pthread.h> #include <semaphore.h> diff --git a/test.c b/test.c index 54df28794fd151afaf05396f03ec44b160583b4d..598087a6c4d9e5015a7b49a1583a712e85f81b0e 100644 --- a/test.c +++ b/test.c @@ -183,65 +183,40 @@ int setup(void){ return 0; } -int main(int argc, char *argv[]){ +int main(){ - if (argc == 2 && strcmp(argv[1],"Test")==0){ - - if (CUE_SUCCESS != CU_initialize_registry()) - { - return CU_get_error(); - } - - - CU_pSuite pSuite = NULL; + if (CUE_SUCCESS != CU_initialize_registry()) + { + return CU_get_error(); + } - pSuite = CU_add_suite("ma_suite",setup,teardown); - if (NULL == pSuite) - { - CU_cleanup_registry(); - return CU_get_error(); - } + CU_pSuite pSuite = NULL; - 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)) - { - CU_cleanup_registry(); - return CU_get_error(); - } + pSuite = CU_add_suite("ma_suite",setup,teardown); - - CU_basic_run_tests(); - CU_automated_run_tests(); - CU_basic_show_failures(CU_get_failure_list()); + if (NULL == pSuite) + { + CU_cleanup_registry(); + 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){ - 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; + CU_cleanup_registry(); + return CU_get_error(); } - return EXIT_SUCCESS; + -} \ No newline at end of file + CU_basic_run_tests(); + CU_automated_run_tests(); + CU_basic_show_failures(CU_get_failure_list()); + + return EXIT_SUCCESS; +}