Skip to content

Commit f1f71b3

Browse files
umar456pradeep
authored andcommitted
Fix several memory related issues in unit tests.
* Release objects before the test finishs * Use freeHost instead of delete[] * Correctly release af_feature objects and arrays * Use resize in readTests to avoid multiple allocations
1 parent 3aad490 commit f1f71b3

16 files changed

Lines changed: 146 additions & 147 deletions

test/anisotropic_diffusion.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ void imageTest(string pTestFile, const float dt, const float K, const uint iters
122122
ASSERT_EQ(true, compareArraysRMSD(nElems, goldData.data(), outData.data(), 0.025f));
123123

124124
ASSERT_EQ(AF_SUCCESS, af_release_array(_inArray));
125+
ASSERT_EQ(AF_SUCCESS, af_release_array(_outArray));
125126
ASSERT_EQ(AF_SUCCESS, af_release_array(inArray));
126127
ASSERT_EQ(AF_SUCCESS, af_release_array(cstArray));
127128
ASSERT_EQ(AF_SUCCESS, af_release_array(minArray));

test/cast.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ void cast_test()
3030
af_array a, b;
3131
af_randu(&a, dims.ndims(), dims.get(), ta);
3232
af_err err = af_cast(&b, a, tb);
33+
af_release_array(a);
34+
af_release_array(b);
3335
ASSERT_EQ(err, AF_SUCCESS);
3436
}
3537

@@ -87,6 +89,7 @@ void cast_test_complex_real()
8789
af_randu(&a, dims.ndims(), dims.get(), ta);
8890
af_err err = af_cast(&b, a, tb);
8991
ASSERT_EQ(err, AF_ERR_TYPE);
92+
ASSERT_EQ(AF_SUCCESS, af_release_array(a));
9093
}
9194

9295
#define COMPLEX_REAL_TESTS(Ti, To) \

