From ab5419097d7f07290b6e66d58248f88ad254b260 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Tue, 15 Dec 2015 16:03:48 +0000 Subject: [PATCH] Remove test given its flakiness. Change-Id: I7b746bd93cfd3f7eca71f1a7b9dcc799d30dd971 --- test/554-jit-profile-file/expected.txt | 7 - test/554-jit-profile-file/info.txt | 1 - test/554-jit-profile-file/offline_profile.cc | 59 --------- test/554-jit-profile-file/run | 23 ---- .../src-multidex/OtherDex.java | 31 ----- test/554-jit-profile-file/src/Main.java | 145 --------------------- 6 files changed, 266 deletions(-) delete mode 100644 test/554-jit-profile-file/expected.txt delete mode 100644 test/554-jit-profile-file/info.txt delete mode 100644 test/554-jit-profile-file/offline_profile.cc delete mode 100644 test/554-jit-profile-file/run delete mode 100644 test/554-jit-profile-file/src-multidex/OtherDex.java delete mode 100644 test/554-jit-profile-file/src/Main.java diff --git a/test/554-jit-profile-file/expected.txt b/test/554-jit-profile-file/expected.txt deleted file mode 100644 index cde211e1c..000000000 --- a/test/554-jit-profile-file/expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -JNI_OnLoad called -ProfileInfo: -:classes.dex - java.lang.String Main.hotMethod() - void Main.main(java.lang.String[]) -:classes2.dex - java.lang.String OtherDex.hotMethod() diff --git a/test/554-jit-profile-file/info.txt b/test/554-jit-profile-file/info.txt deleted file mode 100644 index b1bfe81eb..000000000 --- a/test/554-jit-profile-file/info.txt +++ /dev/null @@ -1 +0,0 @@ -Check that saving and restoring profile files works correctly in a JIT environment. diff --git a/test/554-jit-profile-file/offline_profile.cc b/test/554-jit-profile-file/offline_profile.cc deleted file mode 100644 index 75e441fc8..000000000 --- a/test/554-jit-profile-file/offline_profile.cc +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2015 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 "dex_file.h" - -#include "jit/offline_profiling_info.h" -#include "jni.h" -#include "mirror/class-inl.h" -#include "oat_file_assistant.h" -#include "oat_file_manager.h" -#include "scoped_thread_state_change.h" -#include "thread.h" - -namespace art { -namespace { - -extern "C" JNIEXPORT jstring JNICALL Java_Main_getProfileInfoDump( - JNIEnv* env, jclass cls, jstring filename) { - std::string dex_location; - { - ScopedObjectAccess soa(Thread::Current()); - dex_location = soa.Decode(cls)->GetDexCache()->GetDexFile()->GetLocation(); - } - const OatFile* oat_file = Runtime::Current()->GetOatFileManager().GetPrimaryOatFile(); - std::vector> dex_files = - OatFileAssistant::LoadDexFiles(*oat_file, dex_location.c_str()); - const char* filename_chars = env->GetStringUTFChars(filename, nullptr); - - std::vector dex_files_raw; - for (size_t i = 0; i < dex_files.size(); i++) { - dex_files_raw.push_back(dex_files[i].get()); - } - - ProfileCompilationInfo info(filename_chars); - - std::string result = info.Load(dex_files_raw) - ? info.DumpInfo(/*print_full_dex_location*/false) - : "Could not load profile info"; - - env->ReleaseStringUTFChars(filename, filename_chars); - // Return the dump of the profile info. It will be compared against a golden value. - return env->NewStringUTF(result.c_str()); -} - -} // namespace -} // namespace art diff --git a/test/554-jit-profile-file/run b/test/554-jit-profile-file/run deleted file mode 100644 index f93b32f5c..000000000 --- a/test/554-jit-profile-file/run +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# -# Copyright 2015 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. - -exec ${RUN} \ - -Xcompiler-option --compiler-filter=interpret-only \ - --runtime-option -Xjitsaveprofilinginfo \ - --runtime-option -Xusejit:true \ - --runtime-option -Xjitwarmupthreshold:2 \ - --runtime-option -Xjitthreshold:4 \ - "${@}" diff --git a/test/554-jit-profile-file/src-multidex/OtherDex.java b/test/554-jit-profile-file/src-multidex/OtherDex.java deleted file mode 100644 index 51644db5a..000000000 --- a/test/554-jit-profile-file/src-multidex/OtherDex.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2015 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. - */ - -import java.util.HashMap; - -public class OtherDex { - public void coldMethod() { - hotMethod(); - } - - public String hotMethod() { - HashMap map = new HashMap(); - for (int i = 0; i < 10; i++) { - map.put("" + i, "" + i + 1); - } - return map.get("1"); - } -} diff --git a/test/554-jit-profile-file/src/Main.java b/test/554-jit-profile-file/src/Main.java deleted file mode 100644 index 98297ed8e..000000000 --- a/test/554-jit-profile-file/src/Main.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 2015 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. - */ - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Method; -import java.util.HashMap; - -public class Main { - - public void coldMethod() { - hotMethod(); - } - - public String hotMethod() { - HashMap map = new HashMap(); - for (int i = 0; i < 10; i++) { - map.put("" + i, "" + i + 1); - } - return map.get("1"); - } - - private static final String PKG_NAME = "test.package"; - private static final String APP_DIR_PREFIX = "app_dir_"; - private static final String CODE_CACHE = "code_cache"; - private static final String PROFILE_FILE = PKG_NAME + ".prof"; - private static final String TEMP_FILE_NAME_PREFIX = "dummy"; - private static final String TEMP_FILE_NAME_SUFFIX = "-file"; - private static final int JIT_INVOCATION_COUNT = 200; - - /* needs to match Runtime:: kProfileBackground */ - private static final int PROFILE_BACKGROUND = 1; - - public static void main(String[] args) throws Exception { - System.loadLibrary(args[0]); - - File file = null; - File appDir = null; - File profileDir = null; - File profileFile = null; - try { - // We don't know where we have rights to create the code_cache. So create - // a dummy temporary file and get its parent directory. That will serve as - // the app directory. - file = createTempFile(); - appDir = new File(file.getParent(), APP_DIR_PREFIX + file.getName()); - appDir.mkdir(); - profileDir = new File(appDir, CODE_CACHE); - profileDir.mkdir(); - - // Registering the app info will set the profile file name. - VMRuntime.registerAppInfo(PKG_NAME, appDir.getPath()); - - // Make sure the hot methods are jitted. - Main m = new Main(); - OtherDex o = new OtherDex(); - for (int i = 0; i < JIT_INVOCATION_COUNT; i++) { - m.hotMethod(); - o.hotMethod(); - } - - // Sleep for 2 second to make sure that the methods had a chance to get compiled. - Thread.sleep(2000); - // Updating the process state to BACKGROUND will trigger profile saving. - VMRuntime.updateProcessState(PROFILE_BACKGROUND); - - // Check that the profile file exists. - profileFile = new File(profileDir, PROFILE_FILE); - if (!profileFile.exists()) { - throw new RuntimeException("No profile file found"); - } - // Dump the profile file. - // We know what methods are hot and we compare with the golden `expected` output. - System.out.println(getProfileInfoDump(profileFile.getPath())); - } finally { - if (file != null) { - file.delete(); - } - if (profileFile != null) { - profileFile.delete(); - } - if (profileDir != null) { - profileDir.delete(); - } - if (appDir != null) { - appDir.delete(); - } - } - } - - private static class VMRuntime { - private static final Method registerAppInfoMethod; - private static final Method updateProcessStateMethod; - private static final Method getRuntimeMethod; - static { - try { - Class c = Class.forName("dalvik.system.VMRuntime"); - registerAppInfoMethod = c.getDeclaredMethod("registerAppInfo", - String.class, String.class, String.class); - updateProcessStateMethod = c.getDeclaredMethod("updateProcessState", Integer.TYPE); - getRuntimeMethod = c.getDeclaredMethod("getRuntime"); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static void registerAppInfo(String pkgName, String appDir) throws Exception { - registerAppInfoMethod.invoke(null, pkgName, appDir, null); - } - public static void updateProcessState(int state) throws Exception { - Object runtime = getRuntimeMethod.invoke(null); - updateProcessStateMethod.invoke(runtime, state); - } - } - - static native String getProfileInfoDump( - String filename); - - private static File createTempFile() throws Exception { - try { - return File.createTempFile(TEMP_FILE_NAME_PREFIX, TEMP_FILE_NAME_SUFFIX); - } catch (IOException e) { - System.setProperty("java.io.tmpdir", "/data/local/tmp"); - try { - return File.createTempFile(TEMP_FILE_NAME_PREFIX, TEMP_FILE_NAME_SUFFIX); - } catch (IOException e2) { - System.setProperty("java.io.tmpdir", "/sdcard"); - return File.createTempFile(TEMP_FILE_NAME_PREFIX, TEMP_FILE_NAME_SUFFIX); - } - } - } -} -- 2.11.0