28 #include "../visir/visir_queue.c"
38 #define CONCAT(a,b) a ## _ ## b
39 #define CONCAT2X(a,b) CONCAT(a,b)
50 cpl_test_init(PACKAGE_BUGREPORT, CPL_MSG_WARNING);
53 stream = cpl_msg_get_level() > CPL_MSG_INFO
54 ? fopen(
"/dev/null",
"a") : stdout;
56 #if defined _OPENMP && _OPENMP >= 200805
58 visir_queue * q = visir_queue_init(-1);
59 cpl_test_eq(q->max_size, INT_MAX);
60 cpl_test_eq(q->size, 0);
61 visir_queue_delete(q);
66 visir_queue * q = visir_queue_init(-1);
67 for (
int i = 0; i < N; i++)
68 visir_queue_put(q, (
void*)(intptr_t)i);
69 cpl_test_eq(q->size, N);
70 for (
int i = 0; i < N; i++)
71 cpl_test_eq((intptr_t)visir_queue_pop(q), (intptr_t)i);
72 cpl_test_eq(q->size, 0);
73 visir_queue_delete(q);
77 visir_queue * q = visir_queue_init(-1);
78 omp_set_num_threads(10);
79 #pragma omp parallel for
80 for (
int i = 0; i < N; i++)
81 visir_queue_put(q, (
void*)(intptr_t)i);
82 cpl_test_eq(q->size, N);
83 #pragma omp parallel for
84 for (
int i = 0; i < N; i++)
86 cpl_test_eq(q->size, 0);
87 visir_queue_delete(q);
91 visir_queue * q = visir_queue_init(5);
92 omp_set_num_threads(10);
98 for (
int i = 0; i < N; i++) {
99 visir_queue_put(q, (
void*)55);
100 cpl_test_leq(q->size, 5);
106 for (
int i = 0; i < N; i++) {
107 cpl_test_eq((intptr_t)visir_queue_pop(q), 55);
108 cpl_test_leq(0, q->size);
113 cpl_test_eq(q->size, 0);
114 visir_queue_delete(q);
120 visir_queue * q = visir_queue_init(5);
121 omp_set_num_threads(10);
127 for (
int i = 0; i < N; i++) {
128 visir_queue_put(q, (
void*)55);
129 cpl_test_leq(q->size, 5);
135 for (
int i = 0; i < N / 10; i++) {
136 cpl_test_eq((intptr_t)visir_queue_pop(q), 55);
137 cpl_test_leq(0, q->size);
139 visir_queue_set_error(q, CPL_ERROR_ILLEGAL_INPUT);
143 visir_queue_delete(q);
147 if (stream != stdout) cpl_test_zero( fclose(stream) );
148 return cpl_test_end(0);
int main(void)
Find a plugin and submit it to some tests.