1/*
2 *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/video_engine/test/auto_test/interface/vie_autotest_android.h"
12
13#include <android/log.h>
14#include <stdio.h>
15
16#include "webrtc/video_engine/test/auto_test/interface/vie_autotest.h"
17#include "webrtc/video_engine/test/auto_test/interface/vie_autotest_defines.h"
18
19int ViEAutoTestAndroid::RunAutotest(int testSelection, int subTestSelection,
20                                    void* window1, void* window2,
21                                    JavaVM* javaVM, void* env, void* context) {
22  ViEAutoTest vieAutoTest(window1, window2);
23  ViETest::Log("RunAutoTest(%d, %d)", testSelection, subTestSelection);
24  webrtc::VideoEngine::SetAndroidObjects(javaVM, static_cast<jobject>(context));
25#ifndef WEBRTC_ANDROID_OPENSLES
26  // voice engine calls into ADM directly
27  webrtc::VoiceEngine::SetAndroidObjects(javaVM, env, context);
28#endif
29
30  if (subTestSelection == 0) {
31    // Run all selected test
32    switch (testSelection) {
33      case 0:
34        vieAutoTest.ViEStandardTest();
35        break;
36      case 1:
37        vieAutoTest.ViEAPITest();
38        break;
39      case 2:
40        vieAutoTest.ViEExtendedTest();
41        break;
42      case 3:
43        vieAutoTest.ViELoopbackCall();
44        break;
45      default:
46        break;
47    }
48  }
49
50  switch (testSelection) {
51    case 0: // Specific standard test
52      switch (subTestSelection) {
53        case 1: // base
54          vieAutoTest.ViEBaseStandardTest();
55          break;
56
57        case 2: // capture
58          vieAutoTest.ViECaptureStandardTest();
59          break;
60
61        case 3: // codec
62          vieAutoTest.ViECodecStandardTest();
63          break;
64
65        case 6: // image process
66          vieAutoTest.ViEImageProcessStandardTest();
67          break;
68
69#if 0  // vie_autotest_network.cc isn't actually pulled into the build at all!
70        case 7: // network
71          vieAutoTest.ViENetworkStandardTest();
72          break;
73#endif
74
75        case 8: // Render
76          vieAutoTest.ViERenderStandardTest();
77          break;
78
79        case 9: // RTP/RTCP
80          vieAutoTest.ViERtpRtcpStandardTest();
81          break;
82
83        default:
84          break;
85      }
86      break;
87
88    case 1:// specific API
89      switch (subTestSelection) {
90        case 1: // base
91          vieAutoTest.ViEBaseAPITest();
92          break;
93
94        case 2: // capture
95          vieAutoTest.ViECaptureAPITest();
96          break;
97
98        case 3: // codec
99          vieAutoTest.ViECodecAPITest();
100          break;
101
102        case 6: // image process
103          vieAutoTest.ViEImageProcessAPITest();
104          break;
105
106#if 0  // vie_autotest_network.cc isn't actually pulled into the build at all!
107        case 7: // network
108          vieAutoTest.ViENetworkAPITest();
109          break;
110#endif
111
112        case 8: // Render
113          vieAutoTest.ViERenderAPITest();
114          break;
115
116        case 9: // RTP/RTCP
117          vieAutoTest.ViERtpRtcpAPITest();
118          break;
119        case 10:
120          break;
121
122        default:
123          break;
124      }
125      break;
126
127    case 2:// specific extended
128      switch (subTestSelection) {
129        case 1: // base
130          vieAutoTest.ViEBaseExtendedTest();
131          break;
132
133        case 2: // capture
134          vieAutoTest.ViECaptureExtendedTest();
135          break;
136
137        case 3: // codec
138          vieAutoTest.ViECodecExtendedTest();
139          break;
140
141        case 6: // image process
142          vieAutoTest.ViEImageProcessExtendedTest();
143          break;
144
145        case 7: // Render
146          vieAutoTest.ViERenderExtendedTest();
147          break;
148
149        case 8: // RTP/RTCP
150          vieAutoTest.ViERtpRtcpExtendedTest();
151          break;
152
153        default:
154          break;
155      }
156      break;
157
158    case 3:
159      vieAutoTest.ViELoopbackCall();
160      break;
161
162    default:
163      break;
164    }
165
166  return 0;
167}
168
169int main(int argc, char** argv) {
170  // TODO(leozwang): Add real tests here
171  return 0;
172}
173