author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 31 Jan 2017 13:01:09 +0000 | |
changeset 121 | dd6b76197aa0 |
parent 93 | 650412e81596 |
child 137 | e665031cade7 |
permissions | -rw-r--r-- |
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
1 |
TESTREPORT_CLASS = 'Builder::TestReport' |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
2 |
LINTREPORT_CLASS = 'Builder::LintReport' |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
3 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
4 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
5 |
# A helper class to keep a summary of a test report |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
6 |
class TestReportSummary |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
7 |
SUMMARIES = [] |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
8 |
PATTERN = /tests=\"(?<run>\d+)\".+failures=\"(?<failed>\d+)\" errors=\"(?<errors>\d+)\" skipped=\"(?<skipped>\d+)\"/ |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
9 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
10 |
attr_reader :pkg, :run, :failed, :errors, :skipped |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
11 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
12 |
def passed |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
13 |
return @run - @failed - @errors - @skipped |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
14 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
15 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
16 |
def outcome |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
17 |
if @failed > 0 or @errors > 0 then |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
18 |
return 'FAILED' |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
19 |
else |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
20 |
return 'PASSED' |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
21 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
22 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
23 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
24 |
# Creates a new summary for given package and report file. |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
25 |
def initialize(pkg_name, report_file) |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
26 |
if not File.exist? report_file then |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
27 |
raise Exception.new("Report file does not exist! #{report_file}"); |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
28 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
29 |
@pkg = pkg_name |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
30 |
matches = PATTERN.match(IO.read(report_file, 512)) |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
31 |
if not matches then |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
32 |
raise Exception.new("Cannot \"parse\" report file!") |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
33 |
# Maybe the buffer is too small? Try to read up more |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
34 |
# data.... |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
35 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
36 |
@run = matches['run'].to_i |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
37 |
@failed = matches['failed'].to_i |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
38 |
@errors = matches['errors'].to_i |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
39 |
@skipped = matches['skipped'].to_i |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
40 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
41 |
end |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
desc "Run tests" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
task :'test' => :'test:all' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
desc "Run tests (alias for target test)" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
task :'tests' => :'test' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
task :'setup:tasks' => :'setup:tasks:test' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
def run_report(app, packages, report, global_opts = '', report_opts = '') |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
#run_report_st = BUILD_DIR / 'stx' / 'goodies' / 'builder' / 'reports' / 'report-runner-old.st' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
run_report_st = BUILD_DIR / 'stx' / 'goodies' / 'builder' / 'reports' / 'report-runner.st' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
coveragerportformat_dot_st = BUILD_DIR / 'stx' / 'goodies' / 'builder' / 'reports' / 'Builder__CoverageReportFormat.st' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
report_dir = File.expand_path(REPORT_DIR) |
77
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
58 |
tmp_dir = File.expand_path(TMP_DIR) |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
59 |
|
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
60 |
# Set STX_TMPDIR environment to make sure all temporary files created by |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
61 |
# Smalltalk/X goes to a local tmp directory (which should be discarded |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
62 |
# regularly). This helps to avoid garbage to heap up on Windows slaves |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
63 |
# assuming workspaces is thrown away often. |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
64 |
ENV['STX_TMPDIR'] = tmp_dir |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
if app |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
exe_dir = BUILD_DIR / app.directory |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
if win32? |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
exe = "#{app.executable}.com" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
else |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
exe = "./#{app.executable}" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
else |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
exe_dir = BUILD_DIR / 'stx' / 'projects' / 'smalltalk' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
if win32? |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
exe = "stx.com" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
else |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
exe = "./stx" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
|
77
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
82 |
if not File.directory? tmp_dir then |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
83 |
mkdir_p tmp_dir |
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
84 |
end |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
chdir exe_dir do |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
packages_args = '' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
packages.each { | p | packages_args += " -p #{p}" } |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
if File.exist?(coveragerportformat_dot_st) |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
runner_opts = "-abortOnSEGV -I --execute #{run_report_st}" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
else |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
runner_opts = "-I -f #{run_report_st}" |
7
b6fe3a90f6e0
Added `zip()` & `unzip()` extensions to easily create / extract archives from build scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
0
diff
changeset
|
93 |
end |
22
53b717983dfd
Removed duplicated "build" string from report ident.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
15
diff
changeset
|
94 |
sh "#{exe} #{runner_opts} #{global_opts} -i \"#{BUILD_ID}\" -D \"#{report_dir}\" -r #{report} #{report_opts} #{packages_args}" |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
end |
77
570ae23d0ce2
Specify (nonstandard) temporary directory when running tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
69
diff
changeset
|
96 |
rm_rf tmp_dir |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
task :'setup:tasks:test' do |
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
100 |
$__testresults__ = [] |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
101 |
app = project.application |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
project.packages.each do | pkg | |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
if pkg.test |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
104 |
task "test:package:#{pkg.name}" => [ 'stx:goodies/builder/reports', REPORT_DIR ] do |
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
105 |
report_file = File.expand_path(REPORT_DIR) / "#{pkg.name_components.join('_')}-#{BUILD_ID}-Test.xml" |
121
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
106 |
# Sigh, sigh. On CI server, sometimes it happen that tests are simply not run. |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
107 |
# I was not able to debug the issue anyhow, any attempt to attach a debugger, |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
108 |
# add a debug print or run it manually failed as the problem did not manifest. |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
109 |
# |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
110 |
# This is a feeble and horrible attempt to just cover up the problem by |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
111 |
# trying multiple times. I don't want to spend more time chasing issues |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
112 |
# like this. Sorry. |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
113 |
# |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
114 |
# Let's see if it helps. |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
115 |
for i in 1..5 do |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
116 |
if pkg.coverage |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
117 |
run_report(app, [ pkg.name ], TESTREPORT_CLASS, '', '--coverage') |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
118 |
else |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
119 |
run_report(app, [ pkg.name ], TESTREPORT_CLASS) |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
120 |
end |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
121 |
# Extract summary from XML report and keep it. Yeah, parsing XML |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
122 |
# using regexps is a bad thing, but it's quick and lot less code! |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
123 |
if File.exist? report_file then |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
124 |
break |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
125 |
end |
dd6b76197aa0
CI: An attempt to address a mysterious problem occuring only on CI server
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
93
diff
changeset
|
126 |
end |
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
127 |
report_summary = TestReportSummary.new(pkg.name, report_file); |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
128 |
TestReportSummary::SUMMARIES << report_summary |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
task :'test:packages' => "test:package:#{pkg.name}" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
if pkg.lint |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
task "lint:package:#{pkg.name}" => [ 'stx:goodies/builder/reports', REPORT_DIR ] do |
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
135 |
#puts "LINT DISABLED (because of some bug in recent SmallLint - runs out of memory)" |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
136 |
run_report(app, [ pkg.name ], LINTREPORT_CLASS) |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
task :'lint:packages' => "lint:package:#{pkg.name}" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
142 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
task :'setup:tasks' => :'setup:tasks:test' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
task :'test:setup' => :'setup' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
task :'lint:setup' => :'setup' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
namespace :'test' do |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
148 |
task :'all' => [ :'setup', :'pre', :'main', :'post' ] |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
task :'pre' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
150 |
task :'post' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
directory REPORT_DIR |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
|
93
650412e81596
Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
77
diff
changeset
|
154 |
task :'setup' => :'setup:dependencies' |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
|
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
156 |
task :'main' => [:'setup', :'packages', :'summary' ] |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
157 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
158 |
task :'packages' |
48
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
159 |
|
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
160 |
task :'summary' do |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
161 |
outcome = 'PASSED' |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
162 |
puts |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
163 |
puts "OVERALL SUMMARY" |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
164 |
puts |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
165 |
TestReportSummary::SUMMARIES.each do | test_summary | |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
166 |
puts "%-20s %s - %d run, %d passed, %d skipped, %d failed, %d errors" % [ |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
167 |
test_summary.pkg, |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
168 |
test_summary.outcome, |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
169 |
test_summary.run, |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
170 |
test_summary.passed, |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
171 |
test_summary.skipped, |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
172 |
test_summary.failed, |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
173 |
test_summary.errors |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
174 |
] |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
175 |
if test_summary.failed > 0 or test_summary.errors > 0 then |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
176 |
outcome = 'FAILED' |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
177 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
178 |
end |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
179 |
puts |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
180 |
puts outcome |
33088fc2ba3b
Print overall test result summary fpr after all tests are run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
181 |
end |
0
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
182 |
end |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
183 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
184 |
desc "Run static analysis on the code (SmallLint)" |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
185 |
task :'lint' => :'lint:all' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
186 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
187 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
188 |
namespace :'lint' do |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
189 |
task :'all' => [ :'setup', :'pre', :'main', :'post' ] |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
task :'pre' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
task :'post' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
directory REPORT_DIR |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
194 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
195 |
task :'setup' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
196 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
197 |
task :'main' => [:'setup', :'packages' ] |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
198 |
|
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
199 |
task :'packages' |
f46260ba26b1
Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
200 |
end |