MCPcopy Create free account
hub / github.com/coin-or/CppAD / omp_alloc_array

Function omp_alloc_array

test_more/deprecated/omp_alloc.cpp:96–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

94};
95
96bool omp_alloc_array(void)
97{ bool ok = true;
98 using CppAD::omp_alloc;
99 size_t i;
100
101 // check initial memory values
102 size_t thread = omp_alloc::get_thread_num();
103 ok &= thread == 0;
104 ok &= ! CppAD::memory_leak();
105 size_t static_inuse = omp_alloc::inuse(0);
106
107 // initial allocation of an array
108 size_t size_min = 3;
109 size_t size_one;
110 my_char *array_one =
111 omp_alloc::create_array<my_char>(size_min, size_one);
112
113 // check the values and change them to null 'x'
114 for(i = 0; i < size_one; i++)
115 { ok &= array_one[i].ch_ == ' ';
116 array_one[i].ch_ = 'x';
117 }
118
119 // now create a longer array
120 size_t size_two;
121 my_char *array_two =
122 omp_alloc::create_array<my_char>(2 * size_min, size_two);
123
124 // check the values in array one
125 for(i = 0; i < size_one; i++)
126 ok &= array_one[i].ch_ == 'x';
127
128 // check the values in array two
129 for(i = 0; i < size_two; i++)
130 ok &= array_two[i].ch_ == ' ';
131
132 // check the amount of inuse and available memory
133 // (an extra size_t value is used for each memory block).
134 size_t check = static_inuse + sizeof(my_char)*(size_one + size_two);
135 ok &= omp_alloc::inuse(thread) - check < sizeof(my_char);
136 ok &= omp_alloc::available(thread) == 0;
137
138 // delete the arrays
139 omp_alloc::delete_array(array_one);
140 omp_alloc::delete_array(array_two);
141 ok &= omp_alloc::inuse(thread) == static_inuse;
142 check = sizeof(my_char)*(size_one + size_two);
143 ok &= omp_alloc::available(thread) - check < sizeof(my_char);
144
145 // free the memory for use by this thread
146 omp_alloc::free_available(thread);
147 ok &= ! CppAD::memory_leak();
148
149 return ok;
150}
151} // End empty namespace
152
153bool omp_alloc(void)

Callers 1

omp_allocFunction · 0.85

Calls 1

memory_leakFunction · 0.85

Tested by

no test coverage detected