Skip to content
This repository has been archived by the owner on Apr 6, 2022. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
[FIXED JENKINS-14821]: Fixed equals method.
  • Loading branch information
uhafner committed Sep 10, 2012
1 parent dd8e92b commit 9152a9d
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 5 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Expand Up @@ -36,7 +36,7 @@
<dependency>
<groupId>org.jvnet.hudson.plugins</groupId>
<artifactId>analysis-core</artifactId>
<version>1.46</version>
<version>1.47-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jvnet.hudson.plugins</groupId>
Expand Down Expand Up @@ -77,5 +77,5 @@
</pluginRepository>
</pluginRepositories>

</project>
</project>

52 changes: 49 additions & 3 deletions src/test/java/hudson/plugins/warnings/WarningsDifferencerTest.java
@@ -1,19 +1,65 @@
package hudson.plugins.warnings;

import static junit.framework.Assert.*;
import hudson.plugins.analysis.core.AnnotationDifferencer;
import hudson.plugins.analysis.test.AnnotationDifferencerTest;
import hudson.plugins.analysis.util.TreeString;
import hudson.plugins.analysis.util.model.AbstractAnnotation;
import hudson.plugins.analysis.util.model.FileAnnotation;
import hudson.plugins.analysis.util.model.Priority;
import hudson.plugins.warnings.parser.Gcc4CompilerParser;
import hudson.plugins.warnings.parser.Warning;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.Set;

import org.junit.Test;

import com.google.common.collect.ImmutableSet;

/**
* Tests the {@link AnnotationDifferencer} for warnings.
*/
public class WarningsDifferencerTest extends AnnotationDifferencerTest {
@Override
public FileAnnotation createAnnotation(final String fileName, final Priority priority, final String message, final String category,
final String type, final int start, final int end) {
public FileAnnotation createAnnotation(final String fileName, final Priority priority,
final String message, final String category, final String type, final int start,
final int end) {
return new Warning(fileName, start, type, category, message, priority);
}
}

/**
* Verifies that equals works with {@link TreeString} optimized path names.
*
* @see <a href="http://issues.jenkins-ci.org/browse/JENKINS-14821">Issue 14821</a>
*/
@Test
public void testIssue14821() {
Collection<FileAnnotation> first = parse();
Collection<FileAnnotation> second = parse();

assertEquals("Wrong number of warnings", 16, first.size());
assertEquals("Wrong number of warnings", 16, second.size());

AbstractAnnotation.intern(first);

Set<FileAnnotation> newAnnotations = AnnotationDifferencer.getNewAnnotations(ImmutableSet.copyOf(first), ImmutableSet.copyOf(second));
assertEquals("Wrong number of new warnings", 0, newAnnotations.size());
Set<FileAnnotation> fixedAnnotations = AnnotationDifferencer.getFixedAnnotations(ImmutableSet.copyOf(first), ImmutableSet.copyOf(second));
assertEquals("Wrong number of fixed warnings", 0, fixedAnnotations.size());
}

private Collection<FileAnnotation> parse() {
try {
InputStream inputStream = WarningsDifferencerTest.class .getResourceAsStream("issue14821.txt");

return new Gcc4CompilerParser().parse(new InputStreamReader(inputStream));
}
catch (IOException exception) {
throw new IllegalArgumentException(exception);
}
}
}
32 changes: 32 additions & 0 deletions src/test/resources/hudson/plugins/warnings/issue14821.txt
@@ -0,0 +1,32 @@
main.c: In function "main":
main.c:2:1: warning: control reaches end of non-void function [-Wreturn-type]
main2.c: In function "main":
main2.c:2:1: warning: control reaches end of non-void function [-Wreturn-type]
main2.c: In function "main":
main2.c:3:1: warning: control reaches end of non-void function [-Wreturn-type]
main2.c: In function "main":
main2.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
main.c: In function "main":
main.c:3:1: warning: control reaches end of non-void function [-Wreturn-type]
main.c: In function "main":
main.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
main.c: In function "main":
main.c:5:1: warning: control reaches end of non-void function [-Wreturn-type]
main2.c: In function "main":
main2.c:5:1: warning: control reaches end of non-void function [-Wreturn-type]
main3.c: In function "main":
main3.c:2:1: warning: control reaches end of non-void function [-Wreturn-type]
main4.c: In function "main":
main4.c:2:1: warning: control reaches end of non-void function [-Wreturn-type]
main4.c: In function "main":
main4.c:3:1: warning: control reaches end of non-void function [-Wreturn-type]
main4.c: In function "main":
main4.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
main3.c: In function "main":
main3.c:3:1: warning: control reaches end of non-void function [-Wreturn-type]
main3.c: In function "main":
main3.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
main3.c: In function "main":
main3.c:5:1: warning: control reaches end of non-void function [-Wreturn-type]
main4.c: In function "main":
main4.c:5:1: warning: control reaches end of non-void function [-Wreturn-type]

0 comments on commit 9152a9d

Please sign in to comment.