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

Side by Side Diff: tests/skia_test.cpp

Issue 14047009: use commandlineflags for tests/ (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « gyp/tests.gyp ('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
2 /* 1 /*
3 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
4 * 3 *
5 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 5 * found in the LICENSE file.
7 */ 6 */
7
8 #include "SkCommandLineFlags.h"
8 #include "SkGraphics.h" 9 #include "SkGraphics.h"
9 #include "Test.h" 10 #include "Test.h"
10 #include "SkOSFile.h" 11 #include "SkOSFile.h"
11 12
12 #if SK_SUPPORT_GPU 13 #if SK_SUPPORT_GPU
13 #include "GrContext.h" 14 #include "GrContext.h"
14 #endif 15 #endif
15 16
16 using namespace skiatest; 17 using namespace skiatest;
17 18
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 const SkString& Test::GetTmpDir() { 115 const SkString& Test::GetTmpDir() {
115 return gTmpDir; 116 return gTmpDir;
116 } 117 }
117 118
118 static SkString gResourcePath; 119 static SkString gResourcePath;
119 120
120 const SkString& Test::GetResourcePath() { 121 const SkString& Test::GetResourcePath() {
121 return gResourcePath; 122 return gResourcePath;
122 } 123 }
123 124
125 DEFINE_string2(matchStr, m, NULL, "substring of test name to run.");
126 DEFINE_string2(tmpDir, t, NULL, "tmp directory for tests to use.");
127 DEFINE_string2(resourcePath, i, NULL, "directory for test resources.");
128 DEFINE_bool2(extendedTest, x, false, "run extended tests for pathOps.");
129 DEFINE_bool2(verbose, v, false, "enable verbose output.");
130
124 int tool_main(int argc, char** argv); 131 int tool_main(int argc, char** argv);
125 int tool_main(int argc, char** argv) { 132 int tool_main(int argc, char** argv) {
133 SkCommandLineFlags::SetUsage("");
134 SkCommandLineFlags::Parse(argc, argv);
135
136 if (!FLAGS_tmpDir.isEmpty()) {
137 make_canonical_dir_path(FLAGS_tmpDir[0], &gTmpDir);
138 }
139 if (!FLAGS_resourcePath.isEmpty()) {
140 make_canonical_dir_path(FLAGS_resourcePath[0], &gResourcePath);
141 }
142
126 #if SK_ENABLE_INST_COUNT 143 #if SK_ENABLE_INST_COUNT
127 gPrintInstCount = true; 144 gPrintInstCount = true;
128 #endif 145 #endif
129 bool allowExtendedTest = false;
130 bool verboseOutput = false;
131 146
132 SkGraphics::Init(); 147 SkGraphics::Init();
133 148
134 const char* matchStr = NULL;
135
136 char* const* stop = argv + argc;
137 for (++argv; argv < stop; ++argv) {
138 if (0 == strcmp(*argv, "--match") || 0 == strcmp(*argv, "-m")) {
139 ++argv;
140 if (argv < stop && **argv) {
141 matchStr = *argv;
142 } else {
143 SkDebugf("no following argument to --match\n");
144 return -1;
145 }
146 } else if (0 == strcmp(*argv, "--tmpDir") || 0 == strcmp(*argv, "-t")) {
147 ++argv;
148 if (argv < stop && **argv) {
149 make_canonical_dir_path(*argv, &gTmpDir);
150 } else {
151 SkDebugf("no following argument to --tmpDir\n");
152 return -1;
153 }
154 } else if (0 == strcmp(*argv, "--resourcePath") || 0 == strcmp(*argv, "- i")) {
155 argv++;
156 if (argv < stop && **argv) {
157 make_canonical_dir_path(*argv, &gResourcePath);
158 }
159 } else if (0 == strcmp(*argv, "--extendedTest") || 0 == strcmp(*argv, "- x")) {
160 allowExtendedTest = true;
161 } else if (0 == strcmp(*argv, "--verbose") || 0 == strcmp(*argv, "-v")) {
162 verboseOutput = true;
163 } else {
164 if (0 != strcmp(*argv, "--help") && 0 != strcmp(*argv, "-h")
165 && 0 != strcmp(*argv, "-?")) {
166 SkDebugf("Unknown option %s. ", *argv);
167 }
168 SkDebugf("Skia UnitTests options are:\n");
169 SkDebugf(" -m --match [test-name-substring]\n");
170 SkDebugf(" -t --tmpDir [dir]\n");
171 SkDebugf(" -i --resourcePath [dir]\n");
172 SkDebugf(" -x --extendedTest\n");
173 SkDebugf(" -v --verbose\n");
174 return 1;
175 }
176 }
177
178 { 149 {
179 SkString header("Skia UnitTests:"); 150 SkString header("Skia UnitTests:");
180 if (matchStr) { 151 if (!FLAGS_matchStr.isEmpty()) {
181 header.appendf(" --match %s", matchStr); 152 header.appendf(" --match %s", FLAGS_matchStr[0]);
182 } 153 }
183 if (!gTmpDir.isEmpty()) { 154 if (!gTmpDir.isEmpty()) {
184 header.appendf(" --tmpDir %s", gTmpDir.c_str()); 155 header.appendf(" --tmpDir %s", gTmpDir.c_str());
185 } 156 }
186 if (!gResourcePath.isEmpty()) { 157 if (!gResourcePath.isEmpty()) {
187 header.appendf(" --resourcePath %s", gResourcePath.c_str()); 158 header.appendf(" --resourcePath %s", gResourcePath.c_str());
188 } 159 }
189 #ifdef SK_DEBUG 160 #ifdef SK_DEBUG
190 header.append(" SK_DEBUG"); 161 header.append(" SK_DEBUG");
191 #else 162 #else
192 header.append(" SK_RELEASE"); 163 header.append(" SK_RELEASE");
193 #endif 164 #endif
194 #ifdef SK_SCALAR_IS_FIXED 165 #ifdef SK_SCALAR_IS_FIXED
195 header.append(" SK_SCALAR_IS_FIXED"); 166 header.append(" SK_SCALAR_IS_FIXED");
196 #else 167 #else
197 header.append(" SK_SCALAR_IS_FLOAT"); 168 header.append(" SK_SCALAR_IS_FLOAT");
198 #endif 169 #endif
199 SkDebugf("%s\n", header.c_str()); 170 SkDebugf("%s\n", header.c_str());
200 } 171 }
201 172
202 DebugfReporter reporter(allowExtendedTest); 173 DebugfReporter reporter(FLAGS_extendedTest);
203 Iter iter(&reporter); 174 Iter iter(&reporter);
204 Test* test; 175 Test* test;
205 176
206 const int count = Iter::Count(); 177 const int count = Iter::Count();
207 int index = 0; 178 int index = 0;
208 int failCount = 0; 179 int failCount = 0;
209 int skipCount = 0; 180 int skipCount = 0;
210 while ((test = iter.next()) != NULL) { 181 while ((test = iter.next()) != NULL) {
211 reporter.setIndexOfTotal(index, count); 182 reporter.setIndexOfTotal(index, count);
212 if (NULL != matchStr && !strstr(test->getName(), matchStr)) { 183 if (!FLAGS_matchStr.isEmpty() && !strstr(test->getName(), FLAGS_matchStr [0])) {
213 ++skipCount; 184 ++skipCount;
214 } else { 185 } else {
215 if (!test->run()) { 186 if (!test->run()) {
216 ++failCount; 187 ++failCount;
217 } 188 }
218 } 189 }
219 SkDELETE(test); 190 SkDELETE(test);
220 index += 1; 191 index += 1;
221 } 192 }
222 193
223 SkDebugf("Finished %d tests, %d failures, %d skipped.\n", 194 SkDebugf("Finished %d tests, %d failures, %d skipped.\n",
224 count, failCount, skipCount); 195 count, failCount, skipCount);
225 int testCount = reporter.countTests(); 196 int testCount = reporter.countTests();
226 if (verboseOutput && testCount > 0) { 197 if (FLAGS_verbose && testCount > 0) {
227 SkDebugf("Ran %d Internal tests.\n", testCount); 198 SkDebugf("Ran %d Internal tests.\n", testCount);
228 } 199 }
229 #if SK_SUPPORT_GPU 200 #if SK_SUPPORT_GPU
230 201
231 #if GR_CACHE_STATS 202 #if GR_CACHE_STATS
232 GrContext *gr = GpuTest::GetContext(); 203 GrContext *gr = GpuTest::GetContext();
233 204
234 gr->printCacheStats(); 205 gr->printCacheStats();
235 #endif 206 #endif
236 207
237 #endif 208 #endif
238 209
239 SkGraphics::Term(); 210 SkGraphics::Term();
240 GpuTest::DestroyContexts(); 211 GpuTest::DestroyContexts();
241 212
242 return (failCount == 0) ? 0 : 1; 213 return (failCount == 0) ? 0 : 1;
243 } 214 }
244 215
245 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 216 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
246 int main(int argc, char * const argv[]) { 217 int main(int argc, char * const argv[]) {
247 return tool_main(argc, (char**) argv); 218 return tool_main(argc, (char**) argv);
248 } 219 }
249 #endif 220 #endif
OLDNEW
« no previous file with comments | « gyp/tests.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698