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 : 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
......
......@@ -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
......
#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
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;
......
......@@ -4,7 +4,6 @@
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#include <math.h>
#include <pthread.h>
#include <semaphore.h>
......
......@@ -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;
}
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