-
Notifications
You must be signed in to change notification settings - Fork 1
/
test_queue_get.c
66 lines (58 loc) · 1.34 KB
/
test_queue_get.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
* tests takong stuff out of the queue
* performs 3 tests:
* - puts 5 person into the queue
* - takes all of them out
* - tests removing from empty queue
* module 3
*/
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <stdint.h>
#include <string.h>
#include "time.h"
#include "queue.h"
#define MAXNM 128
typedef struct person {
char name[MAXNM];
int age;
double rate;
} person_t;
int main(void) {
queue_t *qp = qopen();
person_t person1 = {"stjepan", 21, 1};
person_t person2 = {"allen", 21, 2};
person_t person3 = {"allen", 21, 3};
person_t person4 = {"allen", 21, 4};
person_t person5 = {"allen", 21, 5};
qput(qp, (void *)&person1);
qput(qp, (void *)&person2);
qput(qp, (void *)&person3);
qput(qp, (void *)&person4);
qput(qp, (void *)&person5);
person_t *p = (person_t *)qget(qp);
if (p->rate != 1){
exit(EXIT_FAILURE);
}
p = (person_t *)qget(qp);
if (p->rate != 2){
exit(EXIT_FAILURE);
}
p = (person_t *)qget(qp);
if (p->rate != 3){
exit(EXIT_FAILURE);
}
p = (person_t *)qget(qp);
if (p->rate != 4){
exit(EXIT_FAILURE);
}
p = (person_t *)qget(qp);
if (p->rate != 5){
exit(EXIT_FAILURE);
}
qget(qp);
qclose(qp);
printf("success");
exit(EXIT_SUCCESS);
}