From 229cbdacdc88fa333f1e0ec398bddc05500cb51b Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 13 Jan 2017 14:50:46 +0100 Subject: [PATCH 1/6] add sources to testng library --- .idea/libraries/TestNG.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.idea/libraries/TestNG.xml b/.idea/libraries/TestNG.xml index db5a82957313..f3bb9a682688 100644 --- a/.idea/libraries/TestNG.xml +++ b/.idea/libraries/TestNG.xml @@ -5,6 +5,8 @@ - + + + \ No newline at end of file From 4557bfd477e959b97405628681f8089862155c94 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 13 Jan 2017 15:10:19 +0100 Subject: [PATCH 2/6] Rider platform prefix for PlatformTestCase --- .../src/com/intellij/testFramework/PlatformTestCase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java index 8acdd5dfcec4..31c73bac9eba 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java @@ -138,7 +138,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro private static final String[] PREFIX_CANDIDATES = { "AppCode", "CLion", "CidrCommon", - "Python", "PyCharmCore", "Ruby", "UltimateLangXml", "Idea", "PlatformLangXml" }; + "Python", "PyCharmCore", "Ruby", "Rider", "UltimateLangXml", "Idea", "PlatformLangXml" }; /** * @deprecated calling this method is no longer necessary From d6feec6aeb95826139417f90cf1da2db8de64454 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 13 Jan 2017 15:18:19 +0100 Subject: [PATCH 3/6] Search some files in ultimate/community/bin in addition to community/bin (reflects Rider directory structure) --- .../vfs/impl/local/NativeFileWatcherImpl.java | 5 ++++- .../src/com/intellij/util/lang/UrlClassLoader.java | 12 +++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/NativeFileWatcherImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/NativeFileWatcherImpl.java index 2a770eaa7e63..b21687fb7788 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/NativeFileWatcherImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/NativeFileWatcherImpl.java @@ -157,7 +157,10 @@ public class NativeFileWatcherImpl extends PluggableFileWatcher { } if (names == null) return null; - String[] dirs = {PathManager.getBinPath(), PathManager.getHomePath() + "/community/bin/" + prefix, PathManager.getBinPath() + '/' + prefix}; + String[] dirs = {PathManager.getBinPath(), + PathManager.getHomePath() + "/ultimate/community/bin/" + prefix, + PathManager.getHomePath() + "/community/bin/" + prefix, + PathManager.getBinPath() + '/' + prefix}; for (String dir : dirs) { for (String name : names) { File candidate = new File(dir, name); diff --git a/platform/util/src/com/intellij/util/lang/UrlClassLoader.java b/platform/util/src/com/intellij/util/lang/UrlClassLoader.java index 7b1e8be6369b..8c39d017335c 100644 --- a/platform/util/src/com/intellij/util/lang/UrlClassLoader.java +++ b/platform/util/src/com/intellij/util/lang/UrlClassLoader.java @@ -320,11 +320,13 @@ public class UrlClassLoader extends ClassLoader { if (!new File(libPath).exists()) { String platform = getPlatformName(); - if (!new File(libPath = PathManager.getHomePath() + "/community/bin/" + platform + libFileName).exists()) { - if (!new File(libPath = PathManager.getHomePath() + "/bin/" + platform + libFileName).exists()) { - if (!new File(libPath = PathManager.getHomePathFor(IdeaWin32.class) + "/bin/" + libFileName).exists()) { - File libDir = new File(PathManager.getBinPath()); - throw new UnsatisfiedLinkError("'" + libFileName + "' not found in '" + libDir + "' among " + Arrays.toString(libDir.list())); + if (!new File(libPath = PathManager.getHomePath() + "/ultimate/community/bin/" + platform + libFileName).exists()) { + if (!new File(libPath = PathManager.getHomePath() + "/community/bin/" + platform + libFileName).exists()) { + if (!new File(libPath = PathManager.getHomePath() + "/bin/" + platform + libFileName).exists()) { + if (!new File(libPath = PathManager.getHomePathFor(IdeaWin32.class) + "/bin/" + libFileName).exists()) { + File libDir = new File(PathManager.getBinPath()); + throw new UnsatisfiedLinkError("'" + libFileName + "' not found in '" + libDir + "' among " + Arrays.toString(libDir.list())); + } } } } From 93dc16aa6a1536e6dfaf6ad628367a092bdbacda Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 13 Jan 2017 15:26:22 +0100 Subject: [PATCH 4/6] moved IdeaFrameTitleBuilder from openapi to platform-impl (used in Rider without java dependency) --- .../src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {java/idea-ui => platform/platform-impl}/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java (100%) diff --git a/java/idea-ui/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java b/platform/platform-impl/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java similarity index 100% rename from java/idea-ui/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java rename to platform/platform-impl/src/com/intellij/openapi/wm/IdeaFrameTitleBuilder.java From 9873a11c995bb5ecee74fb7a7b0d2ff92502b450 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 13 Jan 2017 16:04:34 +0100 Subject: [PATCH 5/6] support idea.log.path property in tests logger --- .../src/com/intellij/testFramework/TestLoggerFactory.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java b/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java index 0722456ec5b1..354a9cad3a5b 100644 --- a/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java +++ b/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java @@ -32,6 +32,8 @@ import java.io.*; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static com.intellij.openapi.application.PathManager.PROPERTY_LOG_PATH; + @SuppressWarnings({"CallToPrintStackTrace", "UseOfSystemOutOrSystemErr"}) public class TestLoggerFactory implements Logger.Factory { private static final String SYSTEM_MACRO = "$SYSTEM_DIR$"; @@ -100,6 +102,8 @@ public class TestLoggerFactory implements Logger.Factory { } public static String getTestLogDir() { + if (System.getProperty(PROPERTY_LOG_PATH) != null) return System.getProperty(PROPERTY_LOG_PATH); + return PathManager.getSystemPath() + "/" + LOG_DIR; } From e31541ae935451cd935b0c3a55a6a795bcb856c6 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Fri, 13 Jan 2017 16:07:15 +0100 Subject: [PATCH 6/6] TestLoggerFactory: method to configure logger at arbitrary time --- .../intellij/testFramework/TestLoggerFactory.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java b/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java index 354a9cad3a5b..c44d3a72ac7a 100644 --- a/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java +++ b/platform/testFramework/src/com/intellij/testFramework/TestLoggerFactory.java @@ -58,13 +58,18 @@ public class TestLoggerFactory implements Logger.Factory { } private void init() { + if (!reconfigure()) return; + myInitialized = true; + } + + public static boolean reconfigure() { try { File logXmlFile = new File(PathManager.getHomePath(), "test-log.xml"); if (!logXmlFile.exists()) { logXmlFile = new File(PathManager.getBinPath(), "log.xml"); } if (!logXmlFile.exists()) { - return; + return false; } final String logDir = getTestLogDir(); @@ -94,10 +99,11 @@ public class TestLoggerFactory implements Logger.Factory { FileUtil.writeToFile(ideaLog, ""); } - myInitialized = true; + return true; } - catch (Exception e) { + catch (Throwable e) { e.printStackTrace(); + return false; } }