xcknife 0.6.5 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 61ae96758615ce1185744290070e987ded9759c5
4
- data.tar.gz: 925f308dac333b4275ac2768d2a142aac3746912
2
+ SHA256:
3
+ metadata.gz: 79b1c563a88dfb2d6fb4cf6cefd1c845c320b555804c58c72e8ccbb7525f4f2a
4
+ data.tar.gz: dd72d8692ff7d834c54b24f4c028ee1b85e8f63978a8b44a0cc315462f21c259
5
5
  SHA512:
6
- metadata.gz: b7258f576308b34b5c69b16219941b889ea78e9e2ec0c072a52f3374e171ae157562e854a44ed650236716b293f536637900dfe569bf10df45b1105b5315dd09
7
- data.tar.gz: e014902ceec3b6aa54f75668839c7dc51efa920940206b4321e975bda55a82f504b94d57a83dc6b590e69b6e1fb10d3a71f46d3af22cd86d6e47c3521de79277
6
+ metadata.gz: 7e2d19bd7130d60a1301a125cb7ba88fedb61910732ec7adf63be818872349976801f61747416c3d7a2323bbbe15cffef4207756718ae7bb3ba57687bb76eeb4
7
+ data.tar.gz: 1b2909467c40f7277bcebd48cde21b321a9432cdc868a928425a06a25dec01f638d7d2bd64f3d5741aac47aa4e4b680681b1a2be3cebb2cef364e93376b007e3
data/.gitignore CHANGED
@@ -2,9 +2,12 @@
2
2
  pkg
3
3
  .idea/
4
4
  *.gem
5
- Gemfile.lock
6
5
  xcuserdata/
7
6
  testdumperbuild
8
7
  contents.xcworkspacedata
9
8
  TestDumper/TestDumper.dylib
10
9
  *.tmp
10
+ .bin/
11
+ .bundle/
12
+
13
+ .vscode/launch.json
@@ -0,0 +1,168 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+
4
+ Layout/LineLength:
5
+ Max: 200
6
+
7
+ Style/Encoding:
8
+ Enabled: false
9
+
10
+ Lint/AmbiguousBlockAssociation:
11
+ Exclude:
12
+ - "spec/**/*"
13
+
14
+ Metrics/AbcSize:
15
+ Enabled: false
16
+
17
+ Metrics/MethodLength:
18
+ Enabled: false
19
+
20
+ Metrics/ClassLength:
21
+ Enabled: false
22
+
23
+ Metrics/ModuleLength:
24
+ Enabled: false
25
+
26
+ Metrics/BlockLength:
27
+ Max: 30
28
+ Exclude:
29
+ - "spec/**/*.rb"
30
+
31
+ Metrics/PerceivedComplexity:
32
+ Enabled: false
33
+
34
+ Style/SignalException:
35
+ Enabled: false
36
+
37
+ Style/StringLiterals:
38
+ EnforcedStyle: single_quotes
39
+
40
+ Style/TrivialAccessors:
41
+ ExactNameMatch: true
42
+
43
+ Style/RedundantReturn:
44
+ AllowMultipleReturnValues: true
45
+
46
+ # `module_function` is not equivalent as `extend self`
47
+ Style/ModuleFunction:
48
+ Enabled: false
49
+
50
+ Style/ClassAndModuleChildren:
51
+ Enabled: false
52
+
53
+ Style/Documentation:
54
+ Enabled: false
55
+
56
+ Layout/ClosingHeredocIndentation:
57
+ Enabled: false
58
+
59
+ Layout/EmptyLinesAroundAttributeAccessor:
60
+ Enabled: true
61
+
62
+ Layout/SpaceAroundMethodCallOperator:
63
+ Enabled: true
64
+
65
+ Lint/DeprecatedOpenSSLConstant:
66
+ Enabled: true
67
+
68
+ Lint/DuplicateElsifCondition:
69
+ Enabled: true
70
+
71
+ Lint/MixedRegexpCaptureTypes:
72
+ Enabled: true
73
+
74
+ Lint/RaiseException:
75
+ Enabled: true
76
+
77
+ Lint/StructNewOverride:
78
+ Enabled: true
79
+
80
+ Style/AccessorGrouping:
81
+ Enabled: true
82
+
83
+ Style/ArrayCoercion:
84
+ Enabled: true
85
+
86
+ Style/BisectedAttrAccessor:
87
+ Enabled: true
88
+
89
+ Style/CaseLikeIf:
90
+ Enabled: true
91
+
92
+ Style/ExponentialNotation:
93
+ Enabled: true
94
+
95
+ Style/HashAsLastArrayItem:
96
+ Enabled: true
97
+
98
+ Style/HashEachMethods:
99
+ Enabled: true
100
+
101
+ Style/HashLikeCase:
102
+ Enabled: true
103
+
104
+ Style/HashTransformKeys:
105
+ Enabled: true
106
+
107
+ Style/HashTransformValues:
108
+ Enabled: true
109
+
110
+ Style/RedundantAssignment:
111
+ Enabled: true
112
+
113
+ Style/RedundantFetchBlock:
114
+ Enabled: true
115
+
116
+ Style/RedundantFileExtensionInRequire:
117
+ Enabled: true
118
+
119
+ Style/RedundantRegexpCharacterClass:
120
+ Enabled: true
121
+
122
+ Style/RedundantRegexpEscape:
123
+ Enabled: true
124
+
125
+ Style/SlicingWithRange:
126
+ Enabled: true
127
+
128
+ Lint/BinaryOperatorWithIdenticalOperands:
129
+ Enabled: true
130
+
131
+ Lint/DuplicateRescueException:
132
+ Enabled: true
133
+
134
+ Lint/EmptyConditionalBody:
135
+ Enabled: true
136
+
137
+ Lint/FloatComparison:
138
+ Enabled: true
139
+
140
+ Lint/MissingSuper:
141
+ Enabled: true
142
+
143
+ Lint/OutOfRangeRegexpRef:
144
+ Enabled: true
145
+
146
+ Lint/SelfAssignment:
147
+ Enabled: true
148
+
149
+ Lint/TopLevelReturnWithArgument:
150
+ Enabled: true
151
+
152
+ Lint/UnreachableLoop:
153
+ Enabled: true
154
+
155
+ Style/ExplicitBlockArgument:
156
+ Enabled: true
157
+
158
+ Style/GlobalStdStream:
159
+ Enabled: true
160
+
161
+ Style/OptionalBooleanParameter:
162
+ Enabled: true
163
+
164
+ Style/SingleArgumentDig:
165
+ Enabled: true
166
+
167
+ Style/StringConcatenation:
168
+ Enabled: true
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.6.1
@@ -3,11 +3,7 @@ sudo: false
3
3
  matrix:
