aboutsummaryrefslogtreecommitdiff
path: root/test/core
diff options
context:
space:
mode:
Diffstat (limited to 'test/core')
-rw-r--r--test/core/src/lombok/AbstractRunTests.java21
-rw-r--r--test/core/src/lombok/DirectoryRunner.java4
-rw-r--r--test/core/src/lombok/LombokTestSource.java18
-rw-r--r--test/core/src/lombok/core/TestSingulars.java20
4 files changed, 34 insertions, 29 deletions
diff --git a/test/core/src/lombok/AbstractRunTests.java b/test/core/src/lombok/AbstractRunTests.java
index 934c74c0..1a454585 100644
--- a/test/core/src/lombok/AbstractRunTests.java
+++ b/test/core/src/lombok/AbstractRunTests.java
@@ -55,16 +55,15 @@ public abstract class AbstractRunTests {
this.dumpActualFilesHere = findPlaceToDumpActualFiles();
}
- public final FileTester createTester(final DirectoryRunner.TestParams params, final File file, int version) throws IOException {
+ public final FileTester createTester(final DirectoryRunner.TestParams params, final File file, String platform, int version) throws IOException {
ConfigurationKeysLoader.LoaderLoader.loadAllConfigurationKeys();
AssertionError directiveFailure = null;
LombokTestSource sourceDirectives = null;
try {
sourceDirectives = LombokTestSource.readDirectives(file);
if (sourceDirectives.isIgnore()) return null;
- if (!sourceDirectives.versionWithinLimit(params.getVersion())) return null;
- if (!sourceDirectives.versionWithinLimit(getClasspathVersion())) return null;
if (!sourceDirectives.versionWithinLimit(version)) return null;
+ if (!sourceDirectives.runOnPlatform(platform)) return null;
} catch (AssertionError ae) {
directiveFailure = ae;
}
@@ -100,22 +99,6 @@ public abstract class AbstractRunTests {
};
}
- private static int getClasspathVersion() {
- try {
- Class.forName("java.lang.AutoCloseable");
- } catch (ClassNotFoundException e) {
- return 6;
- }
-
- try {
- Class.forName("java.util.stream.Stream");
- } catch (ClassNotFoundException e) {
- return 7;
- }
-
- return 8;
- }
-
protected abstract boolean transformCode(Collection<CompilerMessage> messages, StringWriter result, File file, String encoding, Map<String, String> formatPreferences) throws Throwable;
protected String readFile(File file) throws IOException {
diff --git a/test/core/src/lombok/DirectoryRunner.java b/test/core/src/lombok/DirectoryRunner.java
index c9a5de31..72f01de1 100644
--- a/test/core/src/lombok/DirectoryRunner.java
+++ b/test/core/src/lombok/DirectoryRunner.java
@@ -157,9 +157,9 @@ public class DirectoryRunner extends Runner {
File file = new File(params.getBeforeDirectory(), fileName);
switch (params.getCompiler()) {
case DELOMBOK:
- return new RunTestsViaDelombok().createTester(params, file, params.getVersion());
+ return new RunTestsViaDelombok().createTester(params, file, "javac", params.getVersion());
case ECJ:
- return new RunTestsViaEcj().createTester(params, file, params.getVersion());
+ return new RunTestsViaEcj().createTester(params, file, "ecj", params.getVersion());
default:
case JAVAC:
throw new UnsupportedOperationException();
diff --git a/test/core/src/lombok/LombokTestSource.java b/test/core/src/lombok/LombokTestSource.java
index 16f9f49f..31f7db3e 100644
--- a/test/core/src/lombok/LombokTestSource.java
+++ b/test/core/src/lombok/LombokTestSource.java
@@ -29,6 +29,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -55,7 +56,14 @@ public class LombokTestSource {
private final int versionLowerLimit, versionUpperLimit;
private final ConfigurationResolver configuration;
private final String specifiedEncoding;
+ private final List<String> platforms;
+ public boolean runOnPlatform(String platform) {
+ if (platforms == null || platforms.isEmpty()) return true;
+ for (String pl : platforms) if (pl.equalsIgnoreCase(platform)) return true;
+ return false;
+ }
+
public boolean versionWithinLimit(int version) {
return version >= versionLowerLimit && version <= versionUpperLimit;
}
@@ -145,6 +153,7 @@ public class LombokTestSource {
boolean unchanged = false;
String encoding = null;
Map<String, String> formats = new HashMap<String, String>();
+ String[] platformLimit = null;
for (String directive : directives) {
directive = directive.trim();
@@ -164,6 +173,14 @@ public class LombokTestSource {
continue;
}
+ if (lc.startsWith("platform ")) {
+ String platformDesc = lc.substring("platform ".length());
+ int idx = platformDesc.indexOf(':');
+ if (idx != -1) platformDesc = platformDesc.substring(0, idx).trim();
+ platformLimit = platformDesc.split("\\s*,\\s*");
+ continue;
+ }
+
if (lc.startsWith("version ")) {
int[] limits = parseVersionLimit(lc.substring(7).trim());
if (limits == null) {
@@ -207,6 +224,7 @@ public class LombokTestSource {
this.ignore = ignore;
this.skipCompareContent = skipCompareContent;
this.unchanged = unchanged;
+ this.platforms = platformLimit == null ? null : Arrays.asList(platformLimit);
ConfigurationProblemReporter reporter = new ConfigurationProblemReporter() {
@Override public void report(String sourceDescription, String problem, int lineNumber, CharSequence line) {
Assert.fail("Problem on directive line: " + problem + " at conf line #" + lineNumber + " (" + line + ")");
diff --git a/test/core/src/lombok/core/TestSingulars.java b/test/core/src/lombok/core/TestSingulars.java
index 1134af08..4560615d 100644
--- a/test/core/src/lombok/core/TestSingulars.java
+++ b/test/core/src/lombok/core/TestSingulars.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 The Project Lombok Authors.
+ * Copyright (C) 2015-2017 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -22,31 +22,35 @@
package lombok.core;
import static lombok.core.handlers.Singulars.autoSingularize;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
import org.junit.Test;
public class TestSingulars {
@Test
public void testSingulars() {
- assertEquals(null, autoSingularize("axes"));
+ assertNull("axes", autoSingularize("axes"));
assertEquals("adjective", autoSingularize("adjectives"));
assertEquals("bus", autoSingularize("buses"));
assertEquals("octopus", autoSingularize("octopodes"));
- assertEquals(null, autoSingularize("octopi"));
+ assertNull("octopi", autoSingularize("octopi"));
assertEquals("elf", autoSingularize("elves"));
assertEquals("jack", autoSingularize("jacks"));
assertEquals("colloquy", autoSingularize("colloquies"));
- assertEquals(null, autoSingularize("series"));
+ assertNull("series", autoSingularize("series"));
assertEquals("man", autoSingularize("men"));
- assertEquals(null, autoSingularize("highwaymen"));
+ assertNull("highwaymen", autoSingularize("highwaymen"));
assertEquals("caveMan", autoSingularize("caveMen"));
- assertEquals(null, autoSingularize("jackss"));
- assertEquals(null, autoSingularize("virus"));
+ assertNull("jackss", autoSingularize("jackss"));
+ assertNull("virus", autoSingularize("virus"));
assertEquals("quiz", autoSingularize("quizzes"));
assertEquals("database", autoSingularize("databases"));
assertEquals("dataBase", autoSingularize("dataBases"));
assertEquals("Query", autoSingularize("Queries"));
assertEquals("Movie", autoSingularize("Movies"));
+ assertEquals("cafe", autoSingularize("cafes"));
+ assertNull("caves", autoSingularize("caves"));
+ assertEquals("leaf", autoSingularize("leaves"));
+ assertEquals("autosave", autoSingularize("autosaves"));
}
}