test/complex.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ const int num = 10;
3737
for (int i = 0; i < num; i++) \
3838
ASSERT_EQ(h_c[i], CPLX(Tc)(h_a[i], h_b[i])) << \
3939
"for values: " << h_a[i] << "," << h_b[i] << std::endl; \
40-
delete[] h_a; \
41-
delete[] h_b; \
42-
delete[] h_c; \
40+
freeHost(h_a); \
41+
freeHost(h_b); \
42+
freeHost(h_c); \
4343
} \
4444
TEST(ComplexTests, Test_cplx_##Ta##_##Tb##_left) \
4545
{ \
@@ -55,8 +55,8 @@ const int num = 10;
5555
for (int i = 0; i < num; i++) \
5656
ASSERT_EQ(h_c[i], CPLX(Ta)(h_a[i], h_b)) << \
5757
"for values: " << h_a[i] << "," << h_b << std::endl; \
58-
delete[] h_a; \
59-
delete[] h_c; \
58+
freeHost(h_a); \
59+
freeHost(h_c); \
6060
} \
6161
\
6262
TEST(ComplexTests, Test_cplx_##Ta##_##Tb##_right) \
@@ -73,8 +73,8 @@ const int num = 10;
7373
for (int i = 0; i < num; i++) \
7474
ASSERT_EQ(h_c[i], CPLX(Tb)(h_a, h_b[i])) << \
7575
"for values: " << h_a << "," << h_b[i] << std::endl; \
76-
delete[] h_b; \
77-
delete[] h_c; \
76+
freeHost(h_b); \
77+
freeHost(h_c); \
7878
} \
7979
TEST(ComplexTests, Test_##Ta##_##Tb##_Real) \
8080
{ \
@@ -92,8 +92,8 @@ const int num = 10;
9292
Tc *h_d = d.host<Tc>(); \
9393
for (int i = 0; i < num; i++) \
9494
ASSERT_EQ(h_d[i], h_a[i]) << "at: " << i << std::endl; \
95-
delete[] h_a; \
96-
delete[] h_d; \
95+
freeHost(h_a); \
96+
freeHost(h_d); \
9797
} \
9898
TEST(ComplexTests, Test_##Ta##_##Tb##_Imag) \
9999
{ \
@@ -111,8 +111,8 @@ const int num = 10;
111111
Tc *h_d = d.host<Tc>(); \
112112
for (int i = 0; i < num; i++) \
113113
ASSERT_EQ(h_d[i], h_b[i]) << "at: " << i << std::endl; \
114-
delete[] h_b; \
115-
delete[] h_d; \
114+
freeHost(h_b); \
115+
freeHost(h_d); \
116116
} \
117117
TEST(ComplexTests, Test_##Ta##_##Tb##_Conj) \
118118
{ \
@@ -131,8 +131,8 @@ const int num = 10;
131131
for (int i = 0; i < num; i++) \
132132
ASSERT_EQ(conj(h_c[i]), h_d[i]) \
133133
<< "at: " << i << std::endl; \
134-
delete[] h_c; \
135-
delete[] h_d; \
134+
freeHost(h_c); \
135+
freeHost(h_d); \
136136
} \
137137

138138

test/constant.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ void ConstantCCheck(T value) {
5757
for (int i = 0; i < num; i++) {
5858
ASSERT_EQ(::real(h_in[i]), val);
5959
}
60+
ASSERT_EQ(AF_SUCCESS, af_release_array(out));
6061
}
6162

6263
template<typename T>
@@ -138,6 +139,7 @@ void IdentityCCheck() {
138139
ASSERT_EQ(h_in[i * num + j], T(0));
139140
}
140141
}
142+
ASSERT_EQ(AF_SUCCESS, af_release_array(out));
141143
}
142144

143145
template<typename T>

test/empty.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,5 +283,7 @@ TEST(Array, TestEmptyImage) {
283283
ASSERT_EQ(nd, 0u);
284284
af_get_numdims(&nd, hout);
285285
ASSERT_EQ(nd, 0u);
286+
ASSERT_EQ(AF_SUCCESS, af_release_array(h));
287+
ASSERT_EQ(AF_SUCCESS, af_release_array(hout));
286288
}
287289

test/fast.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,7 @@ void fastTest(string pTestFile, bool nonmax)
141141
ASSERT_EQ(AF_SUCCESS, af_release_array(inArray));
142142
ASSERT_EQ(AF_SUCCESS, af_release_array(inArray_f32));
143143

144-
ASSERT_EQ(AF_SUCCESS, af_release_array(x));
145-
ASSERT_EQ(AF_SUCCESS, af_release_array(y));
146-
ASSERT_EQ(AF_SUCCESS, af_release_array(score));
147-
ASSERT_EQ(AF_SUCCESS, af_release_array(orientation));
148-
ASSERT_EQ(AF_SUCCESS, af_release_array(size));
144+
ASSERT_EQ(AF_SUCCESS, af_release_features(out));
149145

150146
delete [] outX;
151147
delete [] outY;

test/fft.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -511,8 +511,8 @@ TEST(fft, CPP_4D)
511511
ASSERT_EQ(h_b[i], h_B[i]) << "at: " << i << std::endl;
512512
}
513513

514-
delete[] h_b;
515-
delete[] h_B;
514+
freeHost(h_b);
515+
freeHost(h_B);
516516
}
517517

518518
TEST(ifft, CPP_4D)
@@ -530,8 +530,8 @@ TEST(ifft, CPP_4D)
530530
ASSERT_EQ(h_b[i], h_B[i]) << "at: " << i << std::endl;
531531
}
532532

533-
delete[] h_b;
534-
delete[] h_B;
533+
freeHost(h_b);
534+
freeHost(h_B);
535535
}
536536

537537
TEST(fft, GFOR)
@@ -551,8 +551,8 @@ TEST(fft, GFOR)
551551
ASSERT_EQ(h_b[i], h_c[i]) << "at: " << i << std::endl;
552552
}
553553

554-
delete[] h_b;
555-
delete[] h_c;
554+
freeHost(h_b);
555+
freeHost(h_c);
556556
}
557557

558558
TEST(fft2, GFOR)
@@ -572,8 +572,8 @@ TEST(fft2, GFOR)
572572
ASSERT_EQ(h_b[i], h_c[i]) << "at: " << i << std::endl;
573573
}
574574

575-
delete[] h_b;
576-
delete[] h_c;
575+
freeHost(h_b);
576+
freeHost(h_c);
577577
}
578578

579579
TEST(fft3, GFOR)
@@ -593,8 +593,8 @@ TEST(fft3, GFOR)
593593
ASSERT_EQ(h_b[i], h_c[i]) << "at: " << i << std::endl;
594594
}
595595

596-
delete[] h_b;
597-
delete[] h_c;
596+
freeHost(h_b);
597+
freeHost(h_c);
598598
}
599599

600600
TEST(fft, InPlace)