4
4
  include:
5
5
  - os: osx
6
- osx_image: xcode8
7
- - os: osx
8
- osx_image: xcode8.1
9
- - os: osx
10
- osx_image: xcode8.2
6
+ osx_image: xcode11.6
11
7
 
12
8
  before_script:
13
9
  - export LANG=en_US.UTF-8
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ CWD=$(pwd)
4
+
5
+ if [[ "$CWD" == *".vscode"* ]] ; then
6
+ cd ..
7
+ fi
8
+
9
+ RSPEC_PATH="$(command -v rspec)"
10
+ BUNDLE_PATH="$(command -v bundle | sed 's/bin/wrappers/')"
11
+ RDEBUG_PATH=$(cd ./ || exit 1; bundle show ruby-debug-ide)
12
+
13
+ if [ -z "$RSPEC_PATH" ] || [ -z "$BUNDLE_PATH" ] || [ -z "$RDEBUG_PATH" ]; then
14
+ echo "error: Missing required gem, please run 'bundle install'"
15
+ exit 1
16
+ fi
17
+
18
+ echo "Using configuration paths:"
19
+ echo "$RSPEC_PATH"
20
+ echo "$BUNDLE_PATH"
21
+ echo "$RDEBUG_PATH"
22
+
23
+ cat < "./.vscode/vscode_ruby.json.template" | sed "s|RSPEC_PATH|$RSPEC_PATH|g" | sed "s|BUNDLE_PATH|$BUNDLE_PATH|g" | sed "s|RDEBUG_PATH|$RDEBUG_PATH|g" > ./.vscode/launch.json
@@ -0,0 +1,44 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "Run RSpec - all",
6
+ "type": "Ruby",
7
+ "request": "launch",
8
+ "cwd": "${workspaceRoot}",
9
+ "useBundler": true,
10
+ "pathToBundler": "BUNDLE_PATH",
11
+ "program": "RSPEC_PATH",
12
+ "args": [
13
+ "--pattern",
14
+ "${workspaceRoot}/spec/**/*_spec.rb"
15
+ ]
16
+ },
17
+ {
18
+ "name": "Debug RSpec - open spec file",
19
+ "type": "Ruby",
20
+ "request": "launch",
21
+ "cwd": "${workspaceRoot}",
22
+ "useBundler": true,
23
+ "pathToBundler": "BUNDLE_PATH",
24
+ "pathToRDebugIDE": "RDEBUG_PATH",
25
+ "debuggerPort": "1235",
26
+ "program": "RSPEC_PATH",
27
+ "args": [
28
+ "${file}"
29
+ ]
30
+ },
31
+ {
32
+ "name": "Debug RSpec - open spec file & current line",
33
+ "type": "Ruby",
34
+ "request": "launch",
35
+ "cwd": "${workspaceRoot}",
36
+ "useBundler": true,
37
+ "pathToBundler": "BUNDLE_PATH",
38
+ "pathToRDebugIDE": "RDEBUG_PATH",
39
+ "debuggerPort": "1235",
40
+ "program": "RSPEC_PATH",
41
+ "args": ["${file}:${lineNumber}"]
42
+ }
43
+ ]
44
+ }
data/Gemfile CHANGED
@@ -1,8 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  group :development, :test do
4
- gem 'rake', '~> 11.1.1'
5
- gem 'rspec', '~> 3.4.0'
6
+ gem 'rake', '~> 13.0.1'
7
+ gem 'rspec', '~> 3.9.0'
8
+ gem 'rubocop', '~> 0.88'
9
+
10
+ group :debug_vscode do
11
+ gem 'debase'
12
+ gem 'ruby-debug-ide', '~> 0.7.2'
13
+ end
6
14
  end
