Coverage report for server


src/
File: src/teams.c
Date: 2024-06-25 10:57:05
Lines:
24/37
64.9%
Functions:
3/4
75.0%
Branches:
10/24
41.7%

Line Branch Exec Source
1 /*
2 ** EPITECH PROJECT, 2024
3 ** zappy
4 ** File description:
5 ** lists.c
6 */
7
8 #include "server.h"
9
10 2 static void *create_eggs(team_t *team, int nb_client, int width, int height)
11 {
12 2 eggs_list_t *new_egg;
13
14
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 2 times.
12 for (int i = 0; i < nb_client; i++) {
15 10 new_egg = malloc(sizeof(eggs_list_t));
16
1/2
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
10 if (new_egg == NULL)
17 return NULL;
18 10 new_egg->egg = init_egg(width, height);
19 10 TAILQ_INSERT_TAIL(&team->eggs, new_egg, entries);
20 10 team->nb_eggs++;
21 }
22 return new_egg;
23 }
24
25 2 team_t *init_team(const char *team_name, int nb_client, int width, int height)
26 {
27 2 team_t *team = malloc(sizeof(team_t));
28
29
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if (team == NULL)
30 return NULL;
31 2 team->capacity = 0;
32 2 team->is_complete = false;
33 2 team->nb_eggs = 0;
34
2/2
✓ Branch 0 taken 400 times.
✓ Branch 1 taken 2 times.
402 for (unsigned char i = 0; i < MAX_CAPACITY_TEAM; i++)
35 400 team->client_ids[i] = NULL;
36 2 team->name = malloc(sizeof(char) * (strlen(team_name) + 1));
37 strcpy(team->name, team_name);
38 2 team->name[strlen(team_name)] = '\0';
39 2 TAILQ_INIT(&team->eggs);
40
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (create_eggs(team, nb_client, width, height) == NULL)
41 return NULL;
42 return team;
43 }
44
45 1 void destroy_teams(struct teams_tailq *teams)
46 {
47 team_list_t *item;
48
49
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 TAILQ_FOREACH(item, teams, entries) {
50
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 TAILQ_REMOVE(teams, item, entries);
51 }
52 1 }
53
54 void print_teams_infos(struct teams_tailq *teams)
55 {
56 char **uuids;
57 unsigned char idx = 0;
58 eggs_list_t *item_e;
59 char *res;
60
61 for (team_list_t *i = TAILQ_FIRST(teams); i; i = TAILQ_NEXT(i, entries)) {
62 uuids = i->team->client_ids;
63 idx = 0;
64 res = i->team->is_complete ? "" : "not ";
65 printf("Team %s is %scomplete\n", i->team->name, res);
66 printf("UUIDs:\n");
67 for (; idx < MAX_CAPACITY_TEAM && uuids[idx] != NULL; idx++)
68 printf("%u - (%s)\n", idx, i->team->client_ids[idx]);
69 printf("Eggs:\n");
70 item_e = TAILQ_FIRST(&i->team->eggs);
71 while (item_e != NULL) {
72 printf("X(%u) Y(%u)\n", item_e->egg->x, item_e->egg->y);
73 item_e = TAILQ_NEXT(item_e, entries);
74 }
75 }
76 }
77