bake-toolkit 2.36.1 → 2.37.0

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: f14ffc262d93edc0c8c5ad281e93378445b273c9
4
- data.tar.gz: 0c1fce72edba474e76d15004f70c619e5d7ab217
3
+ metadata.gz: 10b5d02b50a49b9fe736175a016c46db97ae6e02
4
+ data.tar.gz: 32adc905319f5e567b4571fff3e0d22315cdecee
5
5
  SHA512:
6
- metadata.gz: b4e2aa589001372881833df8a6d1ddb816f61930d0b9106b478e071c98888a322af822b0b2a57c17730a45ab15cc514a4a961f52da510a298079f66af7e4e952
7
- data.tar.gz: 6c528387292dd2ea437fb8ffa8067e4d1ad248defb06d12945378ce080e0c95ec59f46bd3754ff70a15e822b39683bf6d3aff979b2ad117de74888aaa66b94be
6
+ metadata.gz: 16a1135b69cb94a02c4e15f8c3bb31d36f2ae293872ae3834a1d7dc3e6427cad1c1a2106840bf102db4113a305852002be8ef30ca9db62b4d344408a4b4d1946
7
+ data.tar.gz: ef5156a0c490148bab91dd25d14ef687b1a59c0b0c7ee210602c7c8592a817eb74ae6bb0c16aea01cef94e14e439935f747b7ae0161aa55258ed2bf030831f04
data/bin/bakeqac CHANGED
@@ -75,6 +75,17 @@ def self.executeQacli(cmd, adminStepAndImmediateOutput = false)
75
75
  return [success, consoleOutput, checkError]
76
76
  end
77
77
 
78
+ def self.getLineNumbersOfFunctions(entities)
79
+ fileFunctions = []
80
+ entities.each do |e2|
81
+ if e2.has_key?("type") && e2["type"] == "function"
82
+ fileFunctions << e2["line"].to_i
83
+ end
84
+ end
85
+ fileFunctions.sort
86
+ return fileFunctions
87
+ end
88
+
78
89
  ###### PREREQUISITE 1: BAKEQAC OPTIONS ######
79
90
 
80
91
  @options = BakeqacOptions.new(ARGV)
@@ -389,12 +400,15 @@ end
389
400
  jsons = Dir.glob(@options.qacdata + "/prqa/reports/data/*.json")
390
401
 
391
402
  maxComplexity = 0
392
- numGreater10 = 0
403
+ numGreaterAllowed = 0
393
404
  jsons.each do |file|
394
405
  raw = File.read(file)
395
406
  data = JSON.parse(raw)
396
407
 
397
408
  filename = File.normalize(data["file"])
409
+ filename = @options.qacdata + "/../" + filename unless File.is_absolute?(filename) # only needed for UT
410
+ fileContent = nil
411
+ fileFunctions = []
398
412
 
399
413
  if ProjectFilter.localFile(filename)
400
414
  Bake.formatter.printAdditionalInfo(filename)
@@ -404,10 +418,40 @@ end
404
418
  if e.has_key?("type") && e["type"] == "function"
405
419
  if e.has_key?("metrics") && e["metrics"].has_key?("STCYC")
406
420
  complexity = e["metrics"]["STCYC"].to_i
407
- str = " #{e["name"]}:#{e["line"]}: cyclomatic complexity = #{complexity}"
408
- complexity > 10 ? Bake.formatter.printWarning(str) : puts(str)
421
+ line = e["line"].to_i
422
+ allowed = 10
423
+
424
+ if complexity > 10 && File.exist?(filename)
425
+ if fileContent.nil?
426
+ fileContent = File.readlines(filename)
427
+ fileFunctions = getLineNumbersOfFunctions(entities)
428
+ end
429
+ lineOfLastFunction = 0
430
+ pos = fileFunctions.find_index(line)
431
+ if !pos.nil? and fileContent.length >= line
432
+ lineOfLastFunction = fileFunctions[pos-1] if pos > 0
433
+ # "line" received from json count from 1...
434
+ # ... so adjustment of lineOfLastFunction for array access not needed
435
+ # line-2 = index of array for line above the current function
436
+ (line-2).downto(lineOfLastFunction) do |i|
437
+ res = fileContent[i].scan(/METRIC\s+STCYC\s+(\d+)/)
438
+ if (res.length > 0)
439
+ allowed = res[0][0].to_i if res[0][0].to_i > 10
440
+ end
441
+ end
442
+ end
443
+ end
444
+
445
+ str = " #{e["name"]}:#{line}: cyclomatic complexity = #{complexity}"
446
+ if complexity > allowed
447
+ str = str + " (warning: accepted = #{allowed})"
448
+ elsif allowed > 10
449
+ str = str + " (info: accepted = #{allowed})"
450
+ end
451
+
452
+ complexity > allowed ? Bake.formatter.printWarning(str) : puts(str)
409
453
  maxComplexity = complexity if complexity > maxComplexity
410
- numGreater10 +=1 if complexity > 10
454
+ numGreaterAllowed +=1 if complexity > allowed
411
455
  end
412
456
  end
413
457
  end
@@ -415,8 +459,8 @@ end
415
459
  end
416
460
  end
417
461
  Bake.formatter.printInfo("\n**** Maximum cyclomatic complexity: #{maxComplexity} ****")
418
- resultStr = "**** Number of functions with cyclomatic complexity > 10: #{numGreater10} ****"
419
- numGreater10 > 0 ? Bake.formatter.printWarning(resultStr) : Bake.formatter.printSuccess(resultStr)
462
+ resultStr = "**** Number of functions with cyclomatic complexity more than accepted: #{numGreaterAllowed} ****"
463
+ numGreaterAllowed > 0 ? Bake.formatter.printWarning(resultStr) : Bake.formatter.printSuccess(resultStr)
420
464
  else
421
465
  Bake.formatter.printError("Failed to generate MDR report.")
422
466
  end
data/lib/blocks/block.rb CHANGED
@@ -416,7 +416,7 @@ module Bake
416
416
  SyncOut.mutex.synchronize do
417
417
  @outputStep = nil
418
418
  SyncOut.startStream() if Bake.options.syncedOutput
419
- if Bake.options.verbose >= 2 || isBuildBlock?
419
+ if Bake.options.verbose >= 2 || (isBuildBlock? && Bake.options.verbose >= 1)
420
420
  typeStr = "Building"
421
421
  if @prebuild
422
422
  typeStr = "Using"
@@ -467,7 +467,7 @@ module Bake
467
467
  Bake.formatter.printAdditionalInfo "**** #{typeStr} #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
468
468
  end
469
469
 
470
- if Bake.options.verbose >= 2 || isBuildBlock?
470
+ if Bake.options.verbose >= 2 || (isBuildBlock? && Bake.options.verbose >= 1)
471
471
  Block.inc_block_counter()
472
472
  end
473
473
 
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.36.1"
4
+ "2.37.0"
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.36.1
4
+ version: 2.37.0
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-04-18 00:00:00.000000000 Z
11
+ date: 2017-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext