public void compareFile(DirectoryRunner.TestParams params, File file) throws Throwable { StringBuilder messages = new StringBuilder(); StringWriter result = new StringWriter(); transformCode(messages, result, file); compare( file.getName(), readFile(params.getAfterDirectory(), file, false), result.toString(), readFile(params.getMessagesDirectory(), file, true), messages.toString(), params.printErrors()); }
public boolean compareFile(DirectoryRunner.TestParams params, File file) throws Throwable { StringBuilder messages = new StringBuilder(); StringWriter writer = new StringWriter(); transformCode(messages, writer, file); String expectedFile = readFile(params.getAfterDirectory(), file, false); String expectedMessages = readFile(params.getMessagesDirectory(), file, true); StringReader r = new StringReader(expectedFile); BufferedReader br = new BufferedReader(r); if ("//ignore".equals(br.readLine())) return false; compare( file.getName(), expectedFile, writer.toString(), expectedMessages, messages.toString(), params.printErrors()); return true; }
public final FileTester createTester(final DirectoryRunner.TestParams params, final File file) 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; } catch (AssertionError ae) { directiveFailure = ae; } String fileName = file.getName(); final LombokTestSource expected = LombokTestSource.read(params.getAfterDirectory(), params.getMessagesDirectory(), fileName); if (expected.isIgnore()) return null; if (!expected.versionWithinLimit(params.getVersion())) return null; final LombokTestSource sourceDirectives_ = sourceDirectives; final AssertionError directiveFailure_ = directiveFailure; return new FileTester() { @Override public void runTest() throws Throwable { if (directiveFailure_ != null) throw directiveFailure_; LinkedHashSet<CompilerMessage> messages = new LinkedHashSet<CompilerMessage>(); StringWriter writer = new StringWriter(); LombokConfiguration.overrideConfigurationResolverFactory( new ConfigurationResolverFactory() { @Override public ConfigurationResolver createResolver(AST<?, ?, ?> ast) { return sourceDirectives_.getConfiguration(); } }); boolean changed = transformCode( messages, writer, file, sourceDirectives_.getSpecifiedEncoding(), sourceDirectives_.getFormatPreferences()); boolean forceUnchanged = sourceDirectives_.forceUnchanged() || sourceDirectives_.isSkipCompareContent(); if (params.expectChanges() && !forceUnchanged && !changed) messages.add(new CompilerMessage(-1, -1, true, "not flagged modified")); if (!params.expectChanges() && changed) messages.add(new CompilerMessage(-1, -1, true, "unexpected modification")); compare( file.getName(), expected, writer.toString(), messages, params.printErrors(), sourceDirectives_.isSkipCompareContent() || expected.isSkipCompareContent()); } }; }