blob: 2df0ffef283a3cc4dfbf375bc88b9715c16014f5 [file] [log] [blame]
/*
* Copyright 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <unistd.h>
#include <iostream>
#include "TcpServerForRunner.h"
#define DEFAULT_HAL_DRIVER_FILE_PATH32 "./fuzzer32"
#define DEFAULT_HAL_DRIVER_FILE_PATH64 "./fuzzer64"
#define DEFAULT_SHELL_DRIVER_FILE_PATH32 "./vts_shell_driver32"
#define DEFAULT_SHELL_DRIVER_FILE_PATH64 "./vts_shell_driver64"
using namespace std;
int main(int argc, char* argv[]) {
char* spec_dir_path = NULL;
char* hal_path32;
char* hal_path64;
char* shell_path32;
char* shell_path64;
printf("|| VTS AGENT ||\n");
if (argc == 1) {
hal_path32 = (char*) DEFAULT_HAL_DRIVER_FILE_PATH32;
hal_path64 = (char*) DEFAULT_HAL_DRIVER_FILE_PATH64;
shell_path32 = (char*) DEFAULT_SHELL_DRIVER_FILE_PATH32;
shell_path64 = (char*) DEFAULT_SHELL_DRIVER_FILE_PATH64;
} else if (argc == 2) {
hal_path32 = (char*) DEFAULT_HAL_DRIVER_FILE_PATH32;
hal_path64 = (char*) DEFAULT_HAL_DRIVER_FILE_PATH64;
spec_dir_path = argv[1];
shell_path32 = (char*) DEFAULT_SHELL_DRIVER_FILE_PATH32;
shell_path64 = (char*) DEFAULT_SHELL_DRIVER_FILE_PATH64;
} else if (argc == 3) {
hal_path32 = argv[1];
hal_path64 = argv[2];
} else if (argc == 4) {
hal_path32 = argv[1];
hal_path64 = argv[2];
spec_dir_path = argv[3];
} else if (argc == 6) {
hal_path32 = argv[1];
hal_path64 = argv[2];
spec_dir_path = argv[3];
shell_path32 = argv[4];
shell_path64 = argv[5];
} else {
std::cerr << "usage: vts_hal_agent "
<< "[[<hal 32-bit binary path> [<hal 64-bit binary path>] "
<< "[<spec file base dir path>]]"
<< "[[<shell 32-bit binary path> [<shell 64-bit binary path>] "
<< std::endl;
return -1;
}
char* dir_path;
dir_path = (char*)malloc(strlen(argv[0]) + 1);
strcpy(dir_path, argv[0]);
for (int index = strlen(argv[0]) - 2; index >= 0; index--) {
if (dir_path[index] == '/') {
dir_path[index] = '\0';
break;
}
}
printf("chdir %s\n", dir_path);
chdir(dir_path);
android::vts::StartTcpServerForRunner(
(const char*)spec_dir_path, (const char*)hal_path32,
(const char*)hal_path64, (const char*)shell_path32,
(const char*)shell_path64);
return 0;
}