bake-toolkit 2.40.0 → 2.40.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb0adac43c63f67a6209eb737f5fea0441715416
4
- data.tar.gz: 8f8b68bad2c337986352025b60cde6630e9ae7a5
3
+ metadata.gz: 47018509fb45c727f0be0b11470726b01d13606a
4
+ data.tar.gz: 3b0fa9295363deb6ee596df9c4c3d1c87d4c40e7
5
5
  SHA512:
6
- metadata.gz: 0ae585591499cfb4c85cd413388d7e07679c79f07b0e7d415849dc2e008393a8f2af0c787457f2554d1445d94e2fa77bbed6fd3f9feb80e8f362d86053fca820
7
- data.tar.gz: ad887fd898e1e4b8570e1b8c334fad34669957cee3c44f7678dbe3dbec2c55f30872f367884df4e234f3ef16334b37041c53b37974cd3315c895d31d852bb058
6
+ metadata.gz: d0ba48431dba2e59155c9d8026acce4a9f1d23a844ae4c347131d71a1b7150a24201e62f0b4afbd7e4c9a3581a12d2ee4a1a993c951ca744ce25aa82ae59889f
7
+ data.tar.gz: aa757eb55d06270e41ecfb84d885ec0db3d94b37702f589cfd39f965f4df8870f1caed7b8126fffaeff6c3ba94a92d1119dced7509a9b2e49aab885de98a0008
@@ -321,33 +321,37 @@ $cmdRemoveLocks = qaExe + ["admin", "--qaf-project", @options.qacdata, "--remove
321
321
 
322
322
  # 3. print
323
323
  numberOfMessages = 0
324
- Dir.chdir(@options.qac_home) do
325
- sortedLines.each do |line|
326
- success = true if line.include?"The specified project does not have any source files" # to proceed we assume that this is a valid scenario
327
- if (!@options.qacnoformat && line.start_with?("MSG: ")) || (@options.qacnoformat && line.include?(": Msg("))
328
- Bake.formatter.printWarning(line)
329
- if @options.qacdoc
330
- errorNumScan = line.scan(/[^\(]*\([^\(]*\([^:]*:(\d*)/)
331
- if errorNumScan.length > 0
332
- errorNum = errorNumScan[0][0].to_i
333
- htmlFiles = Dir.glob("components/qacpp*/doc-en_US/messages/%04d.html" % errorNum) + Dir.glob("components/mcpp*/doc-en_US/messages/%04d.html" % errorNum)
334
- htmlFiles.each do |htmlFile|
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
- Bake.formatter.printSuccess("\n**** Number of messages: #{numberOfMessages} ****")
347
- if !success # HACK, see above
348
- Bake.formatter.printInfo("\nNote: qacli exited with error, maybe the number of messages was too high and output was truncated.")
349
- success = true
350
- end
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, $(QAC_HOME)/config/rcf/mcpp-1_5_1-en_US.rcf will be used."
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|analyze|view|report|mdr Steps can be ORed. Per default admin|analyze|view will be executed."
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("|").each do |s|
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 = qac_home + "/config/rcf/mcpp-1_5_1-en_US.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
@@ -28,7 +28,7 @@ module Bake
28
28
  end
29
29
 
30
30
  def self.extract_depth(str)
31
- regex = /(.*)\s*,\s*(\d+)\s*\z/
31
+ regex = /\s*(\S*)\s*,\s*(\d+)\s*\z/
32
32
  scan_res = str.scan(regex)
33
33
  if scan_res.length > 0
34
34
  return Root.new(scan_res[0][0],scan_res[0][1].to_i)
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.40.0"
4
+ "2.40.1"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
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.0
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-09 00:00:00.000000000 Z
11
+ date: 2017-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext