Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: testing/android/native_test/native_test_launcher.cc

Issue 2044523003: Revert of 👔 Reland of Move side-loaded test data /sdcard -> /sdcard/gtestdata (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This class sets up the environment for running the native tests inside an 5 // This class sets up the environment for running the native tests inside an
6 // android application. It outputs (to a fifo) markers identifying the 6 // android application. It outputs (to a fifo) markers identifying the
7 // START/PASSED/CRASH of the test suite, FAILURE/SUCCESS of individual tests, 7 // START/PASSED/CRASH of the test suite, FAILURE/SUCCESS of individual tests,
8 // etc. 8 // etc.
9 // These markers are read by the test runner script to generate test results. 9 // These markers are read by the test runner script to generate test results.
10 // It installs signal handlers to detect crashes. 10 // It installs signal handlers to detect crashes.
11 11
12 #include <android/log.h> 12 #include <android/log.h>
13 #include <signal.h> 13 #include <signal.h>
14 14
15 #include "base/android/base_jni_registrar.h" 15 #include "base/android/base_jni_registrar.h"
16 #include "base/android/context_utils.h" 16 #include "base/android/context_utils.h"
17 #include "base/android/fifo_utils.h" 17 #include "base/android/fifo_utils.h"
18 #include "base/android/jni_string.h" 18 #include "base/android/jni_string.h"
19 #include "base/android/scoped_java_ref.h" 19 #include "base/android/scoped_java_ref.h"
20 #include "base/at_exit.h" 20 #include "base/at_exit.h"
21 #include "base/base_switches.h" 21 #include "base/base_switches.h"
22 #include "base/command_line.h" 22 #include "base/command_line.h"
23 #include "base/files/file_path.h" 23 #include "base/files/file_path.h"
24 #include "base/files/file_util.h" 24 #include "base/files/file_util.h"
25 #include "base/logging.h" 25 #include "base/logging.h"
26 #include "base/strings/stringprintf.h" 26 #include "base/strings/stringprintf.h"
27 #include "base/test/test_support_android.h"
28 #include "gtest/gtest.h" 27 #include "gtest/gtest.h"
29 #include "jni/NativeTest_jni.h" 28 #include "jni/NativeTest_jni.h"
30 #include "testing/android/native_test/native_test_util.h" 29 #include "testing/android/native_test/native_test_util.h"
31 30
32 // The main function of the program to be wrapped as a test apk. 31 // The main function of the program to be wrapped as a test apk.
33 extern int main(int argc, char** argv); 32 extern int main(int argc, char** argv);
34 33
35 namespace testing { 34 namespace testing {
36 namespace android { 35 namespace android {
37 36
(...skipping 26 matching lines...) Expand all
64 } 63 }
65 64
66 } // namespace 65 } // namespace
67 66
68 static void RunTests(JNIEnv* env, 67 static void RunTests(JNIEnv* env,
69 const JavaParamRef<jobject>& obj, 68 const JavaParamRef<jobject>& obj,
70 const JavaParamRef<jstring>& jcommand_line_flags, 69 const JavaParamRef<jstring>& jcommand_line_flags,
71 const JavaParamRef<jstring>& jcommand_line_file_path, 70 const JavaParamRef<jstring>& jcommand_line_file_path,
72 const JavaParamRef<jstring>& jstdout_file_path, 71 const JavaParamRef<jstring>& jstdout_file_path,
73 jboolean jstdout_fifo, 72 jboolean jstdout_fifo,
74 const JavaParamRef<jobject>& app_context, 73 const JavaParamRef<jobject>& app_context) {
75 const JavaParamRef<jstring>& jtest_data_dir) {
76 // Command line initialized basically, will be fully initialized later. 74 // Command line initialized basically, will be fully initialized later.
77 static const char* const kInitialArgv[] = { "ChromeTestActivity" }; 75 static const char* const kInitialArgv[] = { "ChromeTestActivity" };
78 base::CommandLine::Init(arraysize(kInitialArgv), kInitialArgv); 76 base::CommandLine::Init(arraysize(kInitialArgv), kInitialArgv);
79 77
80 std::vector<std::string> args; 78 std::vector<std::string> args;
81 79
82 const std::string command_line_file_path( 80 const std::string command_line_file_path(
83 base::android::ConvertJavaStringToUTF8(env, jcommand_line_file_path)); 81 base::android::ConvertJavaStringToUTF8(env, jcommand_line_file_path));
84 if (command_line_file_path.empty()) 82 if (command_line_file_path.empty())
85 args.push_back("_"); 83 args.push_back("_");
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 } 117 }
120 dup2(STDOUT_FILENO, STDERR_FILENO); 118 dup2(STDOUT_FILENO, STDERR_FILENO);
121 119
122 if (command_line.HasSwitch(switches::kWaitForDebugger)) { 120 if (command_line.HasSwitch(switches::kWaitForDebugger)) {
123 AndroidLog(ANDROID_LOG_VERBOSE, 121 AndroidLog(ANDROID_LOG_VERBOSE,
124 "Native test waiting for GDB because flag %s was supplied", 122 "Native test waiting for GDB because flag %s was supplied",
125 switches::kWaitForDebugger); 123 switches::kWaitForDebugger);
126 base::debug::WaitForDebugger(24 * 60 * 60, false); 124 base::debug::WaitForDebugger(24 * 60 * 60, false);
127 } 125 }
128 126
129 base::FilePath test_data_dir(
130 base::android::ConvertJavaStringToUTF8(env, jtest_data_dir));
131 base::InitAndroidTestPaths(test_data_dir);
132
133 ScopedMainEntryLogger scoped_main_entry_logger; 127 ScopedMainEntryLogger scoped_main_entry_logger;
134 main(argc, &argv[0]); 128 main(argc, &argv[0]);
135 } 129 }
136 130
137 bool RegisterNativeTestJNI(JNIEnv* env) { 131 bool RegisterNativeTestJNI(JNIEnv* env) {
138 if (!base::android::RegisterJni(env)) { 132 if (!base::android::RegisterJni(env)) {
139 return false; 133 return false;
140 } 134 }
141 return RegisterNativesImpl(env); 135 return RegisterNativesImpl(env);
142 } 136 }
143 137
144 // TODO(nileshagrawal): now that we're using FIFO, test scripts can detect EOF. 138 // TODO(nileshagrawal): now that we're using FIFO, test scripts can detect EOF.
145 // Remove the signal handlers. 139 // Remove the signal handlers.
146 void InstallHandlers() { 140 void InstallHandlers() {
147 struct sigaction sa; 141 struct sigaction sa;
148 memset(&sa, 0, sizeof(sa)); 142 memset(&sa, 0, sizeof(sa));
149 143
150 sa.sa_sigaction = SignalHandler; 144 sa.sa_sigaction = SignalHandler;
151 sa.sa_flags = SA_SIGINFO; 145 sa.sa_flags = SA_SIGINFO;
152 146
153 for (unsigned int i = 0; kExceptionSignals[i] != -1; ++i) { 147 for (unsigned int i = 0; kExceptionSignals[i] != -1; ++i) {
154 sigaction(kExceptionSignals[i], &sa, &g_old_sa[kExceptionSignals[i]]); 148 sigaction(kExceptionSignals[i], &sa, &g_old_sa[kExceptionSignals[i]]);
155 } 149 }
156 } 150 }
157 151
158 } // namespace android 152 } // namespace android
159 } // namespace testing 153 } // namespace testing
OLDNEW
« no previous file with comments | « testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698