CMSIS-DSP: Corrected compilation issues with ARM AC5 compiler.
Added AC5 support to the test framework.
Upgraded gcc support.
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/ArrayMemory.h b/CMSIS/DSP/Testing/FrameworkInclude/ArrayMemory.h
index 5720af5..21e0025 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/ArrayMemory.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/ArrayMemory.h
@@ -41,9 +41,9 @@
    public:
     ArrayMemory(char* ptr, size_t bufferLength,int aligned, bool tail);
     ArrayMemory(char* ptr, size_t bufferLength);
-    char *NewBuffer(size_t length);
-    void FreeMemory();
-    bool HasMemError();
+    virtual char *NewBuffer(size_t length);
+    virtual void FreeMemory();
+    virtual bool HasMemError();
    
    private:
      // Pointer to C array used for memory
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Calibrate.h b/CMSIS/DSP/Testing/FrameworkInclude/Calibrate.h
index 8747446..30f4d75 100755
--- a/CMSIS/DSP/Testing/FrameworkInclude/Calibrate.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Calibrate.h
@@ -5,6 +5,6 @@
         public:
             Calibrate(Testing::testID_t id);
             void empty();
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
     };
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Error.h b/CMSIS/DSP/Testing/FrameworkInclude/Error.h
index 9872161..c939ae3 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Error.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Error.h
@@ -159,4 +159,4 @@
 #define ASSERT_SNR(A,B,SNR) Client::assert_snr_error(__LINE__,A,B,SNR)
 #define ASSERT_TRUE(A) Client::assert_true(__LINE__,A)
 #define ASSERT_FALSE(A) Client::assert_false(__LINE__,A)
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h b/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h
index 89a2517..395cc59 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h
@@ -28,6 +28,7 @@
 #ifndef _FPGA_H_
 #define _FPGA_H_
 #include <string>
+#include "stdlib.h"
 
 namespace Client
 {
@@ -46,41 +47,40 @@
      public:
       FPGA(const char *testDesc,const char *patterns);
       ~FPGA();
-      void ReadIdentification();
-      void ReadTestIdentification();
-      Testing::nbParameters_t ReadNbParameters();
-      void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t);
-      void EndGroup();
-      void ImportPattern(Testing::PatternID_t);
-      void ReadPatternList();
-      void ReadOutputList();
-      void ReadParameterList(Testing::nbParameters_t);
-      Testing::nbSamples_t GetPatternSize(Testing::PatternID_t);
+      virtual void ReadIdentification();
+      virtual void ReadTestIdentification();
+      virtual Testing::nbParameters_t ReadNbParameters();
+      virtual void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t);
+      virtual void EndGroup();
+      virtual void ReadPatternList();
+      virtual void ReadOutputList();
+      virtual void ReadParameterList(Testing::nbParameters_t);
+      virtual Testing::nbSamples_t GetPatternSize(Testing::PatternID_t);
 
