mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
tests fixed
This commit is contained in:
@@ -3,20 +3,29 @@ package org.jetbrains.jps.incremental;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.incremental.artifacts.ArtifactBuilderLogger;
|
||||
import org.jetbrains.jps.incremental.artifacts.ArtifactBuilderLoggerImpl;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilderLogger;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilderLoggerImpl;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public class BuildLoggingManager {
|
||||
public static final BuildLoggingManager DEFAULT = new BuildLoggingManager(new ArtifactBuilderLoggerImpl());
|
||||
public static final BuildLoggingManager DEFAULT = new BuildLoggingManager(new ArtifactBuilderLoggerImpl(), new JavaBuilderLoggerImpl());
|
||||
private ArtifactBuilderLogger myArtifactBuilderLogger;
|
||||
private JavaBuilderLogger myJavaBuilderLogger;
|
||||
|
||||
public BuildLoggingManager(@NotNull ArtifactBuilderLogger artifactBuilderLogger) {
|
||||
public BuildLoggingManager(@NotNull ArtifactBuilderLogger artifactBuilderLogger, @NotNull JavaBuilderLogger logger) {
|
||||
myArtifactBuilderLogger = artifactBuilderLogger;
|
||||
myJavaBuilderLogger = logger;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ArtifactBuilderLogger getArtifactBuilderLogger() {
|
||||
return myArtifactBuilderLogger;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JavaBuilderLogger getJavaBuilderLogger() {
|
||||
return myJavaBuilderLogger;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.jetbrains.jps.api.CanceledStatus;
|
||||
import org.jetbrains.jps.api.RequestFuture;
|
||||
import org.jetbrains.jps.incremental.java.ExternalJavacDescriptor;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilder;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilderLogger;
|
||||
import org.jetbrains.jps.incremental.messages.BuildMessage;
|
||||
import org.jetbrains.jps.incremental.messages.CompilerMessage;
|
||||
import org.jetbrains.jps.incremental.messages.ProgressMessage;
|
||||
@@ -321,7 +322,8 @@ public class IncProjectBuilder {
|
||||
final Collection<String> outputs = sourceToOutputStorage.getState(deletedSource);
|
||||
|
||||
if (outputs != null) {
|
||||
if (LOG.isDebugEnabled()) {
|
||||
final JavaBuilderLogger logger = context.getLoggingManager().getJavaBuilderLogger();
|
||||
if (logger.isEnabled()) {
|
||||
if (outputs.size() > 0) {
|
||||
final String[] buffer = new String[outputs.size()];
|
||||
int i = 0;
|
||||
@@ -329,11 +331,11 @@ public class IncProjectBuilder {
|
||||
buffer[i++] = o;
|
||||
}
|
||||
Arrays.sort(buffer);
|
||||
LOG.info("Cleaning output files:");
|
||||
logger.log("Cleaning output files:");
|
||||
for(final String o : buffer) {
|
||||
LOG.info(o);
|
||||
logger.log(o);
|
||||
}
|
||||
LOG.info("End of files");
|
||||
logger.log("End of files");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,7 +452,8 @@ public class IncProjectBuilder {
|
||||
}
|
||||
}
|
||||
else {
|
||||
LOG.info("Builder " + builder.getDescription() + " requested second chunk rebuild");
|
||||
context.getLoggingManager().getJavaBuilderLogger().log(
|
||||
"Builder " + builder.getDescription() + " requested second chunk rebuild");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,8 +493,9 @@ public class IncProjectBuilder {
|
||||
final Collection<String> outputs = srcToOut.getState(srcPath);
|
||||
|
||||
if (outputs != null) {
|
||||
final JavaBuilderLogger logger = context.getLoggingManager().getJavaBuilderLogger();
|
||||
for (String output : outputs) {
|
||||
if (LOG.isDebugEnabled()) {
|
||||
if (logger.isEnabled()) {
|
||||
allOutputs.add(output);
|
||||
}
|
||||
FileUtil.delete(new File(output));
|
||||
@@ -502,9 +506,10 @@ public class IncProjectBuilder {
|
||||
}
|
||||
});
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
final JavaBuilderLogger logger = context.getLoggingManager().getJavaBuilderLogger();
|
||||
if (logger.isEnabled()) {
|
||||
if (context.isMake() && allOutputs.size() > 0) {
|
||||
LOG.info("Cleaning output files:");
|
||||
logger.log("Cleaning output files:");
|
||||
final String[] buffer = new String[allOutputs.size()];
|
||||
int i = 0;
|
||||
for (String output : allOutputs) {
|
||||
@@ -512,9 +517,9 @@ public class IncProjectBuilder {
|
||||
}
|
||||
Arrays.sort(buffer);
|
||||
for (String output : buffer) {
|
||||
LOG.info(output);
|
||||
logger.log(output);
|
||||
}
|
||||
LOG.info("End of files");
|
||||
logger.log("End of files");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.jetbrains.jps.incremental.java;
|
||||
import com.intellij.compiler.notNullVerification.NotNullVerifyingInstrumenter;
|
||||
import com.intellij.execution.process.BaseOSProcessHandler;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
@@ -46,8 +45,6 @@ import java.util.concurrent.TimeUnit;
|
||||
* Date: 9/21/11
|
||||
*/
|
||||
public class JavaBuilder extends ModuleLevelBuilder {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.java.JavaBuilder");
|
||||
|
||||
public static final String BUILDER_NAME = "java";
|
||||
private static final String JAVA_EXTENSION = ".java";
|
||||
private static final String FORM_EXTENSION = ".form";
|
||||
@@ -185,9 +182,10 @@ public class JavaBuilder extends ModuleLevelBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
final JavaBuilderLogger logger = context.getLoggingManager().getJavaBuilderLogger();
|
||||
if (logger.isEnabled()) {
|
||||
if (filesToCompile.size() > 0 && context.isMake()) {
|
||||
LOG.info("Compiling files:");
|
||||
logger.log("Compiling files:");
|
||||
final String[] buffer = new String[filesToCompile.size()];
|
||||
int i = 0;
|
||||
for (final File f : filesToCompile) {
|
||||
@@ -195,9 +193,9 @@ public class JavaBuilder extends ModuleLevelBuilder {
|
||||
}
|
||||
Arrays.sort(buffer);
|
||||
for (final String s : buffer) {
|
||||
LOG.info(s);
|
||||
logger.log(s);
|
||||
}
|
||||
LOG.info("End of files");
|
||||
logger.log("End of files");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package org.jetbrains.jps.incremental.java;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public interface JavaBuilderLogger {
|
||||
void log(String line);
|
||||
boolean isEnabled();
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.jetbrains.jps.incremental.java;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public class JavaBuilderLoggerImpl implements JavaBuilderLogger {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.java.JavaBuilderLoggerImpl");
|
||||
|
||||
@Override
|
||||
public void log(String line) {
|
||||
LOG.debug(line);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return LOG.isDebugEnabled();
|
||||
}
|
||||
}
|
||||
@@ -16,21 +16,18 @@
|
||||
package org.jetbrains.ether;
|
||||
|
||||
import com.intellij.openapi.application.ex.PathManagerEx;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.PropertyConfigurator;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.Project;
|
||||
import org.jetbrains.jps.Sdk;
|
||||
import org.jetbrains.jps.api.CanceledStatus;
|
||||
import org.jetbrains.jps.artifacts.Artifact;
|
||||
import org.jetbrains.jps.idea.IdeaProjectLoader;
|
||||
import org.jetbrains.jps.incremental.*;
|
||||
import org.jetbrains.jps.incremental.artifacts.ArtifactBuilderLoggerImpl;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilderLogger;
|
||||
import org.jetbrains.jps.incremental.storage.BuildDataManager;
|
||||
import org.jetbrains.jps.incremental.storage.ProjectTimestamps;
|
||||
import org.jetbrains.jps.server.ClasspathBootstrap;
|
||||
@@ -40,104 +37,15 @@ import java.io.*;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* @author db
|
||||
* @since 26.07.11
|
||||
*/
|
||||
public abstract class IncrementalTestCase extends TestCase {
|
||||
private static class RootStripper {
|
||||
private String root;
|
||||
|
||||
void setRoot(final String root) {
|
||||
this.root = root;
|
||||
}
|
||||
|
||||
String strip(final String s) {
|
||||
if (s.startsWith(root)) {
|
||||
return s.substring(root.length());
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
static VolatileFileAppender myAppender = null;
|
||||
|
||||
static void setAppender (final VolatileFileAppender app) {
|
||||
myAppender = app;
|
||||
}
|
||||
|
||||
static void closeAppender () {
|
||||
if (myAppender != null) {
|
||||
try {
|
||||
myAppender.closeStream();
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class MyFactory implements Logger.Factory {
|
||||
@Override
|
||||
public Logger getLoggerInstance(String category) {
|
||||
final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(category);
|
||||
|
||||
final boolean affectedLogger = category.equals("#org.jetbrains.jps.incremental.java.JavaBuilder") ||
|
||||
category.equals("#org.jetbrains.jps.incremental.IncProjectBuilder");
|
||||
|
||||
return new Logger() {
|
||||
@Override
|
||||
public boolean isDebugEnabled() {
|
||||
return affectedLogger;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(@NonNls String message) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(@Nullable Throwable t) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(@NonNls String message, @Nullable Throwable t) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(@NonNls String message, @Nullable Throwable t, @NonNls String... details) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(@NonNls String message) {
|
||||
if (affectedLogger) {
|
||||
logger.info(stripper.strip(message));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(@NonNls String message, @Nullable Throwable t) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(@NonNls String message, @Nullable Throwable t) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLevel(Level level) {
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private static RootStripper stripper = new RootStripper();
|
||||
|
||||
private final String groupName;
|
||||
private final String tempDir = FileUtil.toSystemDependentName(new File(System.getProperty("java.io.tmpdir")).getCanonicalPath());
|
||||
|
||||
private Logger.Factory oldFactory;
|
||||
private String baseDir;
|
||||
private String workDir;
|
||||
|
||||
@@ -149,9 +57,6 @@ public abstract class IncrementalTestCase extends TestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
oldFactory = Logger.ourFactory;
|
||||
Logger.setFactory(new MyFactory());
|
||||
|
||||
super.setUp();
|
||||
|
||||
baseDir = PathManagerEx.getTestDataPath() + File.separator + "compileServer" + File.separator + "incremental" + File.separator;
|
||||
@@ -175,13 +80,7 @@ public abstract class IncrementalTestCase extends TestCase {
|
||||
super.tearDown();
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
closeAppender();
|
||||
delete(new File(workDir));
|
||||
}
|
||||
finally {
|
||||
Logger.setFactory(oldFactory);
|
||||
}
|
||||
delete(new File(workDir));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,23 +188,7 @@ public abstract class IncrementalTestCase extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
private void initLoggers() {
|
||||
final Properties properties = new Properties();
|
||||
|
||||
properties.setProperty("log4j.rootCategory", "INFO, A1");
|
||||
properties.setProperty("log4j.appender.A1", "org.jetbrains.ether.VolatileFileAppender");
|
||||
properties.setProperty("log4j.appender.A1.file", getWorkDir() + ".log");
|
||||
properties.setProperty("log4j.appender.A1.layout", "org.apache.log4j.PatternLayout");
|
||||
properties.setProperty("log4j.appender.A1.layout.ConversionPattern", "%m%n");
|
||||
|
||||
PropertyConfigurator.configure(properties);
|
||||
}
|
||||
|
||||
public void doTest() throws Exception {
|
||||
stripper.setRoot(FileUtil.toSystemIndependentName(getWorkDir() + File.separator));
|
||||
|
||||
initLoggers();
|
||||
|
||||
final String projectPath = getWorkDir() + File.separator + ".idea";
|
||||
final Project project = new Project();
|
||||
|
||||
@@ -319,11 +202,11 @@ public abstract class IncrementalTestCase extends TestCase {
|
||||
IdeaProjectLoader.loadFromPath(project, projectPath, "");
|
||||
|
||||
final File dataStorageRoot = Paths.getDataStorageRoot(project);
|
||||
final TestJavaBuilderLogger javaBuilderLogger = new TestJavaBuilderLogger(FileUtil.toSystemIndependentName(getWorkDir() + File.separator));
|
||||
final ProjectDescriptor projectDescriptor =
|
||||
new ProjectDescriptor(project, new FSState(true), new ProjectTimestamps(dataStorageRoot),
|
||||
new BuildDataManager(dataStorageRoot, true), BuildLoggingManager.DEFAULT);
|
||||
new BuildDataManager(dataStorageRoot, true), new BuildLoggingManager(new ArtifactBuilderLoggerImpl(), javaBuilderLogger));
|
||||
try {
|
||||
|
||||
new IncProjectBuilder(
|
||||
projectDescriptor, BuilderRegistry.getInstance(), Collections.<String, String>emptyMap(), CanceledStatus.NULL
|
||||
).build(
|
||||
@@ -343,11 +226,31 @@ public abstract class IncrementalTestCase extends TestCase {
|
||||
);
|
||||
|
||||
final String expected = StringUtil.convertLineSeparators(FileUtil.loadFile(new File(getBaseDir() + ".log")));
|
||||
final String actual = StringUtil.convertLineSeparators(FileUtil.loadFile(new File(getWorkDir() + ".log")));
|
||||
final String actual = javaBuilderLogger.myLog.toString();
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
finally {
|
||||
projectDescriptor.release();
|
||||
}
|
||||
}
|
||||
|
||||
private static class TestJavaBuilderLogger implements JavaBuilderLogger {
|
||||
private final String myRoot;
|
||||
private final StringBuilder myLog;
|
||||
|
||||
public TestJavaBuilderLogger(String root) {
|
||||
myRoot = root;
|
||||
myLog = new StringBuilder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log(String line) {
|
||||
myLog.append(StringUtil.trimStart(line, myRoot)).append('\n');
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
package org.jetbrains.ether;
|
||||
|
||||
import org.apache.log4j.FileAppender;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
* User: db
|
||||
* Date: 02.02.12
|
||||
* Time: 18:27
|
||||
* To change this template use File | Settings | File Templates.
|
||||
*/
|
||||
|
||||
public class VolatileFileAppender extends FileAppender {
|
||||
private OutputStream myStream = null;
|
||||
|
||||
public VolatileFileAppender() {
|
||||
super();
|
||||
IncrementalTestCase.setAppender(this);
|
||||
}
|
||||
|
||||
void closeStream () throws IOException {
|
||||
if (myStream != null){
|
||||
myStream.close();
|
||||
myStream = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected OutputStreamWriter createWriter(final OutputStream os) {
|
||||
myStream = os;
|
||||
return super.createWriter(os);
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -29,6 +29,7 @@ import org.jetbrains.jps.Project;
|
||||
import org.jetbrains.jps.api.CanceledStatus;
|
||||
import org.jetbrains.jps.artifacts.Artifact;
|
||||
import org.jetbrains.jps.incremental.*;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilderLoggerImpl;
|
||||
import org.jetbrains.jps.incremental.messages.BuildMessage;
|
||||
import org.jetbrains.jps.incremental.storage.BuildDataManager;
|
||||
import org.jetbrains.jps.incremental.storage.ProjectTimestamps;
|
||||
@@ -143,7 +144,8 @@ public abstract class ArtifactBuilderTestCase extends UsefulTestCase {
|
||||
final File dataStorageRoot = Paths.getDataStorageRoot(myProject);
|
||||
ProjectTimestamps timestamps = new ProjectTimestamps(dataStorageRoot);
|
||||
BuildDataManager dataManager = new BuildDataManager(dataStorageRoot, true);
|
||||
return new ProjectDescriptor(myProject, new FSState(true), timestamps, dataManager, new BuildLoggingManager(myArtifactBuilderLogger));
|
||||
return new ProjectDescriptor(myProject, new FSState(true), timestamps, dataManager, new BuildLoggingManager(myArtifactBuilderLogger,
|
||||
new JavaBuilderLoggerImpl()));
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
||||
Reference in New Issue
Block a user