7
15
 
8
16
  gemspec
@@ -0,0 +1,63 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ xcknife (0.12.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.1)
10
+ debase (0.2.4.1)
11
+ debase-ruby_core_source (>= 0.10.2)
12
+ debase-ruby_core_source (0.10.9)
13
+ diff-lcs (1.3)
14
+ parallel (1.19.2)
15
+ parser (2.7.1.4)
16
+ ast (~> 2.4.1)
17
+ rainbow (3.0.0)
18
+ rake (13.0.1)
19
+ regexp_parser (1.7.1)
20
+ rexml (3.2.4)
21
+ rspec (3.9.0)
22
+ rspec-core (~> 3.9.0)
23
+ rspec-expectations (~> 3.9.0)
24
+ rspec-mocks (~> 3.9.0)
25
+ rspec-core (3.9.2)
26
+ rspec-support (~> 3.9.3)
27
+ rspec-expectations (3.9.2)
28
+ diff-lcs (>= 1.2.0, < 2.0)
29
+ rspec-support (~> 3.9.0)
30
+ rspec-mocks (3.9.1)
31
+ diff-lcs (>= 1.2.0, < 2.0)
32
+ rspec-support (~> 3.9.0)
33
+ rspec-support (3.9.3)
34
+ rubocop (0.89.1)
35
+ parallel (~> 1.10)
36
+ parser (>= 2.7.1.1)
37
+ rainbow (>= 2.2.2, < 4.0)
38
+ regexp_parser (>= 1.7)
39
+ rexml
40
+ rubocop-ast (>= 0.3.0, < 1.0)
41
+ ruby-progressbar (~> 1.7)
42
+ unicode-display_width (>= 1.4.0, < 2.0)
43
+ rubocop-ast (0.3.0)
44
+ parser (>= 2.7.1.4)
45
+ ruby-debug-ide (0.7.2)
46
+ rake (>= 0.8.1)
47
+ ruby-progressbar (1.10.1)
48
+ unicode-display_width (1.7.0)
49
+
50
+ PLATFORMS
51
+ ruby
52
+
53
+ DEPENDENCIES
54
+ bundler (~> 1.12)
55
+ debase
56
+ rake (~> 13.0.1)
57
+ rspec (~> 3.9.0)
58
+ rubocop (~> 0.88)
59
+ ruby-debug-ide (~> 0.7.2)
60
+ xcknife!
61
+
62
+ BUNDLED WITH
63
+ 1.17.3
@@ -0,0 +1,2 @@
1
+ ---
2
+ cc: [mdx-ios]
data/README.md CHANGED
@@ -9,7 +9,7 @@ It works by leveraging [xctool's](https://github.com/facebook/xctool) [json-stre
9
9
 
10
10
  XCKnife generates a list of only arguments meant to be pass to Xctool's [*-only* test arguments](https://github.com/facebook/xctool#testing), but alternatively could used to generate multiple xcschemes with the proper test partitions.
11
11
 
12
- More information on XCKnife, go [here](https://corner.squareup.com/2016/06/xcknife-faster-distributed-tests-for-ios.html).
12
+ More information on XCKnife, go [here](https://developer.squareup.com/blog/xcknife-faster-distributed-tests-for-ios).
13
13
 
14
14
  ## Install
15
15
 
@@ -194,6 +194,14 @@ XCKnife uses only a few attributes of a json-stream file. If you are storing the
194
194
 
195
195
  `$ xcknife-min example/xcknife-exemplar-historical-data.json-stream minified.json-stream`
196
196
 
197
+ ## Dependencies
198
+
199
+ XCKnife requires the use of the `gtimeout` command, which is provided in the GNU coreutils brew package. If you don't already have them, they can be installed with the command:
200
+
201
+ ```
202
+ brew install coreutils
203
+ ```
204
+
197
205
  ## Contributing
198
206
 
199
207
  Any contributors to the master *xcknife* repository must sign the
data/Rakefile CHANGED
@@ -1,22 +1,26 @@
1
- require 'rspec/core/rake_task'
2
- require "bundler/gem_tasks"
1
+ # frozen_string_literal: true
2
+
3
3
  require 'fileutils'
4
4
 
5
+ require 'rspec/core/rake_task'
5
6
  RSpec::Core::RakeTask.new(:spec)
6
7
 
7
- task default: :spec
8
+ require 'rubocop/rake_task'
9
+ RuboCop::RakeTask.new
8
10
 
9
- desc "Builds TestDumper.dylib"
11
+ task default: %w[spec rubocop]
12
+
13
+ desc 'Builds TestDumper.dylib'
10
14
  task :build_test_dumper do
11
- target_dir = File.join(File.dirname(__FILE__), "TestDumper")
15
+ target_dir = File.join(File.dirname(__FILE__), 'TestDumper')
12
16
  Dir.chdir(target_dir) do
13
- system "./build.sh"
14
- FileUtils.copy_file("./testdumperbuild/Build/Products/Debug-iphonesimulator/TestDumper.framework/TestDumper", "./TestDumper.dylib")
15
- puts "TestDumper.dylib was created successfully"
17
+ system './build.sh'
18
+ FileUtils.copy_file('./testdumperbuild/Build/Products/Debug-iphonesimulator/TestDumper.framework/TestDumper', './TestDumper.dylib')
19
+ puts 'TestDumper.dylib was created successfully'
16
20
  end
17
21
  end
18
22
 
19
- desc "Release wih test_dumper"
20
- task :gem_release => [:build_test_dumper, :build] do
23
+ desc 'Release wih test_dumper'
24
+ task gem_release: %i[build_test_dumper build] do
21
25
  system 'gem push pkg/xcknife-*.gem'
22
- end
26
+ end
@@ -1,6 +1,6 @@
1
1
  # TestDumper - EXPERIMENTAL
2
2
 
3
- Utility that replaces xctool for enumerating tests. It requires the `build-for-testing` feature Xcode8 introduced on xcodebuild. In particular, it leverages the xctestrun file (see `man xcodebuild.xctestrun`).
3
+ Utility that replaces xctool for enumerating tests. It requires the `build-for-testing` feature Xcode 8 introduced on xcodebuild. In particular, it leverages the xctestrun file (see `man xcodebuild.xctestrun`).
4
4
 
5
5
  ## Building.
6
6
 
@@ -17,6 +17,7 @@ $ xcknife-test-dumper --help
17
17
  Usage: xcknife-test-dumper [options] derived_data_folder output_file [device_id]
18
18
  -d, --debug Debug mode enabled
19
19
  -r, --retry-count COUNT Max retry count for simulator output
20
+ -x, --simctl-timeout SECONDS Max allowed time in seconds for simctl commands
20
21
  -t OUTPUT_FOLDER, Sets temporary Output folder
21
22
  --temporary-output
22
23
  -s, --scheme XCSCHEME_FILE Reads environments variables from the xcscheme file