xcodebuild-helper 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. metadata +4 -220
  3. data/.codeclimate.yml +0 -20
  4. data/.gitignore +0 -1
  5. data/.rspec +0 -2
  6. data/.travis.yml +0 -7
  7. data/Gemfile +0 -6
  8. data/Gemfile.lock +0 -114
  9. data/Guardfile +0 -18
  10. data/README.md +0 -7
  11. data/Rakefile +0 -7
  12. data/assets/style.css +0 -110
  13. data/bin/oclint +0 -5
  14. data/bin/oclint-0.8 +0 -5
  15. data/bin/oclint-json-compilation-database +0 -5
  16. data/bin/oclint-xcodebuild +0 -5
  17. data/externals/oclint/LICENSE +0 -69
  18. data/externals/oclint/bin/oclint +0 -0
  19. data/externals/oclint/bin/oclint-0.10.2 +0 -0
  20. data/externals/oclint/bin/oclint-json-compilation-database +0 -88
  21. data/externals/oclint/bin/oclint-xcodebuild +0 -218
  22. data/externals/oclint/lib/clang/3.7.0/asan_blacklist.txt +0 -13
  23. data/externals/oclint/lib/clang/3.7.0/include/Intrin.h +0 -958
  24. data/externals/oclint/lib/clang/3.7.0/include/__stddef_max_align_t.h +0 -43
  25. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_aes.h +0 -72
  26. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_pclmul.h +0 -34
  27. data/externals/oclint/lib/clang/3.7.0/include/adxintrin.h +0 -88
  28. data/externals/oclint/lib/clang/3.7.0/include/altivec.h +0 -13528
  29. data/externals/oclint/lib/clang/3.7.0/include/ammintrin.h +0 -215
  30. data/externals/oclint/lib/clang/3.7.0/include/arm_acle.h +0 -304
  31. data/externals/oclint/lib/clang/3.7.0/include/arm_neon.h +0 -68419
  32. data/externals/oclint/lib/clang/3.7.0/include/avx2intrin.h +0 -1256
  33. data/externals/oclint/lib/clang/3.7.0/include/avx512bwintrin.h +0 -1250
  34. data/externals/oclint/lib/clang/3.7.0/include/avx512cdintrin.h +0 -131
  35. data/externals/oclint/lib/clang/3.7.0/include/avx512dqintrin.h +0 -242
  36. data/externals/oclint/lib/clang/3.7.0/include/avx512erintrin.h +0 -285
  37. data/externals/oclint/lib/clang/3.7.0/include/avx512fintrin.h +0 -2457
  38. data/externals/oclint/lib/clang/3.7.0/include/avx512vlbwintrin.h +0 -1907
  39. data/externals/oclint/lib/clang/3.7.0/include/avx512vldqintrin.h +0 -353
  40. data/externals/oclint/lib/clang/3.7.0/include/avx512vlintrin.h +0 -1982
  41. data/externals/oclint/lib/clang/3.7.0/include/avxintrin.h +0 -1308
  42. data/externals/oclint/lib/clang/3.7.0/include/bmi2intrin.h +0 -99
  43. data/externals/oclint/lib/clang/3.7.0/include/bmiintrin.h +0 -153
  44. data/externals/oclint/lib/clang/3.7.0/include/cpuid.h +0 -209
  45. data/externals/oclint/lib/clang/3.7.0/include/cuda_builtin_vars.h +0 -110
  46. data/externals/oclint/lib/clang/3.7.0/include/emmintrin.h +0 -1480
  47. data/externals/oclint/lib/clang/3.7.0/include/f16cintrin.h +0 -63
  48. data/externals/oclint/lib/clang/3.7.0/include/float.h +0 -124
  49. data/externals/oclint/lib/clang/3.7.0/include/fma4intrin.h +0 -236
  50. data/externals/oclint/lib/clang/3.7.0/include/fmaintrin.h +0 -234
  51. data/externals/oclint/lib/clang/3.7.0/include/fxsrintrin.h +0 -55
  52. data/externals/oclint/lib/clang/3.7.0/include/htmintrin.h +0 -226
  53. data/externals/oclint/lib/clang/3.7.0/include/htmxlintrin.h +0 -363
  54. data/externals/oclint/lib/clang/3.7.0/include/ia32intrin.h +0 -101
  55. data/externals/oclint/lib/clang/3.7.0/include/immintrin.h +0 -203
  56. data/externals/oclint/lib/clang/3.7.0/include/inttypes.h +0 -102
  57. data/externals/oclint/lib/clang/3.7.0/include/iso646.h +0 -43
  58. data/externals/oclint/lib/clang/3.7.0/include/limits.h +0 -118
  59. data/externals/oclint/lib/clang/3.7.0/include/lzcntintrin.h +0 -72
  60. data/externals/oclint/lib/clang/3.7.0/include/mm3dnow.h +0 -167
  61. data/externals/oclint/lib/clang/3.7.0/include/mm_malloc.h +0 -75
  62. data/externals/oclint/lib/clang/3.7.0/include/mmintrin.h +0 -507
  63. data/externals/oclint/lib/clang/3.7.0/include/module.modulemap +0 -196
  64. data/externals/oclint/lib/clang/3.7.0/include/nmmintrin.h +0 -35
  65. data/externals/oclint/lib/clang/3.7.0/include/pmmintrin.h +0 -122
  66. data/externals/oclint/lib/clang/3.7.0/include/popcntintrin.h +0 -50
  67. data/externals/oclint/lib/clang/3.7.0/include/prfchwintrin.h +0 -39
  68. data/externals/oclint/lib/clang/3.7.0/include/rdseedintrin.h +0 -59
  69. data/externals/oclint/lib/clang/3.7.0/include/rtmintrin.h +0 -59
  70. data/externals/oclint/lib/clang/3.7.0/include/s390intrin.h +0 -39
  71. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/allocator_interface.h +0 -66
  72. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/asan_interface.h +0 -155
  73. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h +0 -118
  74. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/coverage_interface.h +0 -63
  75. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h +0 -114
  76. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h +0 -3070
  77. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/lsan_interface.h +0 -84
  78. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/msan_interface.h +0 -107
  79. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h +0 -222
  80. data/externals/oclint/lib/clang/3.7.0/include/shaintrin.h +0 -79
  81. data/externals/oclint/lib/clang/3.7.0/include/smmintrin.h +0 -487
  82. data/externals/oclint/lib/clang/3.7.0/include/stdalign.h +0 -35
  83. data/externals/oclint/lib/clang/3.7.0/include/stdarg.h +0 -52
  84. data/externals/oclint/lib/clang/3.7.0/include/stdatomic.h +0 -190
  85. data/externals/oclint/lib/clang/3.7.0/include/stdbool.h +0 -44
  86. data/externals/oclint/lib/clang/3.7.0/include/stddef.h +0 -137
  87. data/externals/oclint/lib/clang/3.7.0/include/stdint.h +0 -707
  88. data/externals/oclint/lib/clang/3.7.0/include/stdnoreturn.h +0 -30
  89. data/externals/oclint/lib/clang/3.7.0/include/tbmintrin.h +0 -154
  90. data/externals/oclint/lib/clang/3.7.0/include/tgmath.h +0 -1374
  91. data/externals/oclint/lib/clang/3.7.0/include/tmmintrin.h +0 -230
  92. data/externals/oclint/lib/clang/3.7.0/include/unwind.h +0 -282
  93. data/externals/oclint/lib/clang/3.7.0/include/vadefs.h +0 -65
  94. data/externals/oclint/lib/clang/3.7.0/include/varargs.h +0 -26
  95. data/externals/oclint/lib/clang/3.7.0/include/vecintrin.h +0 -8946
  96. data/externals/oclint/lib/clang/3.7.0/include/wmmintrin.h +0 -42
  97. data/externals/oclint/lib/clang/3.7.0/include/x86intrin.h +0 -81
  98. data/externals/oclint/lib/clang/3.7.0/include/xmmintrin.h +0 -1008
  99. data/externals/oclint/lib/clang/3.7.0/include/xopintrin.h +0 -809
  100. data/externals/oclint/lib/clang/3.7.0/include/xtestintrin.h +0 -41
  101. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  102. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  103. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-i386.a +0 -0
  104. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-x86_64.a +0 -0
  105. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.profile_osx.a +0 -0
  106. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.safestack_osx.a +0 -0
  107. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  108. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  109. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  110. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  111. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  112. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  113. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  114. data/externals/oclint/lib/oclint/reporters/libXcodeReporter.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libAvoidDefaultArgumentsOnVirtualMethodsRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libAvoidPrivateStaticMembersRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libBaseClassDestructorShouldBeVirtualOrProtectedRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libCoveredSwitchStatementsDontNeedDefaultRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libDestructorOfVirtualClassRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  134. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  135. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  136. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  137. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  138. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  139. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  140. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  141. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  142. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  143. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  144. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  145. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  146. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  147. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  148. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  149. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  150. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  151. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  152. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  153. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  154. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  155. data/externals/oclint/lib/oclint/rules/libObjCAssignIvarOutsideAccessorsRule.dylib +0 -0
  156. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  157. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  158. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  159. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  160. data/externals/oclint/lib/oclint/rules/libObjCVerifyIsEqualHashRule.dylib +0 -0
  161. data/externals/oclint/lib/oclint/rules/libObjCVerifyMustCallSuperRule.dylib +0 -0
  162. data/externals/oclint/lib/oclint/rules/libObjCVerifyProhibitedCallRule.dylib +0 -0
  163. data/externals/oclint/lib/oclint/rules/libObjCVerifyProtectedMethodRule.dylib +0 -0
  164. data/externals/oclint/lib/oclint/rules/libObjCVerifySubclassMustImplementRule.dylib +0 -0
  165. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  166. data/externals/oclint/lib/oclint/rules/libPreferEarlyExitRule.dylib +0 -0
  167. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  168. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  169. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  170. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  171. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  172. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  173. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  174. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  175. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  176. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  177. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  178. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  179. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  180. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  181. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  182. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  183. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  184. data/lib/coverage_html_converter.rb +0 -141
  185. data/lib/coverage_plan.rb +0 -27
  186. data/lib/device.rb +0 -27
  187. data/lib/execute.rb +0 -7
  188. data/lib/lint_plan.rb +0 -41
  189. data/lib/rules.rb +0 -23
  190. data/lib/test_plan.rb +0 -11
  191. data/lib/version.rb +0 -3
  192. data/lib/xcode.rb +0 -128
  193. data/lib/xcodebuild-helper.rb +0 -135
  194. data/spec/coverage_html_coverter_spec.rb +0 -55
  195. data/spec/coverage_plan_spec.rb +0 -23
  196. data/spec/device_spec.rb +0 -24
  197. data/spec/lint_plan_spec.rb +0 -35
  198. data/spec/rule_spec.rb +0 -37
  199. data/spec/spec_helper.rb +0 -17
  200. data/spec/test_plan_spec.rb +0 -11
  201. data/spec/xcode_dsl_actions_spec.rb +0 -227
  202. data/spec/xcode_dsl_spec.rb +0 -176
  203. data/spec/xcode_spec.rb +0 -85
  204. data/xcodebuild-helper.gemspec +0 -27