test/flat.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ TEST(FlatTests, Test_flat_1D)
2828
ASSERT_EQ(h_in[i], h_out[i]);
2929
}
3030

31-
delete[] h_in;
32-
delete[] h_out;
31+
freeHost(h_in);
32+
freeHost(h_out);
3333
}
3434

3535
TEST(FlatTests, Test_flat_2D)
@@ -48,8 +48,8 @@ TEST(FlatTests, Test_flat_2D)
4848
ASSERT_EQ(h_in[i], h_out[i]);
4949
}
5050

51-
delete[] h_in;
52-
delete[] h_out;
51+
freeHost(h_in);
52+
freeHost(h_out);
5353
}
5454

5555
TEST(FlatTests, Test_flat_1D_index)
@@ -69,8 +69,8 @@ TEST(FlatTests, Test_flat_1D_index)
6969
ASSERT_EQ(h_in[i], h_out[i - st]);
7070
}
7171

72-
delete[] h_in;
73-
delete[] h_out;
72+
freeHost(h_in);
73+
freeHost(h_out);
7474
}
7575

7676
TEST(FlatTests, Test_flat_2D_index0)
@@ -97,8 +97,8 @@ TEST(FlatTests, Test_flat_2D_index0)
9797
}
9898
}
9999

100-
delete[] h_in;
101-
delete[] h_out;
100+
freeHost(h_in);
101+
freeHost(h_out);
102102
}
103103

104104
TEST(FlatTests, Test_flat_2D_index1)
@@ -126,6 +126,6 @@ TEST(FlatTests, Test_flat_2D_index1)
126126
}
127127
}
128128

129-
delete[] h_in;
130-
delete[] h_out;
129+
freeHost(h_in);
130+
freeHost(h_out);
131131
}

test/flip.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ TEST(FlipTests, Test_flip_1D)
3030
<< "at (" << i << ")";
3131
}
3232

33-
delete[] h_in;
34-
delete[] h_out;
33+
freeHost(h_in);
34+
freeHost(h_out);
3535
}
3636

3737
TEST(FlipTests, Test_flip_2D0)
@@ -54,8 +54,8 @@ TEST(FlipTests, Test_flip_2D0)
5454
}
5555
}
5656

57-
delete[] h_in;
58-
delete[] h_out;
57+
freeHost(h_in);
58+
freeHost(h_out);
5959
}
6060

6161
TEST(FlipTests, Test_flip_2D1)
@@ -78,8 +78,8 @@ TEST(FlipTests, Test_flip_2D1)
7878
}
7979
}
8080

81-
delete[] h_in;
82-
delete[] h_out;
81+
freeHost(h_in);
82+
freeHost(h_out);
8383
}
8484

8585

@@ -101,8 +101,8 @@ TEST(FlipTests, Test_flip_1D_index)
101101
<< "at (" << i << ")";
102102
}
103103

104-
delete[] h_in;
105-
delete[] h_out;
104+
freeHost(h_in);
105+
freeHost(h_out);
106106
}
107107

108108
TEST(FlipTests, Test_flip_2D_index00)
@@ -129,8 +129,8 @@ TEST(FlipTests, Test_flip_2D_index00)
129129
}
130130
}
131131

132-
delete[] h_in;
133-
delete[] h_out;
132+
freeHost(h_in);
133+
freeHost(h_out);
134134
}
135135

136136
TEST(FlipTests, Test_flip_2D_index01)
@@ -157,8 +157,8 @@ TEST(FlipTests, Test_flip_2D_index01)
157157
}
158158
}
159159

160-
delete[] h_in;
161-
delete[] h_out;
160+
freeHost(h_in);
161+
freeHost(h_out);
162162
}
163163

164164
TEST(FlipTests, Test_flip_2D_index10)
@@ -186,8 +186,8 @@ TEST(FlipTests, Test_flip_2D_index10)
186186
}
187187
}
188188

189-
delete[] h_in;
190-
delete[] h_out;
189+
freeHost(h_in);
190+
freeHost(h_out);
191191
}
192192

193193
TEST(FlipTests, Test_flip_2D_index11)
@@ -215,6 +215,6 @@ TEST(FlipTests, Test_flip_2D_index11)
215215
}
216216
}
217217

218-
delete[] h_in;
219-
delete[] h_out;
218+
freeHost(h_in);
219+
freeHost(h_out);
220220
}

0 commit comments

Comments
 (0)