c.s.tools.ide.analysis.modernize/test/unit/src/ide/analysis/modernize/HeaderTest.java
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/c.s.tools.ide.analysis.modernize/test/unit/src/ide/analysis/modernize/HeaderTest.java Wed Jun 07 20:23:29 2017 +0300
1.3 @@ -0,0 +1,62 @@
1.4 +package ide.analysis.modernize;
1.5 +
1.6 +import com.sun.tools.ide.analysis.modernize.impl.ModernizeFix;
1.7 +import com.sun.tools.ide.analysis.modernize.impl.YamlParser;
1.8 +import java.io.File;
1.9 +import java.nio.file.Files;
1.10 +import java.util.List;
1.11 +import static junit.framework.TestCase.fail;
1.12 +import org.netbeans.modules.cnd.test.CndCoreTestUtils;
1.13 +import static org.netbeans.modules.nativeexecution.test.NativeExecutionBaseTestCase.createTempFile;
1.14 +import org.openide.cookies.EditorCookie;
1.15 +import org.openide.filesystems.FileObject;
1.16 +import org.openide.filesystems.FileUtil;
1.17 +import org.openide.loaders.DataObject;
1.18 +
1.19 +/*
1.20 + * To change this license header, choose License Headers in Project Properties.
1.21 + * To change this template file, choose Tools | Templates
1.22 + * and open the template in the editor.
1.23 + */
1.24 +/**
1.25 + *
1.26 + * @author Ilia Gromov
1.27 + */
1.28 +public class HeaderTest extends TidyTestCase {
1.29 +
1.30 + private final String source = "src/llvm-header-guard.cpp";
1.31 + private final String header = "src/llvm-header-guard.h";
1.32 +
1.33 + public HeaderTest() {
1.34 + super("project-with-headers");
1.35 + }
1.36 +
1.37 + public void testLlvmHeaderGuard() {
1.38 + performTest(source, "llvm-header-guard", true);
1.39 + }
1.40 +
1.41 + @Override
1.42 + protected void processTestResults(List<ModernizeFix> fixes, String footerName) throws Exception {
1.43 + for (ModernizeFix fix : fixes) {
1.44 + fix.implement();
1.45 +
1.46 + for (YamlParser.Replacement replacement : fix.getReplacements()) {
1.47 + FileObject fo = FileUtil.toFileObject(new File(replacement.filePath));
1.48 +
1.49 + DataObject dObj = DataObject.find(fo);
1.50 + EditorCookie ec = dObj.getLookup().lookup(EditorCookie.class);
1.51 + ec.saveDocument();
1.52 + }
1.53 + }
1.54 +
1.55 + File diffFile = createTempFile("diff", null, false);
1.56 +
1.57 + boolean diff = CndCoreTestUtils.diff(new File(FileUtil.toFile(getProjectDir()), header), getGoldenFile(header), diffFile);
1.58 +
1.59 + if (diff) {
1.60 + byte[] readAllBytes = Files.readAllBytes(diffFile.toPath());
1.61 + System.err.println(new String(readAllBytes));
1.62 + fail();
1.63 + }
1.64 + }
1.65 +}