data/lib/xcode.rb DELETED
@@ -1,128 +0,0 @@
1
- require 'execute'
2
- require 'device'
3
- require 'test_plan'
4
- require 'coverage_plan'
5
- require 'lint_plan'
6
-
7
- module XCodeBuildHelper
8
- class XCode
9
- def initialize
10
- @device_registry = {}
11
- @tp_registry = {}
12
- @coverage_registry = {}
13
- @lint_registry = {}
14
- end
15
-
16
- def workspace(name)
17
- @workspace = name
18
- end
19
-
20
- def get_workspace
21
- @workspace
22
- end
23
-
24
- def scheme(name)
25
- @scheme = name
26
- end
27
-
28
- def get_scheme
29
- @scheme
30
- end
31
-
32
- def sdk(name)
33
- @sdk = name
34
- end
35
-
36
- def get_sdk
37
- @sdk
38
- end
39
-
40
- def config(name)
41
- @config = name
42
- end
43
-
44
- def get_config
45
- @config
46
- end
47
-
48
- def device(name, device = nil, &block)
49
- if device == nil
50
- if @device_registry[name] == nil
51
- device = XCodeBuildHelper::Device.new
52
- else
53
- device = @device_registry[name]
54
- end
55
- end
56
-
57
- if block_given?
58
- device.instance_eval(&block)
59
- end
60
-
61
- @device_registry[name] = device
62
- end
63
-
64
- def get_device(name)
65
- @device_registry[name]
66
- end
67
-
68
- def test_plan(name, test_plan = nil, &block)
69
- if test_plan == nil
70
- if @tp_registry[name] == nil
71
- test_plan = XCodeBuildHelper::TestPlan.new
72
- else
73
- test_plan = @tp_registry[name]
74
- end
75
- end
76
-
77
- if block_given?
78
- test_plan.instance_eval(&block)
79
- end
80
-
81
- @tp_registry[name] = test_plan
82
- end
83
-
84
- def get_test_plan(name)
85
- @tp_registry[name]
86
- end
87
-
88
- def coverage_plan(name, coverage_plan = nil, &block)
89
- if coverage_plan == nil
90
- if @coverage_registry[name] == nil
91
- coverage_plan = XCodeBuildHelper::CoveragePlan.new
92
- else
93
- coverage_plan = @coverage_registry[name]
94
- end
95
- end
96
-
97
- if block_given?
98
- coverage_plan.instance_eval(&block)
99
- end
100
-
101
- @coverage_registry[name] = coverage_plan
102
- end
103
-
104
- def get_coverage_plan(name)
105
- @coverage_registry[name]
106
- end
107
-
108
- def lint_plan(name, lint_plan = nil, &block)
109
- if lint_plan == nil
110
- if @lint_registry[name] == nil
111
- lint_plan = XCodeBuildHelper::LintPlan.new
112
- else
113
- lint_plan = @lint_registry[name]
114
- end
115
- end
116
-
117
- if block_given?
118
- lint_plan.instance_eval(&block)
119
- end
120
-
121
- @lint_registry[name] = lint_plan
122
- end
123
-
124
- def get_lint_plan(name)
125
- @lint_registry[name]
126
- end
127
- end
128
- end
@@ -1,135 +0,0 @@
1
- require 'xcode'
2
- require 'execute'
3
- require 'coverage_html_converter'
4
- require 'fileutils'
5
-
6
- module XCodeBuildHelper
7
- @registry = {}
8
- def self.[](name)
9
- @registry[name]
10
- end
11
-
12
- def self.gem_location
13
- File.expand_path(File.dirname(__dir__))
14
- end
15
-
16
- def self.define(name, &block)
17
- xcode = @registry[name]
18
- if xcode == nil
19
- xcode = XCodeBuildHelper::XCode.new
20
- end
21
- xcode.instance_eval(&block)
22
- @registry[name] = xcode
23
- end
24
-
25
- def self.build(name, device = nil)
26
- xcode = @registry[name]
27
-
28
- unless xcode == nil
29
- cmd = create_base_cmd(xcode)
30
- if device != nil
31
- cmd += parse_destination(xcode.get_device(device))
32
- end
33
- XCodeBuildHelper::Execute.call(cmd + "clean build | bundle exec xcpretty --color --report json-compilation-database")
34
- end
35
- end
36
-
37
- def self.test_suite(name, plan, device = nil)
38
- xcode = @registry[name]
39
-
40
- unless xcode == nil
41
- cmd = create_base_cmd(xcode)
42
- if device != nil
43
- cmd += parse_destination(xcode.get_device(device))
44
- end
45
- XCodeBuildHelper::Execute.call(cmd + "test | bundle exec xcpretty --color --report #{xcode.get_test_plan(plan).get_report_type}")
46
- end
47
- end
48
-
49
- def self.create_base_cmd(project)
50
- "xcodebuild -workspace \"#{project.get_workspace}.xcworkspace\" -scheme #{project.get_scheme} -sdk #{project.get_sdk} -config #{project.get_config} "
51
- end
52
-
53
- def self.parse_destination(device)
54
- if device == nil
55
- ""
56
- else
57
- "-destination 'platform=#{device.get_platform},name=#{device.get_name},OS=#{device.get_os}' "
58
- end
59
- end
60
-
61
- def self.base_app_location(xcode)
62
- unless xcode == nil
63
- cmd = create_base_cmd(xcode)
64
- result = XCodeBuildHelper::Execute.call(cmd + "-showBuildSettings")
65
- parse_app_settings(result)
66
- end
67
- end
68
-
69
- def self.parse_app_settings(settings)
70
- result = /OBJROOT = ([a-zA-Z0-9\/ _\-]+)/.match(settings)
71
- if result != nil
72
- result[1]
73
- else
74
- ""
75
- end
76
- end
77
-
78
- def self.app_binary_location(project)
79
- Dir.glob(base_app_location(project) + "/CodeCoverage/#{project.get_scheme}/Products/#{project.get_config}-#{project.get_sdk}/#{project.get_workspace.gsub(/\s+/, '\\ ')}.app/#{project.get_workspace.gsub(/\s+/,"\\ ")}").first
80
- end
81
-
82
- def self.profdata_location(project)
83
- Dir.glob(base_app_location(project) + "/CodeCoverage/#{project.get_scheme}/Coverage.profdata").first
84
- end
85
-
86
- def self.generate_coverage(name, plan)
87
- xcode = @registry[name]
88
- unless xcode == nil
89
- coverage_plan = xcode.get_coverage_plan(plan)
90
- src_files = Dir.glob(coverage_plan.get_source_files.first).map{|file| file.gsub(/ /, "\\ ") }.join(' ')
91
- result = XCodeBuildHelper::Execute.call("xcrun llvm-cov show -instr-profile \"#{profdata_location(xcode)}\" \"#{app_binary_location(xcode)}\" #{src_files}")
92
- result = result.gsub(/^warning:.*\n/, '')
93
- all_results = []
94
- result.split("\n\n").each do |file|
95
- converted_result = XCodeBuildHelper::CoverageHtmlConverter.convert_file file
96
- all_results << converted_result
97
- if converted_result
98
- FileUtils::mkdir_p coverage_plan.get_output
99
- basename = File.basename(converted_result[:title])
100
- File.write(File.join(coverage_plan.get_output, basename + '.html'), converted_result[:content].to_html)
101
- end
102
- end
103
-
104
- unless all_results.empty?
105
- index_file = XCodeBuildHelper::CoverageHtmlConverter.create_index all_results
106
- File.write(File.join(coverage_plan.get_output, 'index.html'), index_file.to_html)
107
- end
108
-
109
- FileUtils::cp(File.join(gem_location, 'assets/style.css'), coverage_plan.get_output)
110
- end
111
- end
112
-
113
- def self.lint(name, plan)
114
- xcode = @registry[name]
115
- lint_plan = xcode.get_lint_plan(plan)
116
-
117
- cmd = "bundle exec oclint-json-compilation-database"
118
- if(lint_plan.get_ignore)
119
- cmd += " -e \"#{lint_plan.get_ignore}\""
120
- end
121
- cmd += " --"
122
- if(lint_plan.get_report_type && lint_plan.get_output)
123
- cmd += " -report-type #{lint_plan.get_report_type} -o #{lint_plan.get_output}"
124
- end
125
-
126
- rules = lint_plan.get_rules
127
- rules.get_attribute_list.each do |key|
128
- u_key = rules.send("key_" + key.to_s)
129
- value = rules.send("get_" + key.to_s)
130
- cmd += " -rc #{u_key}=#{value}"
131
- end
132
-
133
- XCodeBuildHelper::Execute.call(cmd)
134
- end
135
- end
@@ -1,55 +0,0 @@
1
- require 'coverage_html_converter'
2
- require 'nokogiri'
3
-
4
- RSpec.describe XCodeBuildHelper::CoverageHtmlConverter do
5
- context "#convert_file" do
6
- it "should return a table element" do
7
- input = "TITLE:\n1 | 12|# some random code\n0 | 13|# other random code"
8
- output = XCodeBuildHelper::CoverageHtmlConverter.convert_file input
9
- document = Nokogiri::HTML(output[:content].to_html)
10
-
11
- expect(output[:title]).to eq "TITLE"
12
- expect(output[:coverage]).to eq 0.5
13
- # assert the look of the document
14
- expect(document.xpath('//html/head/link[@href]').first[:href]).to eq 'style.css'
15
- expect(document.css('body h1').first.to_html).to eq "<h1>TITLE</h1>"
16
- expect(document.css('body div.total_coverage').first.to_html).to eq "<div class=\"total_coverage low\">50.0%</div>"
17
- expect(document.css('body table tr').length).to eq 2
18
- expect(document.css('body table tr').first.to_html.gsub("\n", "")).to eq "<tr class=\"covered\"><td class=\"num\">12</td><td class=\"src\"><pre><code># some random code</code></pre></td><td class=\"coverage\">1x</td></tr>"
19
- end
20
-
21
- it "should handle rows without coverage" do
22
- input = "TITLE\n | 12|# some random code\n 1| 13|# other random code"
23
- output = XCodeBuildHelper::CoverageHtmlConverter.convert_file input
24
- document = Nokogiri::HTML(output[:content].to_html)
25
-
26
- # assert the look of the document
27
- expect(output[:coverage]).to eq 1.0
28
- expect(document.css('body table tr').first.to_html.gsub("\n", "")).to eq "<tr class=\"irrelevant\"><td class=\"num\">12</td><td class=\"src\"><pre><code># some random code</code></pre></td><td class=\"coverage\"></td></tr>"
29
- end
30
-
31
- it "should handle rows without coverage" do
32
- input = "TITLE\n 0| 12|# some random code\n 0| 13|# other random code"
33
- output = XCodeBuildHelper::CoverageHtmlConverter.convert_file input
34
- document = Nokogiri::HTML(output[:content].to_html)
35
-
36
- # assert the look of the document
37
- expect(output[:coverage]).to eq 0.0
38
- expect(document.css('body table tr').first.to_html.gsub("\n", "")).to eq "<tr class=\"uncovered\"><td class=\"num\">12</td><td class=\"src\"><pre><code># some random code</code></pre></td><td class=\"coverage\">!</td></tr>"
39
- end
40
- end
41
-
42
- context "#create_index" do
43
- it "should create a table of all the files" do
44
- input = [{:content => double(Nokogiri::HTML::Builder), :title => 'FILE_A', :coverage => 1.0}, {:content => double(Nokogiri::HTML::Builder), :title => 'FILE_B', :coverage => 0.5}]
45
-
46
- output = XCodeBuildHelper::CoverageHtmlConverter.create_index input
47
- document = Nokogiri::HTML(output.to_html)
48
- expect(document.xpath('//html/head/link[@href]').first[:href]).to eq 'style.css'
49
- expect(document.css('body h1').first.to_html).to eq "<h1>Code Coverage</h1>"
50
- expect(document.css('body div.total_coverage').first.to_html).to eq "<div class=\"total_coverage mid\">75.0%</div>"
51
- expect(document.css('body table.main tr').length).to eq 2
52
- expect(document.css('body table.main tr').first.to_html.gsub("\n", "")).to eq "<tr class=\"file\"><td class=\"name\"><a href=\"FILE_A.html\">FILE_A</a></td><td class=\"coverage high\">100.0%</td></tr>"
53
- end
54
- end
55
- end
@@ -1,23 +0,0 @@
1
- require 'coverage_plan'
2
-
3
- RSpec.describe XCodeBuildHelper::CoveragePlan do
4
- context "Setter methods" do
5
- before(:each) do
6
- @coverage_plan = XCodeBuildHelper::CoveragePlan.new
7
- end
8
- it "should set the report type" do
9
- @coverage_plan.report_type "REPORT_TYPE"
10
- expect(@coverage_plan.get_report_type).to eq "REPORT_TYPE"
11
- end
12
-
13
- it "should set the source files" do
14
- @coverage_plan.source_files ["path/tofiles/*.m"]
15
- expect(@coverage_plan.get_source_files).to eq ["path/tofiles/*.m"]
16
- end
17
-
18
- it "should set the output location" do
19
- @coverage_plan.output "/path/to/output"
20
- expect(@coverage_plan.get_output).to eq "/path/to/output"
21
- end
22
- end
23
- end
data/spec/device_spec.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'device'
2
-
3
- RSpec.describe XCodeBuildHelper::Device do
4
- context "Setter methods" do
5
- before(:each) do
6
- @device = XCodeBuildHelper::Device.new
7
- end
8
-
9
- it "should set the platform name" do
10
- @device.platform "PLATFORM"
11
- expect(@device.get_platform).to eq "PLATFORM"
12
- end
13
-
14
- it "should set the name" do
15
- @device.name "NAME"
16
- expect(@device.get_name).to eq "NAME"
17
- end
18
-
19
- it "should set the name" do
20
- @device.os "9.2"
21
- expect(@device.get_os).to eq "9.2"
22
- end
23
- end
24
- end
@@ -1,35 +0,0 @@
1
- require 'lint_plan'
2
- require 'rules'
3
-
4
- RSpec.describe XCodeBuildHelper::LintPlan do
5
- before(:each) do
6
- @lint_plan = XCodeBuildHelper::LintPlan.new
7
- end
8
-
9
- context "Setter methods" do
10
- it "should set the report type" do
11
- @lint_plan.report_type "REPORT_TYPE"
12
- expect(@lint_plan.get_report_type).to eq "REPORT_TYPE"
13
- end
14
- it "should set the output type" do
15
- @lint_plan.output "OUTPUT_LOCATION"
16
- expect(@lint_plan.get_output).to eq "OUTPUT_LOCATION"
17
- end
18
- it "should set the ignore type" do
19
- @lint_plan.ignore "IGNORE"
20
- expect(@lint_plan.get_ignore).to eq "IGNORE"
21
- end
22
- context "setting rules" do
23
- before(:each) do
24
- @rules = XCodeBuildHelper::Rules.new
25
- @rules.long_line 120
26
- @rules.short_variable_name 3
27
- end
28
- it "should set the rule list" do
29
- @lint_plan.rules @rules
30
- expect(@lint_plan.get_rules.get_long_line).to eq 120
31
- expect(@lint_plan.get_rules.get_short_variable_name).to eq 3
32
- end
33
- end
34
- end
35
- end
data/spec/rule_spec.rb DELETED
@@ -1,37 +0,0 @@
1
- require 'rules'
2
-
3
- RSpec.describe XCodeBuildHelper::Rules do
4
- before(:each) do
5
- @rules = XCodeBuildHelper::Rules.new
6
- end
7
- context "Setter methods" do
8
- it "should set the long line rule" do
9
- @rules.long_line 120
10
- expect(@rules.get_long_line).to eq 120
11
- end
12
-
13
- it "should set the shor variable name rule" do
14
- @rules.short_variable_name 3
15
- expect(@rules.get_short_variable_name).to eq 3
16
- end
17
- end
18
-
19
- context "key methods" do
20
- it "should return the uppercase version of the method" do
21
- @rules.long_line 120
22
- expect(@rules.key_long_line).to eq "LONG_LINE"
23
- end
24
-
25
- it "should return the uppercase version of the method" do
26
- expect(@rules.key_long_line).to eq nil
27
- end
28
- end
29
-
30
- context "get list of attributes" do
31
- it "should return a list of attributes" do
32
- @rules.long_line 120
33
- @rules.short_variable_name 3
34
- expect(@rules.get_attribute_list).to eq [:long_line, :short_variable_name]
35
- end
36
- end
37
- end
data/spec/spec_helper.rb DELETED
@@ -1,17 +0,0 @@
1
- require 'coveralls'
2
- Coveralls.wear!
3
-
4
- RSpec.configure do |config|
5
- config.expect_with :rspec do |expectations|
6
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
7
- end
8
-
9
- # rspec-mocks config goes here. You can use an alternate test double
10
- # library (such as bogus or mocha) by changing the `mock_with` option here.
11
- config.mock_with :rspec do |mocks|
12
- # Prevents you from mocking or stubbing a method that does not exist on
13
- # a real object. This is generally recommended, and will default to
14
- # `true` in RSpec 4.
15
- mocks.verify_partial_doubles = true
16
- end
17
- end
@@ -1,11 +0,0 @@
1
- require 'test_plan'
2
-
3
- RSpec.describe XCodeBuildHelper::TestPlan do
4
- context "setter methods" do
5
- it "should set the report type" do
6
- @test_plan = XCodeBuildHelper::TestPlan.new
7
- @test_plan.report_type "REPORT_TYPE"
8
- expect(@test_plan.get_report_type).to eq "REPORT_TYPE"
9
- end
10
- end
11
- end