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 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