diff options
author | gnieboer <gnieboer@corpcomm.net> | 2017-06-13 21:42:25 -0400 |
---|---|---|
committer | gnieboer <gnieboer@corpcomm.net> | 2017-06-13 21:42:25 -0400 |
commit | 7d3f780a548589796c01ce81148e447a98fda35e (patch) | |
tree | f6fa37987254c424c877bf6b1f8b261b0ecd973c /gnuradio-runtime/lib/math | |
parent | b57a37f7c676542f08a27d3f141f4d9ed2ab1132 (diff) |
gr-runtime-test: changed test memory allocation from stack to help to avoid overflow segfault on win32
Diffstat (limited to 'gnuradio-runtime/lib/math')
-rw-r--r-- | gnuradio-runtime/lib/math/qa_fxpt_nco.cc | 6 | ||||
-rw-r--r-- | gnuradio-runtime/lib/math/qa_fxpt_vco.cc | 18 |
2 files changed, 16 insertions, 8 deletions
diff --git a/gnuradio-runtime/lib/math/qa_fxpt_nco.cc b/gnuradio-runtime/lib/math/qa_fxpt_nco.cc index cf229d68be..16ea120381 100644 --- a/gnuradio-runtime/lib/math/qa_fxpt_nco.cc +++ b/gnuradio-runtime/lib/math/qa_fxpt_nco.cc @@ -86,8 +86,8 @@ qa_fxpt_nco::t1() { gr::nco<float,float> ref_nco; gr::fxpt_nco new_nco; - gr_complex ref_block[SIN_COS_BLOCK_SIZE]; - gr_complex new_block[SIN_COS_BLOCK_SIZE]; + gr_complex* ref_block = new gr_complex[SIN_COS_BLOCK_SIZE]; + gr_complex* new_block = new gr_complex[SIN_COS_BLOCK_SIZE]; double max_error = 0; ref_nco.set_freq((float)(2 * M_PI / SIN_COS_FREQ)); @@ -107,6 +107,8 @@ qa_fxpt_nco::t1() } CPPUNIT_ASSERT_DOUBLES_EQUAL (ref_nco.get_phase(), new_nco.get_phase(), SIN_COS_TOLERANCE); // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, max_phase_error); + delete[] ref_block; + delete[] new_block; } void diff --git a/gnuradio-runtime/lib/math/qa_fxpt_vco.cc b/gnuradio-runtime/lib/math/qa_fxpt_vco.cc index 8ee402fdc1..a406c12c0f 100644 --- a/gnuradio-runtime/lib/math/qa_fxpt_vco.cc +++ b/gnuradio-runtime/lib/math/qa_fxpt_vco.cc @@ -79,9 +79,9 @@ qa_fxpt_vco::t1() { gr::vco<float,float> ref_vco; gr::fxpt_vco new_vco; - float ref_block[SIN_COS_BLOCK_SIZE]; - float new_block[SIN_COS_BLOCK_SIZE]; - float input[SIN_COS_BLOCK_SIZE]; + float *ref_block = new float[SIN_COS_BLOCK_SIZE]; + float *new_block = new float[SIN_COS_BLOCK_SIZE]; + float *input = new float[SIN_COS_BLOCK_SIZE]; double max_error = 0; for(int i = 0; i < SIN_COS_BLOCK_SIZE; i++) { @@ -97,6 +97,9 @@ qa_fxpt_vco::t1() } CPPUNIT_ASSERT_DOUBLES_EQUAL(ref_vco.get_phase(), new_vco.get_phase(), SIN_COS_TOLERANCE); // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, ref_vco.get_phase()-new_vco.get_phase()); + delete[] ref_block; + delete[] new_block; + delete[] input; } void @@ -104,9 +107,9 @@ qa_fxpt_vco::t2() { gr::vco<gr_complex,float> ref_vco; gr::fxpt_vco new_vco; - gr_complex ref_block[SIN_COS_BLOCK_SIZE]; - gr_complex new_block[SIN_COS_BLOCK_SIZE]; - float input[SIN_COS_BLOCK_SIZE]; + gr_complex *ref_block = new gr_complex[SIN_COS_BLOCK_SIZE]; + gr_complex *new_block = new gr_complex[SIN_COS_BLOCK_SIZE]; + float *input = new float[SIN_COS_BLOCK_SIZE]; double max_error = 0; for(int i = 0; i < SIN_COS_BLOCK_SIZE; i++) { @@ -122,6 +125,9 @@ qa_fxpt_vco::t2() } CPPUNIT_ASSERT_DOUBLES_EQUAL(ref_vco.get_phase(), new_vco.get_phase(), SIN_COS_TOLERANCE); // printf ("Fxpt max error %.9f, max phase error %.9f\n", max_error, ref_vco.get_phase()-new_vco.get_phase()); + delete[] ref_block; + delete[] new_block; + delete[] input; } void |