1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "common_runtime_test.h" 18 19#include <cstdio> 20 21#include "gtest/gtest.h" 22 23namespace art { 24 25// Run the tests only on host. 26#ifndef __ANDROID__ 27 28class PrebuiltToolsTest : public CommonRuntimeTest { 29}; 30 31static void CheckToolsExist(const std::string& tools_dir) { 32 const char* tools[] { "as", "objcopy", "objdump" }; // NOLINT 33 for (const char* tool : tools) { 34 struct stat exec_st; 35 std::string exec_path = tools_dir + tool; 36 if (stat(exec_path.c_str(), &exec_st) != 0) { 37 ADD_FAILURE() << "Cannot find " << tool << " in " << tools_dir; 38 } 39 } 40} 41 42TEST_F(PrebuiltToolsTest, CheckHostTools) { 43 std::string tools_dir = GetAndroidHostToolsDir(); 44 if (tools_dir.empty()) { 45 ADD_FAILURE() << "Cannot find Android tools directory for host"; 46 } else { 47 CheckToolsExist(tools_dir); 48 } 49} 50 51TEST_F(PrebuiltToolsTest, CheckTargetTools) { 52 // Other prebuilts are missing from the build server's repo manifest. 53 InstructionSet isas[] = { kThumb2 }; // NOLINT 54 for (InstructionSet isa : isas) { 55 std::string tools_dir = GetAndroidTargetToolsDir(isa); 56 if (tools_dir.empty()) { 57 ADD_FAILURE() << "Cannot find Android tools directory for " << isa; 58 } else { 59 CheckToolsExist(tools_dir); 60 } 61 } 62} 63 64#endif // __ANDROID__ 65 66} // namespace art 67