1*8975f5c5SAndroid Build Coastguard Worker //
2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2019 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker
6*8975f5c5SAndroid Build Coastguard Worker // system_utils_unittest_helper.cpp: Helper to the SystemUtils.RunApp unittest
7*8975f5c5SAndroid Build Coastguard Worker
8*8975f5c5SAndroid Build Coastguard Worker #include "test_utils_unittest_helper.h"
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Worker #include "../src/tests/test_utils/runner/TestSuite.h"
11*8975f5c5SAndroid Build Coastguard Worker #include "common/system_utils.h"
12*8975f5c5SAndroid Build Coastguard Worker
13*8975f5c5SAndroid Build Coastguard Worker #include <string.h>
14*8975f5c5SAndroid Build Coastguard Worker
15*8975f5c5SAndroid Build Coastguard Worker // This variable is also defined in angle_unittest_main.
16*8975f5c5SAndroid Build Coastguard Worker bool gVerbose = false;
17*8975f5c5SAndroid Build Coastguard Worker
main(int argc,char ** argv)18*8975f5c5SAndroid Build Coastguard Worker int main(int argc, char **argv)
19*8975f5c5SAndroid Build Coastguard Worker {
20*8975f5c5SAndroid Build Coastguard Worker bool runTestSuite = false;
21*8975f5c5SAndroid Build Coastguard Worker
22*8975f5c5SAndroid Build Coastguard Worker for (int argIndex = 1; argIndex < argc; ++argIndex)
23*8975f5c5SAndroid Build Coastguard Worker {
24*8975f5c5SAndroid Build Coastguard Worker if (strcmp(argv[argIndex], kRunTestSuite) == 0)
25*8975f5c5SAndroid Build Coastguard Worker {
26*8975f5c5SAndroid Build Coastguard Worker runTestSuite = true;
27*8975f5c5SAndroid Build Coastguard Worker }
28*8975f5c5SAndroid Build Coastguard Worker }
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard Worker if (runTestSuite)
31*8975f5c5SAndroid Build Coastguard Worker {
32*8975f5c5SAndroid Build Coastguard Worker angle::TestSuite testSuite(&argc, argv);
33*8975f5c5SAndroid Build Coastguard Worker return testSuite.run();
34*8975f5c5SAndroid Build Coastguard Worker }
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Worker if (argc != 3 || strcmp(argv[1], kRunAppTestArg1) != 0 || strcmp(argv[2], kRunAppTestArg2) != 0)
37*8975f5c5SAndroid Build Coastguard Worker {
38*8975f5c5SAndroid Build Coastguard Worker fprintf(stderr, "Expected command line:\n%s %s %s\n", argv[0], kRunAppTestArg1,
39*8975f5c5SAndroid Build Coastguard Worker kRunAppTestArg2);
40*8975f5c5SAndroid Build Coastguard Worker return EXIT_FAILURE;
41*8975f5c5SAndroid Build Coastguard Worker }
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker std::string env = angle::GetEnvironmentVar(kRunAppTestEnvVarName);
44*8975f5c5SAndroid Build Coastguard Worker if (env == "")
45*8975f5c5SAndroid Build Coastguard Worker {
46*8975f5c5SAndroid Build Coastguard Worker printf("%s", kRunAppTestStdout);
47*8975f5c5SAndroid Build Coastguard Worker fflush(stdout);
48*8975f5c5SAndroid Build Coastguard Worker fprintf(stderr, "%s", kRunAppTestStderr);
49*8975f5c5SAndroid Build Coastguard Worker }
50*8975f5c5SAndroid Build Coastguard Worker else
51*8975f5c5SAndroid Build Coastguard Worker {
52*8975f5c5SAndroid Build Coastguard Worker fprintf(stderr, "%s", env.c_str());
53*8975f5c5SAndroid Build Coastguard Worker }
54*8975f5c5SAndroid Build Coastguard Worker
55*8975f5c5SAndroid Build Coastguard Worker return EXIT_SUCCESS;
56*8975f5c5SAndroid Build Coastguard Worker }
57