c.s.tools.ide.analysis.modernize/test/unit/src/ide/analysis/modernize/HeaderTest.java
branchrelease82
changeset 18423 b9d9af239a0c
parent 18403 67d78b11d2e0
     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 +}