bake-toolkit 2.40.0 → 2.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/bakeqac +25 -21
- data/lib/bakeqac/options/options.rb +52 -11
- data/lib/common/root.rb +1 -1
- data/lib/common/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47018509fb45c727f0be0b11470726b01d13606a
|
4
|
+
data.tar.gz: 3b0fa9295363deb6ee596df9c4c3d1c87d4c40e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0ba48431dba2e59155c9d8026acce4a9f1d23a844ae4c347131d71a1b7150a24201e62f0b4afbd7e4c9a3581a12d2ee4a1a993c951ca744ce25aa82ae59889f
|
7
|
+
data.tar.gz: aa757eb55d06270e41ecfb84d885ec0db3d94b37702f589cfd39f965f4df8870f1caed7b8126fffaeff6c3ba94a92d1119dced7509a9b2e49aab885de98a0008
|
data/bin/bakeqac
CHANGED
@@ -321,33 +321,37 @@ $cmdRemoveLocks = qaExe + ["admin", "--qaf-project", @options.qacdata, "--remove
|
|
321
321
|
|
322
322
|
# 3. print
|
323
323
|
numberOfMessages = 0
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
htmlFiles = Dir.glob("components/qacpp*/doc-en_US/messages/%04d.html" % errorNum)
|
334
|
-
|
324
|
+
sortedLines.each do |line|
|
325
|
+
success = true if line.include?"The specified project does not have any source files" # to proceed we assume that this is a valid scenario
|
326
|
+
if (!@options.qacnoformat && line.start_with?("MSG: ")) || (@options.qacnoformat && line.include?(": Msg("))
|
327
|
+
Bake.formatter.printWarning(line)
|
328
|
+
if @options.qacdoc
|
329
|
+
errorNumScan = line.scan(/[^\(]*\([^\(]*\([^:]*:(\d*)/)
|
330
|
+
if errorNumScan.length > 0
|
331
|
+
errorNum = errorNumScan[0][0].to_i
|
332
|
+
Dir.chdir(@options.qac_home) do
|
333
|
+
htmlFiles = Dir.glob("components/qacpp*/doc-en_US/messages/%04d.html" % errorNum).each do |htmlFile|
|
334
|
+
puts "doc: #{File.expand_path(htmlFile)}"
|
335
|
+
end
|
336
|
+
end
|
337
|
+
Dir.chdir(@options.mcpp_home) do
|
338
|
+
htmlFiles = Dir.glob("components/mcpp*/doc-en_US/messages/%04d.html" % errorNum).each do |htmlFile|
|
335
339
|
puts "doc: #{File.expand_path(htmlFile)}"
|
336
340
|
end
|
337
341
|
end
|
338
342
|
end
|
339
|
-
numberOfMessages += 1
|
340
|
-
elsif line.include? " ======= Results for "
|
341
|
-
Bake.formatter.printAdditionalInfo(line)
|
342
|
-
else
|
343
|
-
Bake.formatter.printInfo(line)
|
344
343
|
end
|
344
|
+
numberOfMessages += 1
|
345
|
+
elsif line.include? " ======= Results for "
|
346
|
+
Bake.formatter.printAdditionalInfo(line)
|
347
|
+
else
|
348
|
+
Bake.formatter.printInfo(line)
|
345
349
|
end
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
350
|
+
end
|
351
|
+
Bake.formatter.printSuccess("\n**** Number of messages: #{numberOfMessages} ****")
|
352
|
+
if !success # HACK, see above
|
353
|
+
Bake.formatter.printInfo("\nNote: qacli exited with error, maybe the number of messages was too high and output was truncated.")
|
354
|
+
success = true
|
351
355
|
end
|
352
356
|
else
|
353
357
|
puts consoleOutput # error
|
@@ -6,12 +6,14 @@ require 'common/options/finder'
|
|
6
6
|
module Bake
|
7
7
|
|
8
8
|
class BakeqacOptions < Parser
|
9
|
-
attr_reader :rcf, :acf, :qacstep, :qac_home, :cct_append # String
|
9
|
+
attr_reader :rcf, :acf, :qacstep, :qac_home, :mcpp_home, :cct_append # String
|
10
10
|
attr_reader :c11, :c14, :qacmsgfilter, :qacfilefilter, :qacnoformat, :qacunittest, :qacdoc, :cct_patch # Boolean
|
11
11
|
attr_reader :cct # Array
|
12
12
|
attr_reader :qacretry # int
|
13
13
|
attr_accessor :qacdata # String
|
14
14
|
|
15
|
+
RCF_DEFAULT = "config/rcf/mcpp-1_5_1-en_US.rcf".freeze()
|
16
|
+
|
15
17
|
def initialize(argv)
|
16
18
|
super(argv)
|
17
19
|
|
@@ -65,11 +67,12 @@ module Bake
|
|
65
67
|
puts " --cct <file> Set a specific compiler compatibility template, can be defined multiple times."
|
66
68
|
puts " If not specified, $(QAC_HOME)/config/cct/<platform>.ctt will be used and additionally"
|
67
69
|
puts " a file named qac.cct will be searched up to root and also used if found."
|
68
|
-
puts " --rcf <file> Set a specific rule config file. If not specified, $(
|
70
|
+
puts " --rcf <file> Set a specific rule config file. If not specified, $(MCPP_HOME)/#{RCF_DEFAULT} will be used."
|
69
71
|
puts " --acf <file> Set a specific analysis config file, otherwise $(QAC_HOME)/config/acf/default.acf will be used."
|
70
72
|
puts " --qaccctpatch If specified, some adaptions to cct are made. Might improve the result - no guarantee."
|
71
73
|
puts " --qacdata <dir> QAC writes data into this folder. Default is <working directory>/.qacdata."
|
72
|
-
puts " --qacstep admin
|
74
|
+
puts " --qacstep <steps> Can be admin,analyze,view,report,mdr (separated by \",\" without spaces)."
|
75
|
+
puts " Defines the steps to execute, see documentation. Default: admin,analyze,view"
|
73
76
|
puts " --qacnofilefilter Some files will be filtered per default, like /test/."
|
74
77
|
puts " --qacnomsgfilter Some messages will be filter per default filters to reduce noise."
|
75
78
|
puts " --qacrawformat Raw QAC output (with incomplete MISRA rules!)."
|
@@ -144,9 +147,35 @@ module Bake
|
|
144
147
|
Bake.formatter.printError("Error: specify the environment variable QAC_HOME.")
|
145
148
|
ExitHelper.exit(1)
|
146
149
|
end
|
150
|
+
@qac_home = ENV["QAC_HOME"].gsub(/\\/,"/")
|
151
|
+
@qac_home = @qac_home[0, @qac_home.length-1] if @qac_home.end_with?"/"
|
152
|
+
if !File.directory?(@qac_home)
|
153
|
+
Bake.formatter.printError("Error: QAC_HOME points to invalid directory.")
|
154
|
+
ExitHelper.exit(1)
|
155
|
+
end
|
156
|
+
|
157
|
+
# find mcpp install folder
|
158
|
+
# prio 1: explicit env var
|
159
|
+
if ENV["MCPP_HOME"] && !ENV["MCPP_HOME"].empty?
|
160
|
+
@mcpp_home = ENV["MCPP_HOME"].gsub(/\\/,"/")
|
161
|
+
@mcpp_home = @mcpp_home[0, @mcpp_home.length-1] if @mcpp_home.end_with?"/"
|
162
|
+
if !File.directory?(@mcpp_home)
|
163
|
+
Bake.formatter.printError("Error: MCPP_HOME points to invalid directory: #{@mcpp_home}")
|
164
|
+
ExitHelper.exit(1)
|
165
|
+
end
|
166
|
+
# prio 2: with qac_home
|
167
|
+
elsif File.exists?(@qac_home+"/#{RCF_DEFAULT}")
|
168
|
+
@mcpp_home = @qac_home
|
169
|
+
# prio 3: next to qac_home
|
170
|
+
elsif File.exists?(File.dirname(@qac_home)+"/mcpp-1.5.1/#{RCF_DEFAULT}")
|
171
|
+
@mcpp_home = File.dirname(@qac_home)+"/mcpp-1.5.1"
|
172
|
+
else
|
173
|
+
Bake.formatter.printError("Error: cannot find MCPP home folder. Specify MCPP_HOME.")
|
174
|
+
ExitHelper.exit(1)
|
175
|
+
end
|
147
176
|
|
148
177
|
if !@qacstep.nil?
|
149
|
-
@qacstep.split(
|
178
|
+
@qacstep.split(/[,|]/).each do |s|
|
150
179
|
if not ["admin", "analyze", "view", "report", "mdr"].include?s
|
151
180
|
Bake.formatter.printError("Error: incorrect qacstep name.")
|
152
181
|
ExitHelper.exit(1)
|
@@ -154,9 +183,6 @@ module Bake
|
|
154
183
|
end
|
155
184
|
end
|
156
185
|
|
157
|
-
@qac_home = ENV["QAC_HOME"].gsub(/\\/,"/")
|
158
|
-
@qac_home = qac_home[0, qac_home.length-1] if qac_home.end_with?"/"
|
159
|
-
|
160
186
|
if @cct.empty?
|
161
187
|
gccVersion = Bake::Toolchain::getGccVersion
|
162
188
|
if gccVersion.length < 2
|
@@ -185,9 +211,9 @@ module Bake
|
|
185
211
|
end
|
186
212
|
|
187
213
|
while (@cct.empty? or gccVersion[0]>=4)
|
188
|
-
@cct = [qac_home + "/config/cct/GNU_GCC-g++_#{gccVersion[0]}.#{gccVersion[1]}-i686-#{plStr}-C++#{@cVersion}.cct"]
|
214
|
+
@cct = [@qac_home + "/config/cct/GNU_GCC-g++_#{gccVersion[0]}.#{gccVersion[1]}-i686-#{plStr}-C++#{@cVersion}.cct"]
|
189
215
|
break if File.exist?@cct[0]
|
190
|
-
@cct = [qac_home + "/config/cct/GNU_GCC-g++_#{gccVersion[0]}.#{gccVersion[1]}-x86_64-#{plStr}-C++#{@cVersion}.cct"]
|
216
|
+
@cct = [@qac_home + "/config/cct/GNU_GCC-g++_#{gccVersion[0]}.#{gccVersion[1]}-x86_64-#{plStr}-C++#{@cVersion}.cct"]
|
191
217
|
break if File.exist?@cct[0]
|
192
218
|
if gccVersion[1]>0
|
193
219
|
gccVersion[1] -= 1
|
@@ -202,11 +228,26 @@ module Bake
|
|
202
228
|
@cct_append = cctInDir.gsub(/[\\]/,'/') if cctInDir
|
203
229
|
|
204
230
|
if @acf.nil?
|
205
|
-
@acf = qac_home + "/config/acf/default.acf"
|
231
|
+
@acf = @qac_home + "/config/acf/default.acf"
|
206
232
|
end
|
207
233
|
|
208
234
|
if @rcf.nil?
|
209
|
-
@rcf =
|
235
|
+
@rcf = @mcpp_home + "/#{RCF_DEFAULT}"
|
236
|
+
end
|
237
|
+
|
238
|
+
@cct.each do |cct|
|
239
|
+
if !File.exists?(cct)
|
240
|
+
Bake.formatter.printError("Error: cct file not found: #{cct}")
|
241
|
+
ExitHelper.exit(1)
|
242
|
+
end
|
243
|
+
end
|
244
|
+
if !File.exists?(@acf)
|
245
|
+
Bake.formatter.printError("Error: acf file not found: #{@acf}")
|
246
|
+
ExitHelper.exit(1)
|
247
|
+
end
|
248
|
+
if !File.exists?(@rcf)
|
249
|
+
Bake.formatter.printError("Error: rcf file not found: #{@rcf}")
|
250
|
+
ExitHelper.exit(1)
|
210
251
|
end
|
211
252
|
|
212
253
|
end
|
data/lib/common/root.rb
CHANGED
data/lib/common/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bake-toolkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.40.
|
4
|
+
version: 2.40.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Schaal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rtext
|