xcpretty 0.1.10 → 0.1.11
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/.hound.yml +4 -0
- data/CHANGELOG.md +12 -0
- data/lib/xcpretty/formatters/formatter.rb +43 -42
- data/lib/xcpretty/formatters/simple.rb +4 -0
- data/lib/xcpretty/parser.rb +10 -2
- data/lib/xcpretty/version.rb +1 -1
- data/spec/fixtures/constants.rb +5 -0
- data/spec/xcpretty/formatters/simple_spec.rb +5 -0
- data/spec/xcpretty/parser_spec.rb +15 -0
- data/xcpretty.gemspec +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6059730a79aa8637f3e4125e42d048f480439450
|
4
|
+
data.tar.gz: ed84469a746cef435bd094a967e5462d9f7c17ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43cf2b910a3e9c0b59e4b28e6d16a297962ba8dc50e52c58beae023604970e5b9d9be8e58eeac6840e8d8532c41710e9e5b6869b0b192b4f01dfad9d118a9f6e
|
7
|
+
data.tar.gz: c87cc661a69527f62b1e3aec2fc47fdc84f1fc0fbb4ac566239d01f50e35be2ba52a6d41587befe12f2020e9dd6bb903464fc633ae8fe22182e5a1243e41824b
|
data/.hound.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## master
|
4
|
+
|
5
|
+
###### Enhancements
|
6
|
+
|
7
|
+
* Added support for Analyzing target output
|
8
|
+
| [Cédric Luthi](https://github.com/0xced)
|
9
|
+
| [#146](https://github.com/supermarin/xcpretty/pull/146)
|
10
|
+
|
11
|
+
* Improved logging of `ld` error messages
|
12
|
+
| [Felix Krause](https://github.com/KrauseFx)
|
13
|
+
| [#153](https://github.com/supermarin/xcpretty/pull/153)
|
14
|
+
|
3
15
|
## 0.1.10
|
4
16
|
|
5
17
|
###### Enhancements
|
@@ -9,55 +9,56 @@ module XCPretty
|
|
9
9
|
module FormatMethods
|
10
10
|
EMPTY = ''.freeze
|
11
11
|
|
12
|
-
def format_analyze(file_name, file_path);
|
13
|
-
def format_build_target(target, project, configuration);
|
14
|
-
def
|
15
|
-
def
|
16
|
-
def
|
17
|
-
def
|
18
|
-
def
|
19
|
-
def
|
20
|
-
def
|
21
|
-
def
|
22
|
-
def
|
23
|
-
def
|
24
|
-
def
|
25
|
-
def
|
26
|
-
def
|
27
|
-
def
|
28
|
-
def
|
29
|
-
def
|
30
|
-
def
|
31
|
-
def
|
32
|
-
def
|
33
|
-
def
|
34
|
-
def
|
35
|
-
def
|
36
|
-
def
|
37
|
-
def
|
38
|
-
def
|
39
|
-
def
|
40
|
-
def
|
41
|
-
def
|
42
|
-
def
|
43
|
-
def
|
44
|
-
def
|
45
|
-
def
|
46
|
-
def
|
47
|
-
def
|
12
|
+
def format_analyze(file_name, file_path); EMPTY; end
|
13
|
+
def format_build_target(target, project, configuration); EMPTY; end
|
14
|
+
def format_analyze_target(target, project, configuration); EMPTY; end
|
15
|
+
def format_check_dependencies; EMPTY; end
|
16
|
+
def format_clean(project, target, configuration); EMPTY; end
|
17
|
+
def format_clean_target(target, project, configuration); EMPTY; end
|
18
|
+
def format_clean_remove; EMPTY; end
|
19
|
+
def format_compile(file_name, file_path); EMPTY; end
|
20
|
+
def format_compile_command(compiler_command, file_path); EMPTY; end
|
21
|
+
def format_compile_xib(file_name, file_path); EMPTY; end
|
22
|
+
def format_copy_header_file(source, target); EMPTY; end
|
23
|
+
def format_copy_plist_file(source, target); EMPTY; end
|
24
|
+
def format_copy_strings_file(file_name); EMPTY; end
|
25
|
+
def format_cpresource(file); EMPTY; end
|
26
|
+
def format_generate_dsym(dsym); EMPTY; end
|
27
|
+
def format_linking(file, build_variant, arch); EMPTY; end
|
28
|
+
def format_libtool(library); EMPTY; end
|
29
|
+
def format_passing_test(suite, test, time); EMPTY; end
|
30
|
+
def format_pending_test(suite, test); EMPTY; end
|
31
|
+
def format_measuring_test(suite, test, time); EMPTY; end
|
32
|
+
def format_failing_test(suite, test, time, file_path); EMPTY; end
|
33
|
+
def format_process_pch(file); EMPTY; end
|
34
|
+
def format_process_pch_command(file_path); EMPTY; end
|
35
|
+
def format_phase_script_execution(script_name); EMPTY; end
|
36
|
+
def format_process_info_plist(file_name, file_path); EMPTY; end
|
37
|
+
def format_codesign(file); EMPTY; end
|
38
|
+
def format_preprocess(file); EMPTY; end
|
39
|
+
def format_pbxcp(file); EMPTY; end
|
40
|
+
def format_shell_command(command, arguments); EMPTY; end
|
41
|
+
def format_test_run_started(name); EMPTY; end
|
42
|
+
def format_test_run_finished(name, time); EMPTY; end
|
43
|
+
def format_test_suite_started(name); EMPTY; end
|
44
|
+
def format_test_summary(message, failures_per_suite); EMPTY; end
|
45
|
+
def format_touch(file_path, file_name); EMPTY; end
|
46
|
+
def format_tiffutil(file); EMPTY; end
|
47
|
+
def format_write_file(file); EMPTY; end
|
48
|
+
def format_write_auxiliary_files; EMPTY; end
|
48
49
|
|
49
50
|
# COMPILER / LINKER ERRORS AND WARNINGS
|
50
51
|
def format_compile_error(file_name, file_path, reason,
|
51
|
-
line, cursor);
|
52
|
-
def format_error(message);
|
53
|
-
def format_undefined_symbols(message, symbol, reference);
|
54
|
-
def format_duplicate_symbols(message, file_paths);
|
55
|
-
def format_warning(message);
|
52
|
+
line, cursor); EMPTY; end
|
53
|
+
def format_error(message); EMPTY; end
|
54
|
+
def format_undefined_symbols(message, symbol, reference); EMPTY; end
|
55
|
+
def format_duplicate_symbols(message, file_paths); EMPTY; end
|
56
|
+
def format_warning(message); message; end
|
56
57
|
|
57
58
|
# TODO: see how we can unify format_error and format_compile_error,
|
58
59
|
# the same for warnings
|
59
60
|
def format_compile_warning(file_name, file_path, reason,
|
60
|
-
line, cursor);
|
61
|
+
line, cursor); EMPTY; end
|
61
62
|
end
|
62
63
|
|
63
64
|
class Formatter
|
@@ -27,6 +27,10 @@ module XCPretty
|
|
27
27
|
format("Building", "#{project}/#{target} [#{configuration}]")
|
28
28
|
end
|
29
29
|
|
30
|
+
def format_analyze_target(target, project, configuration)
|
31
|
+
format("Analyzing", "#{project}/#{target} [#{configuration}]")
|
32
|
+
end
|
33
|
+
|
30
34
|
def format_clean_target(target, project, configuration)
|
31
35
|
format("Cleaning", "#{project}/#{target} [#{configuration}]")
|
32
36
|
end
|
data/lib/xcpretty/parser.rb
CHANGED
@@ -15,6 +15,12 @@ module XCPretty
|
|
15
15
|
# $3 configuration
|
16
16
|
BUILD_TARGET_MATCHER = /^=== BUILD TARGET\s(.*)\sOF PROJECT\s(.*)\sWITH.*CONFIGURATION\s(.*)\s===/
|
17
17
|
|
18
|
+
# @regex Captured groups
|
19
|
+
# $1 target
|
20
|
+
# $2 project
|
21
|
+
# $3 configuration
|
22
|
+
ANALYZE_TARGET_MATCHER = /^=== ANALYZE TARGET\s(.*)\sOF PROJECT\s(.*)\sWITH.*CONFIGURATION\s(.*)\s===/
|
23
|
+
|
18
24
|
# @regex Nothing returned here for now
|
19
25
|
CHECK_DEPENDENCIES_MATCHER = /^Check dependencies/
|
20
26
|
|
@@ -43,7 +49,7 @@ module XCPretty
|
|
43
49
|
# @regex Captured groups
|
44
50
|
# $1 file_path
|
45
51
|
# $2 file_name (e.g. KWNull.m)
|
46
|
-
COMPILE_MATCHER = /^CompileC\s.+?\s((?:\\.|[^ ])+\/((?:\\.|[^ ])+\.(?:m|mm|c|cc|cpp|cxx)))\s.*/
|
52
|
+
COMPILE_MATCHER = /^CompileC\s.+?\s((?:\\.|[^ ])+\/((?:\\.|[^ ])+\.(?:m|mm|c|cc|cpp|cxx|swift)))\s.*/
|
47
53
|
|
48
54
|
# @regex Captured groups
|
49
55
|
# $1 compiler_command
|
@@ -204,7 +210,7 @@ module XCPretty
|
|
204
210
|
FATAL_ERROR_MATCHER = /^(fatal error:.*)$/
|
205
211
|
|
206
212
|
# $1 = whole error
|
207
|
-
LD_ERROR_MATCHER = /^(ld:.*
|
213
|
+
LD_ERROR_MATCHER = /^(ld:.*)/
|
208
214
|
|
209
215
|
# @regex Captured groups
|
210
216
|
# $1 file path
|
@@ -258,6 +264,8 @@ module XCPretty
|
|
258
264
|
formatter.format_analyze($2, $1)
|
259
265
|
when BUILD_TARGET_MATCHER
|
260
266
|
formatter.format_build_target($1, $2, $3)
|
267
|
+
when ANALYZE_TARGET_MATCHER
|
268
|
+
formatter.format_analyze_target($1, $2, $3)
|
261
269
|
when CLEAN_REMOVE_MATCHER
|
262
270
|
formatter.format_clean_remove
|
263
271
|
when CLEAN_TARGET_MATCHER
|
data/lib/xcpretty/version.rb
CHANGED
data/spec/fixtures/constants.rb
CHANGED
@@ -22,6 +22,7 @@ SAMPLE_OLD_SPECTA_FAILURE = "/Users/musalj/code/OSS/ReactiveCocoa/ReactiveCocoaF
|
|
22
22
|
SAMPLE_SPECTA_FAILURE = " Test Case '-[SKWelcomeViewControllerSpecSpec SKWelcomeViewController_When_a_user_opens_the_app_from_a_clean_installation_displays_the_welcome_screen]' started. \n/Users/vickeryj/Code/ipad-register/KIFTests/Specs/SKWelcomeViewControllerSpec.m:11: error: -[SKWelcomeViewControllerSpecSpec SKWelcomeViewController_When_a_user_opens_the_app_from_a_clean_installation_displays_the_welcome_screen] : The step timed out after 2.00 seconds: Failed to find accessibility element with the label \"The asimplest way to make smarter business decisions\""
|
23
23
|
|
24
24
|
SAMPLE_BUILD = "=== BUILD TARGET The Spacer OF PROJECT Pods WITH THE DEFAULT CONFIGURATION Debug ==="
|
25
|
+
SAMPLE_ANALYZE_TARGET = "=== ANALYZE TARGET The Spacer OF PROJECT Pods WITH THE DEFAULT CONFIGURATION Debug ==="
|
25
26
|
SAMPLE_CLEAN = "=== CLEAN TARGET Pods-ObjectiveSugar OF PROJECT Pods WITH CONFIGURATION Debug ==="
|
26
27
|
SAMPLE_ANOTHER_CLEAN = "=== CLEAN TARGET Pods OF PROJECT Pods WITH CONFIGURATION Debug ==="
|
27
28
|
SAMPLE_CLEAN_REMOVE = %Q(
|
@@ -552,6 +553,10 @@ ld: 1 duplicate symbol for architecture i386
|
|
552
553
|
clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
553
554
|
)
|
554
555
|
|
556
|
+
SAMPLE_BITCODE_LD = %Q(
|
557
|
+
ld: '/Users/.../GoogleAnalytics-iOS-SDK/libGoogleAnalyticsServices.a(TAGHit.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
|
558
|
+
)
|
559
|
+
|
555
560
|
SAMPLE_LD_SYMBOLS_ERROR = 'ld: symbol(s) not found for architecture x86_64'
|
556
561
|
SAMPLE_LD_LIBRARY_ERROR = 'ld: library not found for -lPods-Yammer'
|
557
562
|
|
@@ -20,6 +20,11 @@ module XCPretty
|
|
20
20
|
"> Building Pods/The Spacer [Debug]"
|
21
21
|
end
|
22
22
|
|
23
|
+
it "formats analyze target/project/configuration with target" do
|
24
|
+
@formatter.format_analyze_target("The Spacer", "Pods", "Debug").should ==
|
25
|
+
"> Analyzing Pods/The Spacer [Debug]"
|
26
|
+
end
|
27
|
+
|
23
28
|
it "formats clean target/project/configuration" do
|
24
29
|
@formatter.format_clean_target("Pods-ObjectiveSugar", "Pods", "Debug").should ==
|
25
30
|
"> Cleaning Pods/Pods-ObjectiveSugar [Debug]"
|
@@ -28,6 +28,11 @@ module XCPretty
|
|
28
28
|
@parser.parse(SAMPLE_BUILD)
|
29
29
|
end
|
30
30
|
|
31
|
+
it "parses analyze target" do
|
32
|
+
@formatter.should receive(:format_analyze_target).with("The Spacer", "Pods", "Debug")
|
33
|
+
@parser.parse(SAMPLE_ANALYZE_TARGET)
|
34
|
+
end
|
35
|
+
|
31
36
|
it "parses clean remove" do
|
32
37
|
@formatter.should receive(:format_clean_remove)
|
33
38
|
@parser.parse(SAMPLE_CLEAN_REMOVE)
|
@@ -84,6 +89,11 @@ module XCPretty
|
|
84
89
|
@parser.parse(SAMPLE_ANOTHER_COMPILE.sub('.m', '.mm'))
|
85
90
|
end
|
86
91
|
|
92
|
+
it 'parses compiling Swift source files' do
|
93
|
+
@formatter.should receive(:format_compile).with("KWNull.swift", "Classes/Core/KWNull.swift")
|
94
|
+
@parser.parse(SAMPLE_ANOTHER_COMPILE.sub('.m', '.swift'))
|
95
|
+
end
|
96
|
+
|
87
97
|
it "parses compiling C and C++ files" do
|
88
98
|
['.c', '.cc', '.cpp', '.cxx'].each do |file_extension|
|
89
99
|
@formatter.should receive(:format_compile).with("KWNull" + file_extension, "Classes/Core/KWNull" + file_extension)
|
@@ -154,6 +164,11 @@ module XCPretty
|
|
154
164
|
@parser.parse(SAMPLE_OLD_SPECTA_FAILURE)
|
155
165
|
end
|
156
166
|
|
167
|
+
it "parses ld bitcode errors" do
|
168
|
+
@formatter.should receive(:format_error).with(SAMPLE_BITCODE_LD.strip)
|
169
|
+
@parser.parse(SAMPLE_BITCODE_LD)
|
170
|
+
end
|
171
|
+
|
157
172
|
it "parses passing ocunit tests" do
|
158
173
|
@formatter.should receive(:format_passing_test).with('RACCommandSpec',
|
159
174
|
'enabled_signal_should_send_YES_while_executing_is_YES_and_allowsConcurrentExecution_is_YES',
|
data/xcpretty.gemspec
CHANGED
@@ -29,5 +29,5 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 1.3"
|
30
30
|
spec.add_development_dependency "rake"
|
31
31
|
spec.add_development_dependency "rspec", "~> 2"
|
32
|
-
spec.add_development_dependency "cucumber"
|
32
|
+
spec.add_development_dependency "cucumber", "~> 1"
|
33
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcpretty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marin Usalj
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -57,16 +57,16 @@ dependencies:
|
|
57
57
|
name: cucumber
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '1'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '1'
|
70
70
|
description: "\n Xcodebuild formatter designed to be piped with `xcodebuild`,\n and
|
71
71
|
thus keeping 100% compatibility.\n\n It has modes for CI, running tests (RSpec
|
72
72
|
dot-style),\n and it can also mine Bitcoins.\n "
|