You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/18 23:19:01 UTC
[sling-org-apache-sling-commons-compiler] 30/36: Add test case for
SLING-7111
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-compiler.git
commit 9a9e535ddff62c96312b5bf2bebc5c4dd7fb52e1
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Sep 6 17:37:30 2017 +0000
Add test case for SLING-7111
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1807508 13f79535-47bb-0310-9956-ffa450edef68
---
.../commons/compiler/impl/CompilerJava5Test.java | 47 +++++++++++++++++++++-
src/test/resources/JavaFailure | 26 ++++++++++++
2 files changed, 71 insertions(+), 2 deletions(-)
diff --git a/src/test/java/org/apache/sling/commons/compiler/impl/CompilerJava5Test.java b/src/test/java/org/apache/sling/commons/compiler/impl/CompilerJava5Test.java
index ac5f0b5..5540ce9 100644
--- a/src/test/java/org/apache/sling/commons/compiler/impl/CompilerJava5Test.java
+++ b/src/test/java/org/apache/sling/commons/compiler/impl/CompilerJava5Test.java
@@ -22,21 +22,29 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
-
-import junit.framework.TestCase;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.sling.commons.classloader.ClassLoaderWriter;
import org.apache.sling.commons.compiler.CompilationResult;
import org.apache.sling.commons.compiler.CompilationUnit;
import org.apache.sling.commons.compiler.Options;
+import junit.framework.TestCase;
+
/**
* Test case for java 5 support
*/
public class CompilerJava5Test extends TestCase
implements ClassLoaderWriter {
+ private final List<String> deletedPath = new ArrayList<>();
+
+ private final List<String> outputPath = new ArrayList<>();
+
public void testJava5Support() throws Exception {
+ deletedPath.clear();
+ outputPath.clear();
String sourceFile = "Java5Test";
CompilationUnit unit = createCompileUnit(sourceFile);
@@ -48,6 +56,30 @@ public class CompilerJava5Test extends TestCase
final CompilationResult result = new EclipseJavaCompiler().compile(new CompilationUnit[]{unit}, options);
assertNotNull(result);
assertNull(result.getErrors());
+ assertEquals(1, deletedPath.size());
+ assertEquals(1, outputPath.size());
+ assertEquals("/org/apache/sling/commons/compiler/test/Java5Test.class", deletedPath.get(0));
+ assertEquals("/org/apache/sling/commons/compiler/test/Java5Test.class", outputPath.get(0));
+ }
+
+ public void testFailedCompilation() throws Exception {
+ deletedPath.clear();
+ outputPath.clear();
+
+ String sourceFile = "JavaFailure";
+
+ CompilationUnit unit = createCompileUnit(sourceFile);
+ final Options options = new Options();
+ options.put(Options.KEY_SOURCE_VERSION, Options.VERSION_1_5);
+ options.put(Options.KEY_CLASS_LOADER_WRITER, this);
+ options.put(Options.KEY_CLASS_LOADER, this.getClass().getClassLoader());
+
+ final CompilationResult result = new EclipseJavaCompiler().compile(new CompilationUnit[]{unit}, options);
+ assertNotNull(result);
+ assertNotNull(result.getErrors());
+ assertEquals(1, deletedPath.size());
+ assertEquals("/org/apache/sling/commons/compiler/test/JavaFailure.class", deletedPath.get(0));
+ assertEquals(0, outputPath.size());
}
//--------------------------------------------------------< misc. helpers >
@@ -58,6 +90,7 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.compiler.CompilationUnit#getMainClassName()
*/
+ @Override
public String getMainClassName() {
return "org.apache.sling.commons.compiler.test." + sourceFile;
}
@@ -65,6 +98,7 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.compiler.CompilationUnit#getSource()
*/
+ @Override
public Reader getSource() throws IOException {
InputStream in = getClass().getClassLoader().getResourceAsStream(sourceFile);
return new InputStreamReader(in, "UTF-8");
@@ -73,6 +107,7 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.compiler.CompilationUnit#getLastModified()
*/
+ @Override
public long getLastModified() {
return 0;
}
@@ -82,13 +117,16 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#delete(java.lang.String)
*/
+ @Override
public boolean delete(String path) {
+ deletedPath.add(path);
return false;
}
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#getInputStream(java.lang.String)
*/
+ @Override
public InputStream getInputStream(String path) throws IOException {
return null;
}
@@ -96,6 +134,7 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#getLastModified(java.lang.String)
*/
+ @Override
public long getLastModified(String path) {
return -1;
}
@@ -103,13 +142,16 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#getOutputStream(java.lang.String)
*/
+ @Override
public OutputStream getOutputStream(String path) {
+ outputPath.add(path);
return new ByteArrayOutputStream();
}
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#rename(java.lang.String, java.lang.String)
*/
+ @Override
public boolean rename(String oldPath, String newPath) {
return false;
}
@@ -117,6 +159,7 @@ public class CompilerJava5Test extends TestCase
/**
* @see org.apache.sling.commons.classloader.ClassLoaderWriter#getClassLoader()
*/
+ @Override
public ClassLoader getClassLoader() {
return null;
}
diff --git a/src/test/resources/JavaFailure b/src/test/resources/JavaFailure
new file mode 100644
index 0000000..cd4045c
--- /dev/null
+++ b/src/test/resources/JavaFailure
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.sling.commons.compiler.test;
+
+import java.util.List;
+
+/**
+ * Class to test compilation failure
+ */
+public class Java5Test {
+ xyz
+}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.