Fix constructor order in unit tests (sanitizer)

The WithParamTest constructor needs to be called first, as the
EncoderTest constructor is called with 'GET_PARAM'.

BUG=aomedia:580

Change-Id: I17f3c02c0a0eec103fb3505301b5eb6dfdef851c
diff --git a/test/active_map_refresh_test.cc b/test/active_map_refresh_test.cc
index 7ee86e7..586b909 100644
--- a/test/active_map_refresh_test.cc
+++ b/test/active_map_refresh_test.cc
@@ -59,8 +59,8 @@
 const int kAqModeCyclicRefresh = 3;
 
 class ActiveMapRefreshTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   ActiveMapRefreshTest() : EncoderTest(GET_PARAM(0)) {}
   virtual ~ActiveMapRefreshTest() {}
diff --git a/test/active_map_test.cc b/test/active_map_test.cc
index a926b0f..e38aa17 100644
--- a/test/active_map_test.cc
+++ b/test/active_map_test.cc
@@ -20,8 +20,8 @@
 namespace {
 
 class ActiveMapTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   static const int kWidth = 208;
   static const int kHeight = 144;
diff --git a/test/altref_test.cc b/test/altref_test.cc
index 28b4001..dabb147 100644
--- a/test/altref_test.cc
+++ b/test/altref_test.cc
@@ -17,8 +17,8 @@
 namespace {
 
 class AltRefForcedKeyTestLarge
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   AltRefForcedKeyTestLarge()
       : EncoderTest(GET_PARAM(0)), encoding_mode_(GET_PARAM(1)),
diff --git a/test/ans_codec_test.cc b/test/ans_codec_test.cc
index a1b25fb..59d352b 100644
--- a/test/ans_codec_test.cc
+++ b/test/ans_codec_test.cc
@@ -28,8 +28,8 @@
 const char kTestVideoName[] = "niklas_1280_720_30.y4m";
 const int kTestVideoFrames = 10;
 
-class AnsCodecTest : public ::libaom_test::EncoderTest,
-                     public ::libaom_test::CodecTestWithParam<int> {
+class AnsCodecTest : public ::libaom_test::CodecTestWithParam<int>,
+                     public ::libaom_test::EncoderTest {
  protected:
   AnsCodecTest()
       : EncoderTest(GET_PARAM(0)), ans_window_size_log2_(GET_PARAM(1)) {}
diff --git a/test/aq_segment_test.cc b/test/aq_segment_test.cc
index b01f140..026b002 100644
--- a/test/aq_segment_test.cc
+++ b/test/aq_segment_test.cc
@@ -19,8 +19,8 @@
 namespace {
 
 class AqSegmentTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   AqSegmentTest() : EncoderTest(GET_PARAM(0)) {}
   virtual ~AqSegmentTest() {}
diff --git a/test/arf_freq_test.cc b/test/arf_freq_test.cc
index bef58b3..1900650 100644
--- a/test/arf_freq_test.cc
+++ b/test/arf_freq_test.cc
@@ -76,9 +76,9 @@
 }
 
 class ArfFreqTestLarge
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith3Params<TestVideoParam,
-                                                 TestEncodeParam, int> {
+    : public ::libaom_test::CodecTestWith3Params<TestVideoParam,
+                                                 TestEncodeParam, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   ArfFreqTestLarge()
       : EncoderTest(GET_PARAM(0)), test_video_param_(GET_PARAM(1)),
diff --git a/test/av1_ext_tile_test.cc b/test/av1_ext_tile_test.cc
index f964479..c3772a9 100644
--- a/test/av1_ext_tile_test.cc
+++ b/test/av1_ext_tile_test.cc
@@ -33,8 +33,8 @@
 // This test tests "tile_encoding_mode = TILE_VR" case. The TILE_NORMAL case is
 // tested by the tile_independence test.
 class AV1ExtTileTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   AV1ExtTileTest()
       : EncoderTest(GET_PARAM(0)), encoding_mode_(GET_PARAM(1)),
diff --git a/test/borders_test.cc b/test/borders_test.cc
index d4e8dea..ee77170 100644
--- a/test/borders_test.cc
+++ b/test/borders_test.cc
@@ -20,8 +20,8 @@
 namespace {
 
 class BordersTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   BordersTest() : EncoderTest(GET_PARAM(0)) {}
   virtual ~BordersTest() {}
diff --git a/test/cpu_speed_test.cc b/test/cpu_speed_test.cc
index ad0f2a8..bde0047 100644
--- a/test/cpu_speed_test.cc
+++ b/test/cpu_speed_test.cc
@@ -21,8 +21,8 @@
 const int kMaxPSNR = 100;
 
 class CpuSpeedTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   CpuSpeedTest()
       : EncoderTest(GET_PARAM(0)), encoding_mode_(GET_PARAM(1)),
diff --git a/test/datarate_test.cc b/test/datarate_test.cc
index a4a6826..6a1b4e1 100644
--- a/test/datarate_test.cc
+++ b/test/datarate_test.cc
@@ -21,8 +21,8 @@
 namespace {
 
 class DatarateTestLarge
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  public:
   DatarateTestLarge() : EncoderTest(GET_PARAM(0)) {}
 
diff --git a/test/decode_perf_test.cc b/test/decode_perf_test.cc
index ede4f88..26473ef 100644
--- a/test/decode_perf_test.cc
+++ b/test/decode_perf_test.cc
@@ -93,8 +93,8 @@
 //                        ::testing::ValuesIn(kAV1DecodePerfVectors));
 
 class AV1NewEncodeDecodePerfTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   AV1NewEncodeDecodePerfTest()
       : EncoderTest(GET_PARAM(0)), encoding_mode_(GET_PARAM(1)), speed_(0),
diff --git a/test/encode_perf_test.cc b/test/encode_perf_test.cc
index e2a4f2b..8125e6b 100644
--- a/test/encode_perf_test.cc
+++ b/test/encode_perf_test.cc
@@ -56,8 +56,8 @@
 #define NELEMENTS(x) (sizeof((x)) / sizeof((x)[0]))
 
 class AV1EncodePerfTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   AV1EncodePerfTest()
       : EncoderTest(GET_PARAM(0)), min_psnr_(kMaxPsnr), nframes_(0),
diff --git a/test/encoder_parms_get_to_decoder.cc b/test/encoder_parms_get_to_decoder.cc
index ca6a24e..01aea37 100644
--- a/test/encoder_parms_get_to_decoder.cc
+++ b/test/encoder_parms_get_to_decoder.cc
@@ -54,9 +54,10 @@
 };
 
 class AvxEncoderParmsGetToDecoder
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<EncodeParameters,
-                                                 EncodePerfTestVideo> {
+    : public ::libaom_test::CodecTestWith2Params<EncodeParameters,
+                                                 EncodePerfTestVideo>,
+      public ::libaom_test::EncoderTest,
+{
  protected:
   AvxEncoderParmsGetToDecoder()
       : EncoderTest(GET_PARAM(0)), encode_parms(GET_PARAM(1)) {}
diff --git a/test/end_to_end_test.cc b/test/end_to_end_test.cc
index 0c8cbe2..357fd10 100644
--- a/test/end_to_end_test.cc
+++ b/test/end_to_end_test.cc
@@ -86,9 +86,9 @@
 }
 
 class EndToEndTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith3Params<libaom_test::TestMode,
-                                                 TestVideoParam, int> {
+    : public ::libaom_test::CodecTestWith3Params<libaom_test::TestMode,
+                                                 TestVideoParam, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   EndToEndTest()
       : EncoderTest(GET_PARAM(0)), test_video_param_(GET_PARAM(2)),
diff --git a/test/error_resilience_test.cc b/test/error_resilience_test.cc
index b1d93a0..e9abdde 100644
--- a/test/error_resilience_test.cc
+++ b/test/error_resilience_test.cc
@@ -21,8 +21,8 @@
 const int kMaxDroppableFrames = 12;
 
 class ErrorResilienceTestLarge
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   ErrorResilienceTestLarge()
       : EncoderTest(GET_PARAM(0)), psnr_(0.0), nframes_(0), mismatch_psnr_(0.0),
diff --git a/test/ethread_test.cc b/test/ethread_test.cc
index 5b519f8..ebdefef 100644
--- a/test/ethread_test.cc
+++ b/test/ethread_test.cc
@@ -20,8 +20,8 @@
 
 namespace {
 class AVxEncoderThreadTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   AVxEncoderThreadTest()
       : EncoderTest(GET_PARAM(0)), encoder_initialized_(false),
diff --git a/test/frame_size_tests.cc b/test/frame_size_tests.cc
index d2e762f..442f252 100644
--- a/test/frame_size_tests.cc
+++ b/test/frame_size_tests.cc
@@ -15,8 +15,8 @@
 
 namespace {
 
-class AV1FrameSizeTests : public ::libaom_test::EncoderTest,
-                          public ::testing::Test {
+class AV1FrameSizeTests : public ::testing::Test,
+                          public ::libaom_test::EncoderTest {
  protected:
   AV1FrameSizeTests()
       : EncoderTest(&::libaom_test::kAV1), expected_res_(AOM_CODEC_OK) {}
diff --git a/test/level_test.cc b/test/level_test.cc
index 1049d49..12f3918 100644
--- a/test/level_test.cc
+++ b/test/level_test.cc
@@ -17,8 +17,8 @@
 
 namespace {
 class LevelTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   LevelTest()
       : EncoderTest(GET_PARAM(0)), encoding_mode_(GET_PARAM(1)),
diff --git a/test/lossless_test.cc b/test/lossless_test.cc
index 5c5b32d..f4978fe 100644
--- a/test/lossless_test.cc
+++ b/test/lossless_test.cc
@@ -23,8 +23,8 @@
 const int kMaxPsnr = 100;
 
 class LosslessTestLarge
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   LosslessTestLarge()
       : EncoderTest(GET_PARAM(0)), psnr_(kMaxPsnr), nframes_(0),
diff --git a/test/motion_vector_test.cc b/test/motion_vector_test.cc
index fa47494..fe20fd1 100644
--- a/test/motion_vector_test.cc
+++ b/test/motion_vector_test.cc
@@ -32,9 +32,9 @@
 const int kMVTestModes[] = { MAX_EXTREME_MV, MIN_EXTREME_MV };
 
 class MotionVectorTestLarge
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith3Params<libaom_test::TestMode, int,
-                                                 int> {
+    : public ::libaom_test::CodecTestWith3Params<libaom_test::TestMode, int,
+                                                 int>,
+      public ::libaom_test::EncoderTest {
  protected:
   MotionVectorTestLarge()
       : EncoderTest(GET_PARAM(0)), encoding_mode_(GET_PARAM(1)),
diff --git a/test/realtime_test.cc b/test/realtime_test.cc
index ffe4a31..11d2a32 100644
--- a/test/realtime_test.cc
+++ b/test/realtime_test.cc
@@ -22,8 +22,8 @@
 const int kFramesToEncode = 2;
 
 class RealtimeTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   RealtimeTest() : EncoderTest(GET_PARAM(0)), frame_packets_(0) {}
   virtual ~RealtimeTest() {}
diff --git a/test/resize_test.cc b/test/resize_test.cc
index 994b301..1ae3031 100644
--- a/test/resize_test.cc
+++ b/test/resize_test.cc
@@ -265,8 +265,8 @@
 };
 
 class ResizeTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<libaom_test::TestMode> {
+    : public ::libaom_test::CodecTestWithParam<libaom_test::TestMode>,
+      public ::libaom_test::EncoderTest {
  protected:
   ResizeTest() : EncoderTest(GET_PARAM(0)) {}
 
@@ -427,8 +427,8 @@
 }
 
 class ResizeRealtimeTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int> {
+    : public ::libaom_test::CodecTestWith2Params<libaom_test::TestMode, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   ResizeRealtimeTest() : EncoderTest(GET_PARAM(0)) {}
   virtual ~ResizeRealtimeTest() {}
diff --git a/test/sad_test.cc b/test/sad_test.cc
index 7564a67..9ac58e6 100644
--- a/test/sad_test.cc
+++ b/test/sad_test.cc
@@ -231,8 +231,8 @@
   ACMRandom rnd_;
 };
 
-class SADx4Test : public SADTestBase,
-                  public ::testing::WithParamInterface<SadMxNx4Param> {
+class SADx4Test : public ::testing::WithParamInterface<SadMxNx4Param>,
+                  public SADTestBase {
  public:
   SADx4Test() : SADTestBase(GET_PARAM(0), GET_PARAM(1), GET_PARAM(3)) {}
 
@@ -257,8 +257,8 @@
   }
 };
 
-class SADTest : public SADTestBase,
-                public ::testing::WithParamInterface<SadMxNParam> {
+class SADTest : public ::testing::WithParamInterface<SadMxNParam>,
+                public SADTestBase {
  public:
   SADTest() : SADTestBase(GET_PARAM(0), GET_PARAM(1), GET_PARAM(3)) {}
 
@@ -288,8 +288,8 @@
   }
 };
 
-class SADavgTest : public SADTestBase,
-                   public ::testing::WithParamInterface<SadMxNAvgParam> {
+class SADavgTest : public ::testing::WithParamInterface<SadMxNAvgParam>,
+                   public SADTestBase {
  public:
   SADavgTest() : SADTestBase(GET_PARAM(0), GET_PARAM(1), GET_PARAM(3)) {}
 
diff --git a/test/superframe_test.cc b/test/superframe_test.cc
index a28d35d..58a8ec9 100644
--- a/test/superframe_test.cc
+++ b/test/superframe_test.cc
@@ -25,8 +25,8 @@
 typedef std::tr1::tuple<libaom_test::TestMode, int, int> SuperframeTestParam;
 
 class SuperframeTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWithParam<SuperframeTestParam> {
+    : public ::libaom_test::CodecTestWithParam<SuperframeTestParam>,
+      public ::libaom_test::EncoderTest {
  protected:
   SuperframeTest()
       : EncoderTest(GET_PARAM(0)), modified_buf_(NULL), last_sf_pts_(0) {}
diff --git a/test/tile_independence_test.cc b/test/tile_independence_test.cc
index a29051f..d28cb1f 100644
--- a/test/tile_independence_test.cc
+++ b/test/tile_independence_test.cc
@@ -22,8 +22,8 @@
 
 namespace {
 class TileIndependenceTest
-    : public ::libaom_test::EncoderTest,
-      public ::libaom_test::CodecTestWith2Params<int, int> {
+    : public ::libaom_test::CodecTestWith2Params<int, int>,
+      public ::libaom_test::EncoderTest {
  protected:
   TileIndependenceTest()
       : EncoderTest(GET_PARAM(0)), md5_fw_order_(), md5_inv_order_(),