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 +4 -4
- data/bin/bakeqac +50 -6
- data/lib/blocks/block.rb +2 -2
- 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: 10b5d02b50a49b9fe736175a016c46db97ae6e02
|
4
|
+
data.tar.gz: 32adc905319f5e567b4571fff3e0d22315cdecee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
408
|
-
|
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
|
-
|
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
|
419
|
-
|
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
|
|
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.
|
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-
|
11
|
+
date: 2017-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rtext
|