ilia@18403
|
1 |
package ide.analysis.modernize;
|
ilia@18403
|
2 |
|
ilia@18415
|
3 |
import com.sun.tools.ide.analysis.modernize.impl.ModernizeFix;
|
ilia@18415
|
4 |
import com.sun.tools.ide.analysis.modernize.impl.YamlParser;
|
ilia@18403
|
5 |
import java.io.File;
|
ilia@18403
|
6 |
import java.nio.file.Files;
|
ilia@18403
|
7 |
import java.util.List;
|
ilia@18403
|
8 |
import static junit.framework.TestCase.fail;
|
ilia@18403
|
9 |
import org.netbeans.modules.cnd.test.CndCoreTestUtils;
|
ilia@18403
|
10 |
import static org.netbeans.modules.nativeexecution.test.NativeExecutionBaseTestCase.createTempFile;
|
ilia@18403
|
11 |
import org.openide.cookies.EditorCookie;
|
ilia@18403
|
12 |
import org.openide.filesystems.FileObject;
|
ilia@18403
|
13 |
import org.openide.filesystems.FileUtil;
|
ilia@18403
|
14 |
import org.openide.loaders.DataObject;
|
ilia@18403
|
15 |
|
ilia@18403
|
16 |
/*
|
ilia@18403
|
17 |
* To change this license header, choose License Headers in Project Properties.
|
ilia@18403
|
18 |
* To change this template file, choose Tools | Templates
|
ilia@18403
|
19 |
* and open the template in the editor.
|
ilia@18403
|
20 |
*/
|
ilia@18403
|
21 |
/**
|
ilia@18403
|
22 |
*
|
ilia@18403
|
23 |
* @author Ilia Gromov
|
ilia@18403
|
24 |
*/
|
ilia@18403
|
25 |
public class HeaderTest extends TidyTestCase {
|
ilia@18403
|
26 |
|
ilia@18403
|
27 |
private final String source = "src/llvm-header-guard.cpp";
|
ilia@18403
|
28 |
private final String header = "src/llvm-header-guard.h";
|
ilia@18403
|
29 |
|
ilia@18403
|
30 |
public HeaderTest() {
|
ilia@18403
|
31 |
super("project-with-headers");
|
ilia@18403
|
32 |
}
|
ilia@18403
|
33 |
|
ilia@18403
|
34 |
public void testLlvmHeaderGuard() {
|
ilia@18403
|
35 |
performTest(source, "llvm-header-guard", true);
|
ilia@18403
|
36 |
}
|
ilia@18403
|
37 |
|
ilia@18403
|
38 |
@Override
|
ilia@18403
|
39 |
protected void processTestResults(List<ModernizeFix> fixes, String footerName) throws Exception {
|
ilia@18403
|
40 |
for (ModernizeFix fix : fixes) {
|
ilia@18403
|
41 |
fix.implement();
|
ilia@18403
|
42 |
|
ilia@18403
|
43 |
for (YamlParser.Replacement replacement : fix.getReplacements()) {
|
ilia@18403
|
44 |
FileObject fo = FileUtil.toFileObject(new File(replacement.filePath));
|
ilia@18403
|
45 |
|
ilia@18403
|
46 |
DataObject dObj = DataObject.find(fo);
|
ilia@18403
|
47 |
EditorCookie ec = dObj.getLookup().lookup(EditorCookie.class);
|
ilia@18403
|
48 |
ec.saveDocument();
|
ilia@18403
|
49 |
}
|
ilia@18403
|
50 |
}
|
ilia@18403
|
51 |
|
ilia@18403
|
52 |
File diffFile = createTempFile("diff", null, false);
|
ilia@18403
|
53 |
|
ilia@18403
|
54 |
boolean diff = CndCoreTestUtils.diff(new File(FileUtil.toFile(getProjectDir()), header), getGoldenFile(header), diffFile);
|
ilia@18403
|
55 |
|
ilia@18403
|
56 |
if (diff) {
|
ilia@18403
|
57 |
byte[] readAllBytes = Files.readAllBytes(diffFile.toPath());
|
ilia@18403
|
58 |
System.err.println(new String(readAllBytes));
|
ilia@18403
|
59 |
fail();
|
ilia@18403
|
60 |
}
|
ilia@18403
|
61 |
}
|
ilia@18403
|
62 |
}
|