xctest_list 1.1.8 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/xctest_list.rb +14 -12
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5ba4ec13aa03904dd67add015a892024392888ca2249507a4374dba75e877ea6
|
4
|
+
data.tar.gz: 3e2e5a315360be63e4b4811f7d9cc49163ccefc56a00b806b98665928d2ad8a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e92a404299ddbfaa80402f7e44463eb17e4c98f6655ce8f93766682377ec89baa2847a85e37b68abe7ca60f62815ffbd7aba7353bc9337ad20675299c65e84d
|
7
|
+
data.tar.gz: ee4c4972c09a280f787521cd655ae603883d4c5fb0ca80ead55bc2ec322cafa93d9cb1cc454fb505d7ba226640e9ad6d24e6b65863b4c2635685ad1ece41977e
|
data/lib/xctest_list.rb
CHANGED
@@ -35,48 +35,50 @@ class XCTestList
|
|
35
35
|
end
|
36
36
|
|
37
37
|
# find the Objective-C symbols in the bundle's binary
|
38
|
-
def self.objc_tests(xctest_bundle_path)
|
38
|
+
def self.objc_tests(xctest_bundle_path, test_prefix: "test")
|
39
39
|
tests = []
|
40
40
|
objc_symbols_command_output_tempfile = Tempfile.new(File.basename(xctest_bundle_path) + "objc")
|
41
41
|
system("nm -U '#{binary_path(xctest_bundle_path)}' > '#{objc_symbols_command_output_tempfile.path}'")
|
42
42
|
tests = []
|
43
43
|
File.foreach(objc_symbols_command_output_tempfile.path) do |line|
|
44
|
-
|
45
|
-
|
44
|
+
regex = / t -\[(?<testclass>\w+) (?<testmethod>#{test_prefix}\w*)\]/
|
45
|
+
if (matches = regex.match(line))
|
46
|
+
tests << "#{matches[:testclass]}/#{matches[:testmethod]}"
|
46
47
|
end
|
47
48
|
end
|
48
49
|
tests
|
49
50
|
end
|
50
51
|
|
51
52
|
# cleanup the Swift nm output to only provide the swift symbols
|
52
|
-
def self.swift_symbols(swift_symbols_cmd_output)
|
53
|
+
def self.swift_symbols(swift_symbols_cmd_output, test_prefix: "test")
|
53
54
|
swift_symbols_cmd_output.gsub(/^.* .* (.*)$/, '\1')
|
54
55
|
end
|
55
56
|
|
56
|
-
def self.swift_symbol_dump_command(xctest_binary_path)
|
57
|
+
def self.swift_symbol_dump_command(xctest_binary_path, test_prefix: "test")
|
57
58
|
nm_version_string = `nm -version | head -n 1 | sed -E 's/Apple LLVM version ([0-9]+\.[0-9]+\.[0-9]+).*/\\1/'`.chomp
|
58
59
|
if Gem::Version.new(nm_version_string) < Gem::Version.new('9.0.0')
|
59
60
|
"nm -gU '#{xctest_binary_path}' | cut -d' ' -f3 | xcrun swift-demangle | grep -E '^\\S+\\.test[^.]+\\(\\)$' | sed 's/ () -> ()/()/'"
|
60
61
|
else
|
61
|
-
"nm -gU '#{xctest_binary_path}' | cut -d' ' -f3 | xargs -s 131072 xcrun swift-demangle | cut -d' ' -f3 | grep -e '[\\.|_]'
|
62
|
+
"nm -gU '#{xctest_binary_path}' | cut -d' ' -f3 | xargs -s 131072 xcrun swift-demangle | cut -d' ' -f3 | grep -e '[\\.|_]'#{test_prefix}"
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
65
66
|
# find the Swift symbols in the bundle's binary
|
66
|
-
def self.swift_tests(xctest_bundle_path)
|
67
|
+
def self.swift_tests(xctest_bundle_path, test_prefix: "test")
|
67
68
|
swift_symbols_command_output_tempfile = Tempfile.new(File.basename(xctest_bundle_path) + "swift")
|
68
|
-
system("#{swift_symbol_dump_command(binary_path(xctest_bundle_path))} > '#{swift_symbols_command_output_tempfile.path}'")
|
69
|
+
system("#{swift_symbol_dump_command(binary_path(xctest_bundle_path), test_prefix: test_prefix)} > '#{swift_symbols_command_output_tempfile.path}'")
|
69
70
|
tests = []
|
70
71
|
File.foreach(swift_symbols_command_output_tempfile.path) do |line|
|
71
|
-
|
72
|
-
|
72
|
+
regex = /\w+\.(?<testclass>[^\.]+)\.(?<testmethod>#{test_prefix}[^\(]*)\(/
|
73
|
+
if /.*-\[.*\]/ !~ line && (matches = regex.match(line))
|
74
|
+
tests << "#{matches[:testclass]}/#{matches[:testmethod]}"
|
73
75
|
end
|
74
76
|
end
|
75
77
|
tests
|
76
78
|
end
|
77
79
|
|
78
80
|
# find the Objective-C and Swift tests in the binary's bundle
|
79
|
-
def self.tests(xctest_bundle_path)
|
80
|
-
objc_tests(xctest_bundle_path) | swift_tests(xctest_bundle_path)
|
81
|
+
def self.tests(xctest_bundle_path, test_prefix: 'test')
|
82
|
+
objc_tests(xctest_bundle_path, test_prefix: test_prefix) | swift_tests(xctest_bundle_path, test_prefix: test_prefix)
|
81
83
|
end
|
82
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xctest_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lyndsey Ferguson
|
@@ -50,8 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: '0'
|
52
52
|
requirements: []
|
53
|
-
|
54
|
-
rubygems_version: 2.6.11
|
53
|
+
rubygems_version: 3.0.6
|
55
54
|
signing_key:
|
56
55
|
specification_version: 4
|
57
56
|
summary: List the tests in the given xctest bundle
|