This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "opal_config.h"
25 #include <stdlib.h>
26 #include <stdio.h>
27 #include <assert.h>
28 #include <string.h>
29
30 #include "support.h"
31 #include "opal/class/opal_value_array.h"
32 #include "opal/runtime/opal.h"
33
34 #define NUM_ITEMS 10
35
36
37 int main(int argc, char **argv)
38 {
39 uint64_t i, val;
40 uint64_t count;
41 opal_value_array_t array;
42
43 test_init("opal_value_array_t");
44
45 i = opal_init_util(&argc, &argv);
46 test_verify_int(OPAL_SUCCESS, i);
47 if (OPAL_SUCCESS != i) {
48 test_finalize();
49 exit(1);
50 }
51
52 OBJ_CONSTRUCT(&array, opal_value_array_t);
53
54 opal_value_array_init(&array, sizeof(uint64_t));
55 test_verify_int(0, opal_value_array_get_size(&array));
56
57
58 for(i=0; i < NUM_ITEMS; i++) {
59 opal_value_array_append_item(&array, &i);
60 }
61 test_verify_int(NUM_ITEMS, opal_value_array_get_size(&array));
62
63
64 for(i=0; i < NUM_ITEMS; i++) {
65 val = OPAL_VALUE_ARRAY_GET_ITEM(&array, uint64_t, i);
66 if (val != i) {
67 test_failure("Comparison failure");
68 fprintf(stderr, " Expected result: %lld\n", (long long) i);
69 fprintf(stderr, " Test result: %lld\n", (long long) val);
70 fflush(stderr);
71 }
72 }
73
74
75 opal_value_array_init(&array, sizeof(uint64_t));
76 test_verify_int(0, opal_value_array_get_size(&array));
77
78
79 opal_value_array_set_size(&array, NUM_ITEMS);
80
81
82 count = 0;
83 for(i=0; i < NUM_ITEMS; i++) {
84 OPAL_VALUE_ARRAY_SET_ITEM(&array, uint64_t, i, count++);
85 }
86
87
88 for(i=0; i < NUM_ITEMS; i++) {
89 opal_value_array_append_item(&array, &count);
90 count++;
91 }
92
93 test_verify_int(count, opal_value_array_get_size(&array));
94
95
96 for(i=0; i < count; i++) {
97 test_verify_int(i, OPAL_VALUE_ARRAY_GET_ITEM(&array, uint64_t, i));
98 }
99
100
101 opal_value_array_remove_item(&array, NUM_ITEMS);
102
103
104 test_verify_int(count-1, opal_value_array_get_size(&array));
105
106
107 for(i=0; i < count-1; i++) {
108 if(i >= NUM_ITEMS) {
109 test_verify_int(i+1, OPAL_VALUE_ARRAY_GET_ITEM(&array, uint64_t, i));
110 } else {
111 test_verify_int(i, OPAL_VALUE_ARRAY_GET_ITEM(&array, uint64_t, i));
112 }
113 }
114
115 OBJ_DESTRUCT(&array);
116
117 opal_finalize_util ();
118
119 return test_finalize();
120 }