package com.redhat.ceylon.compiler.java.test.reporting; import java.util.Arrays; import javax.tools.Diagnostic.Kind; import org.junit.Test; import com.redhat.ceylon.compiler.java.test.CompilerError; import com.redhat.ceylon.compiler.java.test.CompilerTests; public class ReportingTests extends CompilerTests { public ReportingTests() { super(); defaultOptions.clear(); defaultOptions.addAll(Arrays.asList("-out", destDir, "-cacherep", cacheDir, "-g", "-cp", getClassPathAsPath())); } @Test public void testWarningSuppressionCmdLine() { } @Test public void testAnnoSuppressionUnusedDecl() { compilesWithoutWarnings("UnusedDeclaration.ceylon"); } @Test public void testOptionSuppressionUnusedImport() { compilesWithoutWarnings(Arrays.asList("-suppress-warnings", "unusedImport"), "UnusedImport.ceylon"); } @Test public void testAnnoSuppressesNothing() { assertErrors(new String[]{"SuppressesNothing.ceylon"}, defaultOptions, null, new CompilerError(Kind.WARNING, "", 1, "suppresses no warnings")); } @Test public void testAnnoAlreadySuppressed() { // We warn about warnings which are suppressed by an annotation on an outer declaration assertErrors(new String[]{"AlreadySuppressed.ceylon"}, defaultOptions, null, new CompilerError(Kind.WARNING, "", 3, "warnings already suppressed by annotation")); } @Test public void testAnnoAlreadySuppressed2() { // defaultOptions.add("-suppress-warnings"); defaultOptions.add("unusedDeclaration"); assertErrors(new String[]{"AlreadySuppressed.ceylon"}, defaultOptions, null, new CompilerError(Kind.WARNING, "", 3, "warnings already suppressed by annotation")); } @Test public void testUnknownWarningInAnno() { assertErrors(new String[]{"UnknownWarningInAnno.ceylon"}, defaultOptions, null, new CompilerError(Kind.WARNING, "", 1, "unknown warning: blahblah")); } }