-      void ImportPattern_f64(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_f32(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_q31(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_q15(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_q7(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_u32(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_u16(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
-      void ImportPattern_u8(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_f64(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_f32(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_q31(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_q15(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_q7(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_u32(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_u16(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
+      virtual void ImportPattern_u8(Testing::PatternID_t,char*,Testing::nbSamples_t nb);
 
-      void DumpParams(std::vector<Testing::param_t>&);
-      Testing::param_t* ImportParams(Testing::PatternID_t,Testing::nbParameterEntries_t &,Testing::ParameterKind &);
-      bool hasParam();
-      Testing::PatternID_t getParamID();
+      virtual void DumpParams(std::vector<Testing::param_t>&);
+      virtual Testing::param_t* ImportParams(Testing::PatternID_t,Testing::nbParameterEntries_t &,Testing::ParameterKind &);
+      virtual bool hasParam();
+      virtual Testing::PatternID_t getParamID();
 
-      void DumpPattern_f64(Testing::outputID_t,Testing::nbSamples_t nb, float64_t* data);
-      void DumpPattern_f32(Testing::outputID_t,Testing::nbSamples_t nb, float32_t* data);
-      void DumpPattern_q31(Testing::outputID_t,Testing::nbSamples_t nb, q31_t* data);
-      void DumpPattern_q15(Testing::outputID_t,Testing::nbSamples_t nb, q15_t* data);
-      void DumpPattern_q7(Testing::outputID_t,Testing::nbSamples_t nb, q7_t* data);
-      void DumpPattern_u32(Testing::outputID_t,Testing::nbSamples_t nb, uint32_t* data);
-      void DumpPattern_u16(Testing::outputID_t,Testing::nbSamples_t nb, uint16_t* data);
-      void DumpPattern_u8(Testing::outputID_t,Testing::nbSamples_t nb, uint8_t* data);
+      virtual void DumpPattern_f64(Testing::outputID_t,Testing::nbSamples_t nb, float64_t* data);
+      virtual void DumpPattern_f32(Testing::outputID_t,Testing::nbSamples_t nb, float32_t* data);
+      virtual void DumpPattern_q31(Testing::outputID_t,Testing::nbSamples_t nb, q31_t* data);
+      virtual void DumpPattern_q15(Testing::outputID_t,Testing::nbSamples_t nb, q15_t* data);
+      virtual void DumpPattern_q7(Testing::outputID_t,Testing::nbSamples_t nb, q7_t* data);
+      virtual void DumpPattern_u32(Testing::outputID_t,Testing::nbSamples_t nb, uint32_t* data);
+      virtual void DumpPattern_u16(Testing::outputID_t,Testing::nbSamples_t nb, uint16_t* data);
+      virtual void DumpPattern_u8(Testing::outputID_t,Testing::nbSamples_t nb, uint8_t* data);
       
-      Testing::testID_t CurrentTestID();
+      virtual Testing::testID_t CurrentTestID();
      private:
       void recomputeTestDir();
       void DeleteParams();
@@ -137,4 +137,4 @@
   };
 }
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Generators.h b/CMSIS/DSP/Testing/FrameworkInclude/Generators.h
index 01e1145..2d09bee 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Generators.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Generators.h
@@ -8,4 +8,4 @@
 extern void generate3(Testing::param_t *,Testing::param_t *,Testing::nbParameterEntries_t &);
 extern void generate4(Testing::param_t *,Testing::param_t *,Testing::nbParameterEntries_t &);
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/IORunner.h b/CMSIS/DSP/Testing/FrameworkInclude/IORunner.h
index ced7189..80c8e4f 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/IORunner.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/IORunner.h
@@ -38,8 +38,8 @@
       IORunner(IO*,PatternMgr*);
       IORunner(IO*,PatternMgr*, Testing::RunningMode);
       ~IORunner();
-      Testing::TestStatus run(Suite *s);
-      Testing::TestStatus run(Group *g);
+      virtual Testing::TestStatus run(Suite *s);
+      virtual Testing::TestStatus run(Group *g);
      private:
       IO *m_io;
       PatternMgr *m_mgr;
@@ -50,4 +50,4 @@
 
 }
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Pattern.h b/CMSIS/DSP/Testing/FrameworkInclude/Pattern.h
index 117227c..bebebed 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Pattern.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Pattern.h
@@ -283,4 +283,4 @@
 
 }
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h b/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h
index c2c599e..423897e 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h
@@ -29,7 +29,7 @@
 #define _SEMIHOSTING_H_
 #include <string>
 #include <memory>
-
+#include <stdio.h>
 
 namespace Client
 {
@@ -49,43 +49,43 @@
             ,std::string outputRootPath
             ,std::string parameterRootPath);
       ~Semihosting();
-      void ReadIdentification();
-      void ReadTestIdentification();
-      Testing::nbParameters_t ReadNbParameters();
-      void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t);
-      void EndGroup();
-      void ImportPattern(Testing::PatternID_t);
-      void ReadPatternList();
-      void ReadOutputList();
-      void ReadParameterList(Testing::nbParameters_t);
-      Testing::nbSamples_t GetPatternSize(Testing::PatternID_t);
+      virtual void ReadIdentification();
+      virtual void ReadTestIdentification();
+      virtual Testing::nbParameters_t ReadNbParameters();
+      virtual void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t);
+      virtual void EndGroup();
+      virtual void ImportPattern(Testing::PatternID_t);
+      virtual void ReadPatternList();
+      virtual void ReadOutputList();
+      virtual void ReadParameterList(Testing::nbParameters_t);
+      virtual Testing::nbSamples_t GetPatternSize(Testing::PatternID_t);
       //Testing::nbSamples_t GetParameterSize(Testing::PatternID_t);
       
-      void ImportPattern_f64(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_f32(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_q31(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_q15(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_q7(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_u32(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_u16(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
-      void ImportPattern_u8(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_f64(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_f32(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_q31(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_q15(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_q7(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_u32(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_u16(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
+      virtual void ImportPattern_u8(Testing::PatternID_t,char*,Testing::nbSamples_t nb=0);
 
-      void DumpParams(std::vector<Testing::param_t>&);
-      Testing::param_t* ImportParams(Testing::PatternID_t,Testing::nbParameterEntries_t &,Testing::ParameterKind &);
+      virtual void DumpParams(std::vector<Testing::param_t>&);
+      virtual Testing::param_t* ImportParams(Testing::PatternID_t,Testing::nbParameterEntries_t &,Testing::ParameterKind &);
 
-      bool hasParam();
-      Testing::PatternID_t getParamID();
+      virtual bool hasParam();
+      virtual Testing::PatternID_t getParamID();
 
-      void DumpPattern_f64(Testing::outputID_t,Testing::nbSamples_t nb, float64_t*);
-      void DumpPattern_f32(Testing::outputID_t,Testing::nbSamples_t nb, float32_t*);
-      void DumpPattern_q31(Testing::outputID_t,Testing::nbSamples_t nb, q31_t*);
-      void DumpPattern_q15(Testing::outputID_t,Testing::nbSamples_t nb, q15_t*);
-      void DumpPattern_q7(Testing::outputID_t,Testing::nbSamples_t nb, q7_t*);
-      void DumpPattern_u32(Testing::outputID_t,Testing::nbSamples_t nb, uint32_t*);
-      void DumpPattern_u16(Testing::outputID_t,Testing::nbSamples_t nb, uint16_t*);
-      void DumpPattern_u8(Testing::outputID_t,Testing::nbSamples_t nb, uint8_t*);
+      virtual void DumpPattern_f64(Testing::outputID_t,Testing::nbSamples_t nb, float64_t*);
+      virtual void DumpPattern_f32(Testing::outputID_t,Testing::nbSamples_t nb, float32_t*);
+      virtual void DumpPattern_q31(Testing::outputID_t,Testing::nbSamples_t nb, q31_t*);
+      virtual void DumpPattern_q15(Testing::outputID_t,Testing::nbSamples_t nb, q15_t*);
+      virtual void DumpPattern_q7(Testing::outputID_t,Testing::nbSamples_t nb, q7_t*);
+      virtual void DumpPattern_u32(Testing::outputID_t,Testing::nbSamples_t nb, uint32_t*);
+      virtual void DumpPattern_u16(Testing::outputID_t,Testing::nbSamples_t nb, uint16_t*);
+      virtual void DumpPattern_u8(Testing::outputID_t,Testing::nbSamples_t nb, uint8_t*);
       
-      Testing::testID_t CurrentTestID();
+      virtual Testing::testID_t CurrentTestID();
      private:
       void DeleteParams();
       void recomputeTestDir();
@@ -137,4 +137,4 @@
   };
 }
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Test.h b/CMSIS/DSP/Testing/FrameworkInclude/Test.h
index e7ba412..8740f6c 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Test.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Test.h
@@ -567,4 +567,4 @@
 }
 
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Timing.h b/CMSIS/DSP/Testing/FrameworkInclude/Timing.h
index ac82bc6..f70de6e 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Timing.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Timing.h
@@ -90,4 +90,4 @@
 
 #endif 
 
-#endif
\ No newline at end of file
+#endif
diff --git a/CMSIS/DSP/Testing/FrameworkSource/ArrayMemory.cpp b/CMSIS/DSP/Testing/FrameworkSource/ArrayMemory.cpp
index af1df83..5d824a7 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/ArrayMemory.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/ArrayMemory.cpp
@@ -123,4 +123,4 @@
         this->memError=false;
 
     }
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Error.cpp b/CMSIS/DSP/Testing/FrameworkSource/Error.cpp
index 8514cde..196fc25 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Error.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Error.cpp
@@ -65,7 +65,7 @@
     float32_t rel,delta,average;
 
     delta=abs(a-b);
-    average = (abs(a) + abs(b)) / 2.0;
+    average = (abs(a) + abs(b)) / 2.0f;
     if (average !=0)
     {
         rel = delta / average;
@@ -377,4 +377,4 @@
    }
 }
 
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp b/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp
index 48accea..c2c6098 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp
@@ -340,9 +340,8 @@
            }
            else
            {
-              unsigned long kind,nbInputSamples,nbOutputSamples,dimensions,len,sample;
+              unsigned long kind,nbInputSamples,nbOutputSamples,dimensions,sample;
               Testing::param_t *p,*current;
-              size_t length;
 
               // Generator kind
               this->read32(&kind);
@@ -432,10 +431,8 @@
     Testing::param_t* FPGA::ImportParams(Testing::PatternID_t id,Testing::nbParameterEntries_t &nbEntries,Testing::ParameterKind &paramKind)
     {
         nbEntries=0;
-        unsigned long offset,i;
+        unsigned long offset;
 
-        Testing::param_t *p;
-        uint32_t val;
 
         Testing::nbSamples_t len;
         struct offsetOrGen gen = this->getParameterDesc(id);
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Generators.cpp b/CMSIS/DSP/Testing/FrameworkSource/Generators.cpp
index 6f86b26..39c835a 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Generators.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Generators.cpp
@@ -2,11 +2,10 @@
 
 void generate1(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
 {
-    Testing::param_t *pa,*paStart,va;
+    Testing::param_t *pa,va;
 
     pa = data;
     int nba = *pa++;
-    paStart = pa;
     nbEntries = 0;
     for(int ia=0; ia < nba ; ia ++)
     {
@@ -170,4 +169,4 @@
        }
     }
 
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp b/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp
index bf05ab4..0ef94bf 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp
@@ -32,6 +32,7 @@
 
 #include <string>
 #include <cstddef>
+#include <stdlib.h>
 #include "IORunner.h"
 #include "Error.h"
 #include "Timing.h"
@@ -325,4 +326,4 @@
       }
 
 
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Pattern.cpp b/CMSIS/DSP/Testing/FrameworkSource/Pattern.cpp
index 997b864..758701f 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Pattern.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Pattern.cpp
@@ -171,4 +171,4 @@
 }
 
 
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/PatternMgr.cpp b/CMSIS/DSP/Testing/FrameworkSource/PatternMgr.cpp
index 900ddde..d9ea1c2 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/PatternMgr.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/PatternMgr.cpp
@@ -238,4 +238,4 @@
     m_mem->FreeMemory();
 }
 
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp b/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp
index 862353f..5c5760c 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp
@@ -32,10 +32,12 @@
 
 #include <string>
 #include <cstddef>
-#include "Semihosting.h"
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include "Generators.h"
+#include "Semihosting.h"
+
 
 namespace Client
 {
@@ -175,9 +177,9 @@
            //   Samples
            else
            {
-              int kind,nbInputSamples,nbOutputSamples,dimensions,len,sample;
+              int kind,nbInputSamples,nbOutputSamples,dimensions,sample;
               Testing::param_t *p,*current;
-              size_t length;
+             
               // Generator kind. Not yet used since there is only one kind of generator
               fscanf(this->infile,"%d\n",&kind);
               // Input data in config file
@@ -1026,4 +1028,4 @@
     
 
 
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Test.cpp b/CMSIS/DSP/Testing/FrameworkSource/Test.cpp
index 4a4f5a2..41c80f8 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Test.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Test.cpp
@@ -47,9 +47,9 @@
 /* Client */
 
   Suite::Suite(Testing::testID_t id):
+     TestContainer(id),
      m_tests(std::vector<test>()),
-     m_testIds(std::vector<Testing::testID_t>()),
-     TestContainer(id)
+     m_testIds(std::vector<Testing::testID_t>())
   {
 
   }
@@ -74,8 +74,8 @@
 
 
   Group::Group(Testing::testID_t id):
-     m_groups(std::vector<TestContainer*>()),
-     TestContainer(id)
+     TestContainer(id),
+     m_groups(std::vector<TestContainer*>())
   {
 
   }
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Timing.cpp b/CMSIS/DSP/Testing/FrameworkSource/Timing.cpp
index abc73ec..a2fbc43 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Timing.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Timing.cpp
@@ -153,5 +153,4 @@
     return(value - startCycles);
 #endif
 
-    return(0);
-}
\ No newline at end of file
+}
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF32.h
index ae2a926..8489f74 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF32.h
@@ -4,8 +4,8 @@
     {
         public:
             BIQUADF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BIQUADF32_decl.h"
             Client::Pattern<float32_t> samples;
@@ -25,4 +25,4 @@
             const float32_t *pSrc;
             float32_t *pDst;     
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF64.h b/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF64.h
index 5f52b57..4b044d8 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF64.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BIQUADF64.h
@@ -4,8 +4,8 @@
     {
         public:
             BIQUADF64(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BIQUADF64_decl.h"
             Client::Pattern<float64_t> samples;
@@ -22,4 +22,4 @@
             const float64_t *pSrc;
             float64_t *pDst;     
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksF32.h
index db406d4..b67565f 100644
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksF32.h
@@ -4,8 +4,8 @@
     {
         public:
             BasicMathsBenchmarksF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BasicMathsBenchmarksF32_decl.h"
             Client::Pattern<float32_t> input1;
@@ -18,4 +18,4 @@
             float32_t *inp2;
             float32_t *outp;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ15.h
index 791a608..b054ed8 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             BasicMathsBenchmarksQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BasicMathsBenchmarksQ15_decl.h"
             Client::Pattern<q15_t> input1;
@@ -18,4 +18,4 @@
             q15_t *inp2;
             q15_t *outp;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ31.h
index 738f800..be3eec8 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             BasicMathsBenchmarksQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BasicMathsBenchmarksQ31_decl.h"
             Client::Pattern<q31_t> input1;
@@ -17,4 +17,4 @@
             q31_t *inp1;
             q31_t *inp2;
             q31_t *outp;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ7.h b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ7.h
index 59c0292..72207f7 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ7.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BasicMathsBenchmarksQ7.h
@@ -4,8 +4,8 @@
     {
         public:
             BasicMathsBenchmarksQ7(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BasicMathsBenchmarksQ7_decl.h"
             Client::Pattern<q7_t> input1;
@@ -17,4 +17,4 @@
             q7_t *inp1;
             q7_t *inp2;
             q7_t *outp;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BinaryF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/BinaryF32.h
index 83a767f..be0b18d 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BinaryF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BinaryF32.h
@@ -4,8 +4,8 @@
     {
         public:
             BinaryF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BinaryF32_decl.h"
             Client::Pattern<float32_t> input1;
@@ -20,4 +20,4 @@
             arm_matrix_instance_f32 in2;
             arm_matrix_instance_f32 out;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ15.h
index e39e767..a803253 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             BinaryQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BinaryQ15_decl.h"
             Client::Pattern<q15_t> input1;
@@ -23,4 +23,4 @@
 
             q15_t *pState;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ31.h
index a7c1501..e8fe7c8 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/BinaryQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             BinaryQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BinaryQ31_decl.h"
             Client::Pattern<q31_t> input1;
@@ -20,4 +20,4 @@
             arm_matrix_instance_q31 in2;
             arm_matrix_instance_q31 out;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksF32.h
index a408b0c..433b42a 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksF32.h
@@ -4,8 +4,8 @@
     {
         public:
             ComplexMathsBenchmarksF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "ComplexMathsBenchmarksF32_decl.h"
             Client::Pattern<float32_t> input1;
@@ -21,4 +21,4 @@
             const float32_t *inp3;
             float32_t *outp;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ15.h
index 235cae0..00700d0 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             ComplexMathsBenchmarksQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "ComplexMathsBenchmarksQ15_decl.h"
             Client::Pattern<q15_t> input1;
@@ -21,4 +21,4 @@
             const q15_t *inp3;
             q15_t *outp;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ31.h
index ae97226..b44f389 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/ComplexMathsBenchmarksQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             ComplexMathsBenchmarksQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "ComplexMathsBenchmarksQ31_decl.h"
             Client::Pattern<q31_t> input1;
@@ -21,4 +21,4 @@
             const q31_t *inp3;
             q31_t *outp;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/ControllerF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/ControllerF32.h
index 8d8f5fa..8adcbd2 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/ControllerF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/ControllerF32.h
@@ -4,8 +4,8 @@
     {
         public:
             ControllerF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "ControllerF32_decl.h"
             Client::Pattern<float32_t> samples;
@@ -19,4 +19,4 @@
             float32_t *pDst;
             
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ15.h
index 8b17ff3..6f7537e 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             ControllerQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "ControllerQ15_decl.h"
             Client::Pattern<q15_t> samples;
@@ -19,4 +19,4 @@
             q15_t *pDst;
             
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ31.h
index fd47522..f4a55cb 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/ControllerQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             ControllerQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "ControllerQ31_decl.h"
             Client::Pattern<q31_t> samples;
@@ -19,4 +19,4 @@
             q31_t *pDst;
             
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/DECIMF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/DECIMF32.h
index 0fae16f..acd0d0b 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/DECIMF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/DECIMF32.h
@@ -4,8 +4,8 @@
     {
         public:
             DECIMF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "DECIMF32_decl.h"
             Client::Pattern<float32_t> coefs;
@@ -25,4 +25,4 @@
             const float32_t *pSrc;
             float32_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ15.h
index 8d05f0b..c4697ac 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             DECIMQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "DECIMQ15_decl.h"
             Client::Pattern<q15_t> coefs;
@@ -25,4 +25,4 @@
             const q15_t *pSrc;
             q15_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ31.h
index c4f807e..f122a30 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/DECIMQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             DECIMQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "DECIMQ31_decl.h"
             Client::Pattern<q31_t> coefs;
@@ -25,4 +25,4 @@
             const q31_t *pSrc;
             q31_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FIRF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/FIRF32.h
index 2e10f5d..9be0955 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FIRF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FIRF32.h
@@ -4,8 +4,8 @@
     {
         public:
             FIRF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FIRF32_decl.h"
             Client::Pattern<float32_t> coefs;
@@ -29,4 +29,4 @@
             const float32_t *pRef;
             float32_t *pErr;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ15.h
index 4e6f8d1..f5b0ad5 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             FIRQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FIRQ15_decl.h"
             Client::Pattern<q15_t> coefs;
@@ -29,4 +29,4 @@
             const q15_t *pRef;
             q15_t *pErr;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ31.h
index 7da188e..943c7f5 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FIRQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             FIRQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FIRQ31_decl.h"
             Client::Pattern<q31_t> coefs;
@@ -28,4 +28,4 @@
             q31_t *pDst;
             const q31_t *pRef;
             q31_t *pErr;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FastMathF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/FastMathF32.h
index 8a237c9..d1064fd 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FastMathF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FastMathF32.h
@@ -4,8 +4,8 @@
     {
         public:
             FastMathF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FastMathF32_decl.h"
             Client::Pattern<float32_t> samples;
@@ -18,4 +18,4 @@
             float32_t *pDst;
             
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ15.h
index 649f160..631fba4 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             FastMathQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FastMathQ15_decl.h"
             Client::Pattern<q15_t> samples;
@@ -18,4 +18,4 @@
             q15_t *pDst;
             
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ31.h
index 0237038..854ae74 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FastMathQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             FastMathQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FastMathQ31_decl.h"
             Client::Pattern<q31_t> samples;
@@ -18,4 +18,4 @@
             q31_t *pDst;
             
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/FullyConnectedBench.h b/CMSIS/DSP/Testing/Include/Benchmarks/FullyConnectedBench.h
index 25f3621..9184700 100644
--- a/CMSIS/DSP/Testing/Include/Benchmarks/FullyConnectedBench.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/FullyConnectedBench.h
@@ -4,8 +4,8 @@
     {
         public:
             FullyConnectedBench(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FullyConnectedBench_decl.h"
             
@@ -24,4 +24,4 @@
             q7_t *outp;
             q7_t *refp;
             q15_t *tempp;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/MISCF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/MISCF32.h
index 558cb5a..b2a5b39 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/MISCF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/MISCF32.h
@@ -4,8 +4,8 @@
     {
         public:
             MISCF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "MISCF32_decl.h"
             Client::Pattern<float32_t> input1;
@@ -19,4 +19,4 @@
             const float32_t *inp2;
             float32_t *outp;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ15.h
index 3e9d57a..0cb92c7 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             MISCQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "MISCQ15_decl.h"
             Client::Pattern<q15_t> input1;
@@ -18,4 +18,4 @@
             const q15_t *inp1;
             const q15_t *inp2;
             q15_t *outp;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ31.h
index 1fc7fb0..ed595cb 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             MISCQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "MISCQ31_decl.h"
             Client::Pattern<q31_t> input1;
@@ -18,4 +18,4 @@
             const q31_t *inp1;
             const q31_t *inp2;
             q31_t *outp;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ7.h b/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ7.h
index b0cad56..3c9060d 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ7.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/MISCQ7.h
@@ -4,8 +4,8 @@
     {
         public:
             MISCQ7(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "MISCQ7_decl.h"
             Client::Pattern<q7_t> input1;
@@ -18,4 +18,4 @@
             const q7_t *inp1;
             const q7_t *inp2;
             q7_t *outp;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/PoolingBench.h b/CMSIS/DSP/Testing/Include/Benchmarks/PoolingBench.h
index 48fb392..ab15da0 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/PoolingBench.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/PoolingBench.h
@@ -4,8 +4,8 @@
     {
         public:
             PoolingBench(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "PoolingBench_decl.h"
             
@@ -38,4 +38,4 @@
             q7_t *outp;
             q15_t *tempp;
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/SupportBarF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/SupportBarF32.h
index db54d7a..370a0df 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/SupportBarF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/SupportBarF32.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportBarF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportBarF32_decl.h"
             Client::Pattern<float32_t> input;
@@ -22,4 +22,4 @@
             float32_t *outp;
 
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/SupportF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/SupportF32.h
index d8fec24..14517db 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/SupportF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/SupportF32.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportF32_decl.h"
             Client::Pattern<float32_t> samples;
@@ -27,4 +27,4 @@
 
             float32_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ15.h
index 32248fb..be82fd2 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportQ15_decl.h"
             Client::Pattern<q15_t> samples;
@@ -24,4 +24,4 @@
 
             q15_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ31.h
index 42c94f1..b72513a 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportQ31_decl.h"
             Client::Pattern<q31_t> samples;
@@ -22,4 +22,4 @@
             q7_t *pSrcQ7;
             q31_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ7.h b/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ7.h
index 880c2e0..c0f1156 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ7.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/SupportQ7.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportQ7(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportQ7_decl.h"
             Client::Pattern<q7_t> samples;
@@ -25,4 +25,4 @@
 
             q7_t *pDst;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h
index ce2906a..d3478c9 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/TransformF32.h
@@ -4,8 +4,8 @@
     {
         public:
             TransformF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "TransformF32_decl.h"
             Client::Pattern<float32_t> samples;
@@ -29,4 +29,4 @@
             arm_cfft_radix4_instance_f32 cfftRadix4Instance;
             arm_cfft_radix2_instance_f32 cfftRadix2Instance;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ15.h
index cff7ff9..9736a70 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             TransformQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "TransformQ15_decl.h"
             Client::Pattern<q15_t> samples;
@@ -28,4 +28,4 @@
             arm_cfft_radix4_instance_q15 cfftRadix4Instance;
             arm_cfft_radix2_instance_q15 cfftRadix2Instance;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ31.h
index 7109485..2abfc1d 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/TransformQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             TransformQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "TransformQ31_decl.h"
             Client::Pattern<q31_t> samples;
@@ -28,4 +28,4 @@
             arm_cfft_radix4_instance_q31 cfftRadix4Instance;
             arm_cfft_radix2_instance_q31 cfftRadix2Instance;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF32.h b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF32.h
index 3bfec3f..976a666 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF32.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF32.h
@@ -4,8 +4,8 @@
     {
         public:
             UnaryF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "UnaryF32_decl.h"
             Client::Pattern<float32_t> input1;
@@ -16,4 +16,4 @@
 
             arm_matrix_instance_f32 in1;
             arm_matrix_instance_f32 out;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF64.h b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF64.h
index 432a199..a047a66 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF64.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryF64.h
@@ -4,8 +4,8 @@
     {
         public:
             UnaryF64(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "UnaryF64_decl.h"
             Client::Pattern<float64_t> input1;
@@ -16,4 +16,4 @@
 
             arm_matrix_instance_f64 in1;
             arm_matrix_instance_f64 out;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ15.h b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ15.h
index 072925e..9e7a8ba 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ15.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             UnaryQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "UnaryQ15_decl.h"
             Client::Pattern<q15_t> input1;
@@ -16,4 +16,4 @@
 
             arm_matrix_instance_q15 in1;
             arm_matrix_instance_q15 out;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ31.h b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ31.h
index 5de7178..89683b4 100755
--- a/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ31.h
+++ b/CMSIS/DSP/Testing/Include/Benchmarks/UnaryQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             UnaryQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "UnaryQ31_decl.h"
             Client::Pattern<q31_t> input1;
@@ -16,4 +16,4 @@
 
             arm_matrix_instance_q31 in1;
             arm_matrix_instance_q31 out;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/BasicTestsF32.h b/CMSIS/DSP/Testing/Include/Tests/BasicTestsF32.h
index a277c99..944a5c3 100644
--- a/CMSIS/DSP/Testing/Include/Tests/BasicTestsF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/BasicTestsF32.h
@@ -4,8 +4,8 @@
     {
         public:
             BasicTestsF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BasicTestsF32_decl.h"
             
@@ -14,4 +14,4 @@
             Client::LocalPattern<float32_t> output;
             // Reference patterns are not loaded when we are in dump mode
             Client::RefPattern<float32_t> ref;
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/BayesF32.h b/CMSIS/DSP/Testing/Include/Tests/BayesF32.h
index 0aa75c4..892538f 100755
--- a/CMSIS/DSP/Testing/Include/Tests/BayesF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/BayesF32.h
@@ -4,8 +4,8 @@
     {
         public:
             BayesF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "BayesF32_decl.h"
             
@@ -28,4 +28,4 @@
 
             arm_gaussian_naive_bayes_instance_f32 bayes;
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/DistanceTestsF32.h b/CMSIS/DSP/Testing/Include/Tests/DistanceTestsF32.h
index b9cf4e1..fdddaed 100755
--- a/CMSIS/DSP/Testing/Include/Tests/DistanceTestsF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/DistanceTestsF32.h
@@ -4,8 +4,8 @@
     {
         public:
             DistanceTestsF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "DistanceTestsF32_decl.h"
             
@@ -24,4 +24,4 @@
             int nbPatterns;
 
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/DistanceTestsU32.h b/CMSIS/DSP/Testing/Include/Tests/DistanceTestsU32.h
index c0e92ab..e14f16e 100755
--- a/CMSIS/DSP/Testing/Include/Tests/DistanceTestsU32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/DistanceTestsU32.h
@@ -4,8 +4,8 @@
     {
         public:
             DistanceTestsU32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "DistanceTestsU32_decl.h"
             
@@ -22,4 +22,4 @@
             int bitVecDim;
             int nbPatterns;
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/FullyConnected.h b/CMSIS/DSP/Testing/Include/Tests/FullyConnected.h
index 8e4ddff..8496cb8 100644
--- a/CMSIS/DSP/Testing/Include/Tests/FullyConnected.h
+++ b/CMSIS/DSP/Testing/Include/Tests/FullyConnected.h
@@ -4,8 +4,8 @@
     {
         public:
             FullyConnected(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "FullyConnected_decl.h"
 
@@ -33,4 +33,4 @@
 
 
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/NNSupport.h b/CMSIS/DSP/Testing/Include/Tests/NNSupport.h
index 6f90b6b..648a34e 100755
--- a/CMSIS/DSP/Testing/Include/Tests/NNSupport.h
+++ b/CMSIS/DSP/Testing/Include/Tests/NNSupport.h
@@ -4,11 +4,11 @@
     {
         public:
             NNSupport(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "NNSupport_decl.h"
             
            
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/Pooling.h b/CMSIS/DSP/Testing/Include/Tests/Pooling.h
index c189b8a..b9d3a26 100755
--- a/CMSIS/DSP/Testing/Include/Tests/Pooling.h
+++ b/CMSIS/DSP/Testing/Include/Tests/Pooling.h
@@ -4,8 +4,8 @@
     {
         public:
             Pooling(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "Pooling_decl.h"
             
@@ -32,4 +32,4 @@
             int ACT_MIN;
             int ACT_MAX;
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/SVMF32.h b/CMSIS/DSP/Testing/Include/Tests/SVMF32.h
index 2912495..6bb96e1 100755
--- a/CMSIS/DSP/Testing/Include/Tests/SVMF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/SVMF32.h
@@ -4,8 +4,8 @@
     {
         public:
             SVMF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SVMF32_decl.h"
             Client::Pattern<float32_t> samples;
@@ -21,7 +21,7 @@
             arm_svm_sigmoid_instance_f32 sigmoid;
 
             int vecDim,nbSupportVectors,nbTestSamples,degree;
-            int classes[2]={0,0};
+            int32_t classes[2]={0,0};
             float32_t intercept;
             const float32_t *supportVectors;
             const float32_t *dualCoefs;
@@ -35,4 +35,4 @@
             } kind;
 
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/Softmax.h b/CMSIS/DSP/Testing/Include/Tests/Softmax.h
index 401e940..2e15357 100755
--- a/CMSIS/DSP/Testing/Include/Tests/Softmax.h
+++ b/CMSIS/DSP/Testing/Include/Tests/Softmax.h
@@ -4,8 +4,8 @@
     {
         public:
             Softmax(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "Softmax_decl.h"
             
@@ -22,4 +22,4 @@
             int vecDim;
            
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/StatsTestsF32.h b/CMSIS/DSP/Testing/Include/Tests/StatsTestsF32.h
index ad73192..c35bb24 100755
--- a/CMSIS/DSP/Testing/Include/Tests/StatsTestsF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/StatsTestsF32.h
@@ -4,8 +4,8 @@
     {
         public:
             StatsTestsF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "StatsTestsF32_decl.h"
             
@@ -24,4 +24,4 @@
 
            
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/SupportBarTestsF32.h b/CMSIS/DSP/Testing/Include/Tests/SupportBarTestsF32.h
index d137f15..8532276 100755
--- a/CMSIS/DSP/Testing/Include/Tests/SupportBarTestsF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/SupportBarTestsF32.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportBarTestsF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportBarTestsF32_decl.h"
             Client::Pattern<float32_t> input;
@@ -19,4 +19,4 @@
             int nbVecs;
             int vecDim;
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/SupportTestsF32.h b/CMSIS/DSP/Testing/Include/Tests/SupportTestsF32.h
index f82ea91..a3ecc28 100755
--- a/CMSIS/DSP/Testing/Include/Tests/SupportTestsF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/SupportTestsF32.h
@@ -4,8 +4,8 @@
     {
         public:
             SupportTestsF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "SupportTestsF32_decl.h"
             
@@ -19,4 +19,4 @@
 
             int nbSamples;
 
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/TransformF32.h b/CMSIS/DSP/Testing/Include/Tests/TransformF32.h
index e3fa47f..7827189 100755
--- a/CMSIS/DSP/Testing/Include/Tests/TransformF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/TransformF32.h
@@ -4,8 +4,8 @@
     {
         public:
             TransformF32(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "TransformF32_decl.h"
             
@@ -18,4 +18,4 @@
 
             int ifft;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/TransformQ15.h b/CMSIS/DSP/Testing/Include/Tests/TransformQ15.h
index 99c7983..ac65c7c 100755
--- a/CMSIS/DSP/Testing/Include/Tests/TransformQ15.h
+++ b/CMSIS/DSP/Testing/Include/Tests/TransformQ15.h
@@ -4,8 +4,8 @@
     {
         public:
             TransformQ15(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "TransformQ15_decl.h"
             
@@ -28,4 +28,4 @@
             */
             int scaling;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/TransformQ31.h b/CMSIS/DSP/Testing/Include/Tests/TransformQ31.h
index 7305058..9a44f20 100755
--- a/CMSIS/DSP/Testing/Include/Tests/TransformQ31.h
+++ b/CMSIS/DSP/Testing/Include/Tests/TransformQ31.h
@@ -4,8 +4,8 @@
     {
         public:
             TransformQ31(Testing::testID_t id);
-            void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
-            void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
         private:
             #include "TransformQ31_decl.h"
             
@@ -28,4 +28,4 @@
             */
             int scaling;
             
-    };
\ No newline at end of file
+    };
diff --git a/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp b/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp
index 1547a40..6f817b0 100755
--- a/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp
+++ b/CMSIS/DSP/Testing/Source/Benchmarks/TransformF32.cpp
@@ -7,31 +7,22 @@
 switch (fftLen) {
      case 16:
        return(&arm_cfft_sR_f32_len16);
-       break;
      case 32:
        return(&arm_cfft_sR_f32_len32);
-       break;
      case 64:
        return(&arm_cfft_sR_f32_len64);
-       break;
      case 128:
        return(&arm_cfft_sR_f32_len128);
-       break;
      case 256:
        return(&arm_cfft_sR_f32_len256);
-       break;
      case 512:
        return(&arm_cfft_sR_f32_len512);
-       break;
      case 1024:
        return(&arm_cfft_sR_f32_len1024);
-       break;
      case 2048:
        return(&arm_cfft_sR_f32_len2048);
-       break;
      case 4096:
        return(&arm_cfft_sR_f32_len4096);
-       break;
    }
    return(NULL);
 }
diff --git a/CMSIS/DSP/Testing/Source/Tests/FullyConnected.cpp b/CMSIS/DSP/Testing/Source/Tests/FullyConnected.cpp
index 380d204..70593c4 100644
--- a/CMSIS/DSP/Testing/Source/Tests/FullyConnected.cpp
+++ b/CMSIS/DSP/Testing/Source/Tests/FullyConnected.cpp
@@ -2,6 +2,7 @@
 #include "Error.h"
 #include "arm_nnfunctions.h"
 #include "Test.h"
+#include "stdio.h"
 
 #include <cstdio>
 
diff --git a/CMSIS/DSP/Testing/Source/Tests/StatsTestsF32.cpp b/CMSIS/DSP/Testing/Source/Tests/StatsTestsF32.cpp
index 0b1c7d2..d848be7 100755
--- a/CMSIS/DSP/Testing/Source/Tests/StatsTestsF32.cpp
+++ b/CMSIS/DSP/Testing/Source/Tests/StatsTestsF32.cpp
@@ -12,7 +12,6 @@
 
       float32_t *refp         = ref.ptr();
       float32_t *outp         = output.ptr();
-      float32_t *result;
 
       for(int i=0;i < this->nbPatterns; i++)
       {
@@ -30,7 +29,6 @@
 
       float32_t *refp         = ref.ptr();
       float32_t *outp         = output.ptr();
-      float32_t *result;
 
       for(int i=0;i < this->nbPatterns; i++)
       {
@@ -50,7 +48,6 @@
 
       float32_t *refp         = ref.ptr();
       float32_t *outp         = output.ptr();
-      float32_t *result;
 
       for(int i=0;i < this->nbPatterns; i++)
       {
@@ -71,7 +68,6 @@
       float32_t *refp         = ref.ptr();
       float32_t *outp         = output.ptr();
       float32_t *tmpp         = tmp.ptr();
-      float32_t *result;
 
       for(int i=0;i < this->nbPatterns; i++)
       {
diff --git a/CMSIS/DSP/Testing/TestScripts/CodeGen.py b/CMSIS/DSP/Testing/TestScripts/CodeGen.py
index 57c9814..487dc12 100644
--- a/CMSIS/DSP/Testing/TestScripts/CodeGen.py
+++ b/CMSIS/DSP/Testing/TestScripts/CodeGen.py
@@ -12,7 +12,7 @@
         %s
      }
     private:
-        %s;
+        %s
 };
 """
 
diff --git a/CMSIS/DSP/Testing/main.cpp b/CMSIS/DSP/Testing/main.cpp
index ece7321..d9de3636 100644
--- a/CMSIS/DSP/Testing/main.cpp
+++ b/CMSIS/DSP/Testing/main.cpp
@@ -3,4 +3,4 @@
 int main()
 {
     return(testmain());
-}
\ No newline at end of file
+}