Skip to content

Commit c2cf78a

Browse files
author
Omar WALDMANN
authored
Merge pull request #156 from lequal/v3.1.0-dev
v3.1.0
2 parents 61c3739 + cc8b6ef commit c2cf78a

File tree

185 files changed

+10535
-1474
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+10535
-1474
lines changed

.travis.yml

+3
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@ script :
66
- mvn install -DskipTests
77
- mvn verify
88
sudo: false
9+
addons:
10+
sonarcloud:
11+
organization: "lequal"

README.md

+36
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,42 @@ i-Code CNES is a static code analysis tool to help developers write code complia
66

77
All the informations on CNES standards coverage, and rules availabilities and limitations can be read in the [documentation](https://github.com/lequal/i-CodeCNES/tree/master/documentation).
88

9+
Release 3.1.0
10+
=============
11+
## New features
12+
* New command line #133
13+
* New parsing error handling, a violation named "Parser error" is added instead of suspend the analysis. #154
14+
* New rules (Shell)
15+
* COM.DATA.Initialisation ( fix #113 )
16+
* COM.DATA.Invariant ( fix #114 )
17+
* COM.FLOW.FilePath ( fix #115 )
18+
* COM.FLOW.Recursion ( fix #116 )
19+
* COM.INST.BoolNegation ( fix #117 )
20+
* COM.NAME.Homonymy ( fix #118 )
21+
* COM.PRES.Indent ( fix #119 )
22+
* COM.PRES.LengthLine ( fix #120 )
23+
* SH.FLOW.CheckCodeReturn ( fix #121 )
24+
* SH.Ref.Export ( fix #122 #52 #138 #137)
25+
* SH.SYNC.Signals #123
26+
* New metrics
27+
* SH.MET.LineOfComment
28+
* F77.MET.LineOfComment
29+
* F90.MET.LineOfComment
30+
31+
## Fixes
32+
* Shell
33+
* All checkers :
34+
* Function correction on FUNCSTART and FNAME #138 #137 #150
35+
* COM.FLOW.CaseSwitch :
36+
* Case handling fixed #135
37+
* Function localization fixed #52
38+
* COM.DATA.LoopCondition
39+
* Function localization fixed #52
40+
* COM.DESIGN.ActiveWait
41+
* Function localization fixed #52
42+
* COM.FLOW.Abort
43+
* Function localization fixed #52
44+
945
Release 3.0.1
1046
=============
1147
* Fix of Eclipse's plug-in performances #101
Binary file not shown.

fr.cnes.analysis.tools.analyzer/META-INF/MANIFEST.MF

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: i-Code CNES Analyzer
44
Bundle-SymbolicName: fr.cnes.analysis.tools.analyzer;singleton:=true
5-
Bundle-Version: 3.0.1.qualifier
5+
Bundle-Version: 3.1.0.qualifier
66
Bundle-Activator: fr.cnes.analysis.tools.analyzer.Activator
77
Require-Bundle: org.eclipse.core.resources,
88
org.eclipse.core.runtime

fr.cnes.analysis.tools.analyzer/plugin.xml

+18
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,23 @@
33
<plugin>
44
<extension-point id="languages" name="languages" schema="schema/languages.exsd"/>
55
<extension-point id="checks" name="checks" schema="schema/checks.exsd"/>
6+
<extension
7+
id="id1"
8+
name="name"
9+
point="fr.cnes.analysis.tools.analyzer.checks">
10+
<check
11+
class="fr.cnes.analysis.tools.analyzer.datas.ParsingError"
12+
id="fr.cnes.analysis.tools.analyzer.parsingError"
13+
languageId="fr.cnes.analysis.tools.analyzer.parsingError"
14+
name="Parsing Error">
15+
</check>
16+
</extension>
17+
<extension
18+
point="fr.cnes.analysis.tools.analyzer.languages">
19+
<language
20+
id="fr.cnes.analysis.tools.analyzer.parsingError"
21+
name="Parsing Error">
22+
</language>
23+
</extension>
624

725
</plugin>

fr.cnes.analysis.tools.analyzer/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>fr.cnes.icode</groupId>
88
<artifactId>fr.cnes.icode.parent</artifactId>
9-
<version>3.0.1-SNAPSHOT</version>
9+
<version>3.1.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>fr.cnes.analysis.tools.analyzer</artifactId>

fr.cnes.analysis.tools.analyzer/src/fr/cnes/analysis/tools/analyzer/CallableChecker.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import fr.cnes.analysis.tools.analyzer.datas.AbstractChecker;
1616
import fr.cnes.analysis.tools.analyzer.datas.CheckResult;
17+
import fr.cnes.analysis.tools.analyzer.datas.ParsingError;
1718
import fr.cnes.analysis.tools.analyzer.exception.JFlexException;
1819
import fr.cnes.analysis.tools.analyzer.logger.ICodeLogger;
1920

@@ -62,7 +63,17 @@ public List<CheckResult> call() throws IOException, JFlexException {
6263
ICodeLogger.entering(CLASS, method);
6364
final List<CheckResult> results = new ArrayList<>();
6465
rule.setInputFile(file);
65-
results.addAll(rule.run());
66+
try {
67+
results.addAll(rule.run());
68+
} catch (JFlexException exception) {
69+
ICodeLogger.error(exception.getFileName(), exception.getRuleName(), exception.getMessage());
70+
CheckResult result = new CheckResult(ParsingError.PARSING_ERROR_NAME,ParsingError.PARSING_ERROR_ID, ParsingError.PARSING_ERROR_LANGUAGE);
71+
result.setLine(Integer.valueOf(exception.getLine()));
72+
result.setLocation(exception.getRuleName() +"[l"+exception.getLine()+":c"+exception.getColumn()+"]");
73+
result.setMessage(exception.getErrorMessage());
74+
result.setFile(file);
75+
results.add(result);
76+
}
6677
ICodeLogger.exiting(CLASS, method, results);
6778
return results;
6879
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package fr.cnes.analysis.tools.analyzer.datas;
2+
3+
import java.io.IOException;
4+
import java.util.List;
5+
6+
/**
7+
* This rule is intended to add record parsing exceptions.
8+
*
9+
*/
10+
public class ParsingError extends AbstractChecker {
11+
12+
public final static String PARSING_ERROR_ID = "fr.cnes.analysis.tools.analyzer.parsingError";
13+
public final static String PARSING_ERROR_LANGUAGE = "fr.cnes.analysis.tools.analyzer.parsingError";
14+
public final static String PARSING_ERROR_NAME = "Parsing error";
15+
16+
public ParsingError() {
17+
}
18+
19+
20+
@Override
21+
public List<CheckResult> run() throws IOException {
22+
return getCheckResults();
23+
}
24+
}

fr.cnes.analysis.tools.analyzer/src/fr/cnes/analysis/tools/analyzer/exception/JFlexException.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,9 @@ private static String errorMessage(String pRuleName, String pFileName, String pM
9393
+ pMessage + BLANK + "CheckerId: " + pRuleName + BLANK + "File: "
9494
+ pFileName + BLANK + "Line:" + pLine + BLANK + "Column:" + pColumn + BLANK
9595

96-
+ "Last word scanned : [" + pLastScan + "] [" + toDecimalCode(pLastScan)
96+
+ "Last word scanned: [" + pLastScan + "] [" + toDecimalCode(pLastScan)
9797
+ "]" + BLANK
98-
+ "Please report this issue on : https://github.com/dupuisa/i-CodeCNES/issues/";
98+
+ "Please report this issue on : https://github.com/lequal/i-CodeCNES/issues/";
9999
return message;
100100
}
101101

fr.cnes.analysis.tools.export.csv/META-INF/MANIFEST.MF

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: i-Code CNES CSV Export
44
Bundle-SymbolicName: fr.cnes.analysis.tools.export.csv;singleton:=true
5-
Bundle-Version: 3.0.1.qualifier
5+
Bundle-Version: 3.1.0.qualifier
66
Bundle-Activator: fr.cnes.analysis.tools.export.csv.Activator
77
Bundle-Vendor: CNES
88
Require-Bundle: org.eclipse.core.runtime,

fr.cnes.analysis.tools.export.csv/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>fr.cnes.icode</groupId>
88
<artifactId>fr.cnes.icode.parent</artifactId>
9-
<version>3.0.1-SNAPSHOT</version>
9+
<version>3.1.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>fr.cnes.analysis.tools.export.csv</artifactId>

fr.cnes.analysis.tools.export.xml/META-INF/MANIFEST.MF

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: i-Code CNES XML Export
44
Bundle-SymbolicName: fr.cnes.analysis.tools.export.xml;singleton:=true
5-
Bundle-Version: 3.0.1.qualifier
5+
Bundle-Version: 3.1.0.qualifier
66
Bundle-Activator: fr.cnes.analysis.tools.export.xml.Activator
77
Bundle-Vendor: CNES
88
Require-Bundle: fr.cnes.analysis.tools.analyzer;bundle-version="2.0.0",

fr.cnes.analysis.tools.export.xml/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>fr.cnes.icode</groupId>
88
<artifactId>fr.cnes.icode.parent</artifactId>
9-
<version>3.0.1-SNAPSHOT</version>
9+
<version>3.1.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>fr.cnes.analysis.tools.export.xml</artifactId>

fr.cnes.analysis.tools.export/META-INF/MANIFEST.MF

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: i-Code CNES Export
44
Bundle-SymbolicName: fr.cnes.analysis.tools.export;singleton:=true
5-
Bundle-Version: 3.0.1.qualifier
5+
Bundle-Version: 3.1.0.qualifier
66
Bundle-Vendor: CNES
77
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
88
Require-Bundle: fr.cnes.analysis.tools.analyzer,

fr.cnes.analysis.tools.export/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>fr.cnes.icode</groupId>
88
<artifactId>fr.cnes.icode.parent</artifactId>
9-
<version>3.0.1-SNAPSHOT</version>
9+
<version>3.1.0-SNAPSHOT</version>
1010
</parent>
1111

1212
<artifactId>fr.cnes.analysis.tools.export</artifactId>

fr.cnes.analysis.tools.export/src/fr/cnes/analysis/tools/export/ExportService.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,24 @@ public class ExportService implements IExportService {
4949
public void export(List<CheckResult> checkResults, File outputFile,
5050
Map<String, String> parameters) throws NoContributorMatchingException,
5151
NoExtensionIndicatedException, IOException, CoreException {
52+
export(checkResults, outputFile, parameters,
53+
ExportUtils.getExtensionFromFilePath(outputFile.getAbsolutePath()));
54+
}
55+
56+
/*
57+
* (non-Javadoc)
58+
*
59+
* @see fr.cnes.analysis.tools.export.IExportService#export(java.util.List,
60+
* java.io.File, java.util.Map, java.lang.String)
61+
*/
62+
@Override
63+
public void export(List<CheckResult> pCheckResults, File pOutputFile,
64+
Map<String, String> pParameters, String pFormat) throws NoContributorMatchingException,
65+
NoExtensionIndicatedException, IOException, CoreException {
5266
final String method = "export";
5367
ICodeLogger.entering(CLASS, method);
54-
final IExporter exporter = getExportClass(
55-
ExportUtils.getExtensionFromFilePath(outputFile.getAbsolutePath()));
56-
exporter.export(checkResults, outputFile, parameters);
68+
final IExporter exporter = getExportClass(pFormat);
69+
exporter.export(pCheckResults, pOutputFile, pParameters);
5770
ICodeLogger.exiting(CLASS, method);
5871
}
5972

fr.cnes.analysis.tools.export/src/fr/cnes/analysis/tools/export/IExportService.java

+28
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,32 @@ public boolean hasParameters(String formatExtension)
8282
*/
8383
public Map<String, String> getParameters(String formatExtension)
8484
throws NoContributorMatchingException, CoreException;
85+
86+
/**
87+
* This function export each {@link CheckResult} of {@code checkResults}
88+
* parameter into the {@link File} parameter.
89+
*
90+
* @param pCheckResults
91+
* to export.
92+
* @param pOutputFile
93+
* to use for the export.
94+
* @param pParameters
95+
* parameter required by the export plugin.
96+
* @param pFormat
97+
* define the format of the results file.
98+
* @throws NoContributorMatchingException
99+
* when a format can not be handled by the @link
100+
* {@link ExportService} service.
101+
* @throws NoExtensionIndicatedException
102+
* when the {@code outputFile} has no extension indicated.
103+
* @throws IOException
104+
* when the export failed due to a {@link java.io.File}
105+
* exception.
106+
* @throws CoreException
107+
* when failing to create executable from contributor of
108+
* {@link #EXPORT_EXTENSIONPOINT_ID}'s attribute
109+
* {@link #EXPORT_EXTENSIONPOINT_ATTRIBUTE_EXPORTCLASS}.
110+
*/
111+
void export(List<CheckResult> pCheckResults, File pOutputFile, Map<String, String> pParameters, String pFormat)
112+
throws NoContributorMatchingException, NoExtensionIndicatedException, IOException, CoreException;
85113
}

fr.cnes.analysis.tools.fortran77.metrics/META-INF/MANIFEST.MF

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: i-Code CNES F77 Metrics
44
Bundle-SymbolicName: fr.cnes.analysis.tools.fortran77.metrics;singleton:=true
5-
Bundle-Version: 3.0.1.qualifier
5+
Bundle-Version: 3.1.0.qualifier
66
Bundle-Activator: fr.cnes.analysis.tools.fortran77.metrics.Activator
77
Require-Bundle: org.eclipse.core.runtime,
88
fr.cnes.analysis.tools.analyzer;bundle-version="2.0.0"

0 commit comments

Comments
 (0)