kymera 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/kymera.iml +1 -1
- data/.idea/workspace.xml +118 -125
- data/lib/kymera/broker.rb +31 -15
- data/lib/kymera/client.rb +3 -0
- data/lib/kymera/cucumber/cucumber_test_runner.rb +11 -4
- data/lib/kymera/platform_utils.rb +9 -0
- data/lib/kymera/test_results_collector.rb +15 -43
- data/lib/kymera/version.rb +1 -1
- data/lib/kymera/worker.rb +33 -30
- data/lib/spec/client_test_run_spec.rb +4 -3
- data/lib/spec/full_run_for_linux_spec.rb +8 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c19699686e5847e74e029fa8b565aa5656f3e80
|
4
|
+
data.tar.gz: eb6131673665a32abec766b398b049d7244c00b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3e4b4f28defcfbb0e9e34ead7049a459f41c50bbb08d1611159f964b3356d715f8e205f29b9878e378f046a60dfc18d748388b6ea8d09cb76b4575f52b810a1
|
7
|
+
data.tar.gz: f03d32b1fd05ad623b63046b3ca08da0d65eaf89047dfb9ec15f5f19302e37aba1f91ec473ec7df9ad432104a32b715fe371d82d340f7db64c1ad5bde73e04ca
|
data/.idea/kymera.iml
CHANGED
@@ -178,7 +178,7 @@
|
|
178
178
|
<orderEntry type="library" scope="PROVIDED" name="ffi-rzmq (v2.0.1, ruby-2.0.0-p481) [gem]" level="application" />
|
179
179
|
<orderEntry type="library" scope="PROVIDED" name="ffi-rzmq-core (v1.0.3, ruby-2.0.0-p481) [gem]" level="application" />
|
180
180
|
<orderEntry type="library" scope="PROVIDED" name="gherkin (v2.12.2, ruby-2.0.0-p481) [gem]" level="application" />
|
181
|
-
<orderEntry type="library" scope="PROVIDED" name="json (v1.8.
|
181
|
+
<orderEntry type="library" scope="PROVIDED" name="json (v1.8.2, ruby-2.0.0-p481) [gem]" level="application" />
|
182
182
|
<orderEntry type="library" scope="PROVIDED" name="mongo (v1.10.2, ruby-2.0.0-p481) [gem]" level="application" />
|
183
183
|
<orderEntry type="library" scope="PROVIDED" name="multi_json (v1.10.1, ruby-2.0.0-p481) [gem]" level="application" />
|
184
184
|
<orderEntry type="library" scope="PROVIDED" name="multi_test (v0.1.1, ruby-2.0.0-p481) [gem]" level="application" />
|
data/.idea/workspace.xml
CHANGED
@@ -2,7 +2,13 @@
|
|
2
2
|
<project version="4">
|
3
3
|
<component name="ChangeListManager">
|
4
4
|
<list default="true" id="fe8b228f-39c5-4d1c-a114-7c0c9683636f" name="Default" comment="">
|
5
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/kymera/broker.rb" afterPath="$PROJECT_DIR$/lib/kymera/broker.rb" />
|
6
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb" afterPath="$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb" />
|
7
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/kymera.iml" afterPath="$PROJECT_DIR$/.idea/kymera.iml" />
|
8
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/kymera/test_results_collector.rb" afterPath="$PROJECT_DIR$/lib/kymera/test_results_collector.rb" />
|
5
9
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/kymera/version.rb" afterPath="$PROJECT_DIR$/lib/kymera/version.rb" />
|
10
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/kymera/worker.rb" afterPath="$PROJECT_DIR$/lib/kymera/worker.rb" />
|
11
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
6
12
|
</list>
|
7
13
|
<ignored path="kymera.iws" />
|
8
14
|
<ignored path=".idea/workspace.xml" />
|
@@ -40,18 +46,18 @@
|
|
40
46
|
<file leaf-file-name="broker.rb" pinned="false" current-in-tab="false">
|
41
47
|
<entry file="file://$PROJECT_DIR$/lib/kymera/broker.rb">
|
42
48
|
<provider selected="true" editor-type-id="text-editor">
|
43
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
44
|
-
<caret line="
|
49
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2460">
|
50
|
+
<caret line="22" column="26" selection-start-line="22" selection-start-column="26" selection-end-line="22" selection-end-column="26" />
|
45
51
|
<folding />
|
46
52
|
</state>
|
47
53
|
</provider>
|
48
54
|
</entry>
|
49
55
|
</file>
|
50
|
-
<file leaf-file-name="
|
51
|
-
<entry file="file://$PROJECT_DIR$/
|
56
|
+
<file leaf-file-name="kymera.gemspec" pinned="false" current-in-tab="false">
|
57
|
+
<entry file="file://$PROJECT_DIR$/kymera.gemspec">
|
52
58
|
<provider selected="true" editor-type-id="text-editor">
|
53
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
54
|
-
<caret line="
|
59
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="165" max-vertical-offset="555">
|
60
|
+
<caret line="11" column="64" selection-start-line="11" selection-start-column="64" selection-end-line="11" selection-end-column="64" />
|
55
61
|
<folding />
|
56
62
|
</state>
|
57
63
|
</provider>
|
@@ -60,8 +66,18 @@
|
|
60
66
|
<file leaf-file-name="test_results_collector.rb" pinned="false" current-in-tab="false">
|
61
67
|
<entry file="file://$PROJECT_DIR$/lib/kymera/test_results_collector.rb">
|
62
68
|
<provider selected="true" editor-type-id="text-editor">
|
63
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
64
|
-
<caret line="
|
69
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1545">
|
70
|
+
<caret line="11" column="29" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
|
71
|
+
<folding />
|
72
|
+
</state>
|
73
|
+
</provider>
|
74
|
+
</entry>
|
75
|
+
</file>
|
76
|
+
<file leaf-file-name="szmq.rb" pinned="false" current-in-tab="false">
|
77
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/szmq/szmq.rb">
|
78
|
+
<provider selected="true" editor-type-id="text-editor">
|
79
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="1745" max-vertical-offset="3870">
|
80
|
+
<caret line="140" column="6" selection-start-line="140" selection-start-column="6" selection-end-line="140" selection-end-column="6" />
|
65
81
|
<folding />
|
66
82
|
</state>
|
67
83
|
</provider>
|
@@ -70,8 +86,8 @@
|
|
70
86
|
<file leaf-file-name="full_run_for_linux_spec.rb" pinned="false" current-in-tab="false">
|
71
87
|
<entry file="file://$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb">
|
72
88
|
<provider selected="true" editor-type-id="text-editor">
|
73
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
74
|
-
<caret line="
|
89
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="855">
|
90
|
+
<caret line="35" column="3" selection-start-line="35" selection-start-column="3" selection-end-line="35" selection-end-column="3" />
|
75
91
|
<folding />
|
76
92
|
</state>
|
77
93
|
</provider>
|
@@ -90,8 +106,8 @@
|
|
90
106
|
<file leaf-file-name="client.rb" pinned="false" current-in-tab="false">
|
91
107
|
<entry file="file://$PROJECT_DIR$/lib/kymera/client.rb">
|
92
108
|
<provider selected="true" editor-type-id="text-editor">
|
93
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
94
|
-
<caret line="
|
109
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="1590">
|
110
|
+
<caret line="17" column="36" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" />
|
95
111
|
<folding />
|
96
112
|
</state>
|
97
113
|
</provider>
|
@@ -100,18 +116,8 @@
|
|
100
116
|
<file leaf-file-name="worker.rb" pinned="false" current-in-tab="false">
|
101
117
|
<entry file="file://$PROJECT_DIR$/lib/kymera/worker.rb">
|
102
118
|
<provider selected="true" editor-type-id="text-editor">
|
103
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
104
|
-
<caret line="
|
105
|
-
<folding />
|
106
|
-
</state>
|
107
|
-
</provider>
|
108
|
-
</entry>
|
109
|
-
</file>
|
110
|
-
<file leaf-file-name="cucumber_test_runner.rb" pinned="false" current-in-tab="false">
|
111
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_test_runner.rb">
|
112
|
-
<provider selected="true" editor-type-id="text-editor">
|
113
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1215">
|
114
|
-
<caret line="32" column="48" selection-start-line="32" selection-start-column="48" selection-end-line="32" selection-end-column="48" />
|
119
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="1350" max-vertical-offset="2100">
|
120
|
+
<caret line="115" column="0" selection-start-line="115" selection-start-column="0" selection-end-line="115" selection-end-column="0" />
|
115
121
|
<folding />
|
116
122
|
</state>
|
117
123
|
</provider>
|
@@ -120,18 +126,8 @@
|
|
120
126
|
<file leaf-file-name="platform_utils.rb" pinned="false" current-in-tab="false">
|
121
127
|
<entry file="file://$PROJECT_DIR$/lib/kymera/platform_utils.rb">
|
122
128
|
<provider selected="true" editor-type-id="text-editor">
|
123
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
124
|
-
<caret line="
|
125
|
-
<folding />
|
126
|
-
</state>
|
127
|
-
</provider>
|
128
|
-
</entry>
|
129
|
-
</file>
|
130
|
-
<file leaf-file-name="kymera.rb" pinned="false" current-in-tab="false">
|
131
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera.rb">
|
132
|
-
<provider selected="true" editor-type-id="text-editor">
|
133
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="165" max-vertical-offset="1380">
|
134
|
-
<caret line="19" column="81" selection-start-line="19" selection-start-column="81" selection-end-line="19" selection-end-column="81" />
|
129
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="210" max-vertical-offset="1320">
|
130
|
+
<caret line="49" column="23" selection-start-line="49" selection-start-column="23" selection-end-line="49" selection-end-column="23" />
|
135
131
|
<folding />
|
136
132
|
</state>
|
137
133
|
</provider>
|
@@ -154,7 +150,6 @@
|
|
154
150
|
<option value="$PROJECT_DIR$/lib/kymera/cucumber/cucumber_html_parser.rb" />
|
155
151
|
<option value="$PROJECT_DIR$/lib/spec/config_options.txt" />
|
156
152
|
<option value="$PROJECT_DIR$/lib/spec/test_file_paths_spec.rb" />
|
157
|
-
<option value="$PROJECT_DIR$/lib/kymera/test_results_collector.rb" />
|
158
153
|
<option value="$PROJECT_DIR$/lib/kymera/config/config.yaml" />
|
159
154
|
<option value="$PROJECT_DIR$/lib/kymera/results_bus.rb" />
|
160
155
|
<option value="$PROJECT_DIR$/lib/kymera/config/config.rb" />
|
@@ -162,19 +157,22 @@
|
|
162
157
|
<option value="$PROJECT_DIR$/bin/start_kymera_collector.rb" />
|
163
158
|
<option value="$PROJECT_DIR$/bin/kymera.rb" />
|
164
159
|
<option value="$PROJECT_DIR$/bin/kymera" />
|
165
|
-
<option value="$PROJECT_DIR$/lib/spec/client_test_run_spec.rb" />
|
166
160
|
<option value="$PROJECT_DIR$/kymera.gemspec" />
|
167
161
|
<option value="$PROJECT_DIR$/README.md" />
|
168
162
|
<option value="$PROJECT_DIR$/config.md" />
|
169
163
|
<option value="$PROJECT_DIR$/lib/kymera/array_exten.rb" />
|
170
164
|
<option value="$PROJECT_DIR$/lib/spec/startup_broker_bus_collector_spec.rb" />
|
171
165
|
<option value="$PROJECT_DIR$/lib/spec/worker_test_run_spec.rb" />
|
166
|
+
<option value="$PROJECT_DIR$/lib/kymera.rb" />
|
172
167
|
<option value="$PROJECT_DIR$/lib/kymera/platform_utils.rb" />
|
173
|
-
<option value="$PROJECT_DIR$/lib/kymera/broker.rb" />
|
174
168
|
<option value="$PROJECT_DIR$/lib/kymera/client.rb" />
|
175
|
-
<option value="$PROJECT_DIR$/lib/kymera.rb" />
|
176
|
-
<option value="$PROJECT_DIR$/lib/
|
169
|
+
<option value="$PROJECT_DIR$/lib/kymera/cucumber/cucumber_test_runner.rb" />
|
170
|
+
<option value="$PROJECT_DIR$/lib/spec/client_test_run_spec.rb" />
|
177
171
|
<option value="$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb" />
|
172
|
+
<option value="$PROJECT_DIR$/lib/kymera/szmq/szmq.rb" />
|
173
|
+
<option value="$PROJECT_DIR$/lib/kymera/test_results_collector.rb" />
|
174
|
+
<option value="$PROJECT_DIR$/lib/kymera/worker.rb" />
|
175
|
+
<option value="$PROJECT_DIR$/lib/kymera/broker.rb" />
|
178
176
|
<option value="$PROJECT_DIR$/lib/kymera/version.rb" />
|
179
177
|
</list>
|
180
178
|
</option>
|
@@ -303,28 +301,6 @@
|
|
303
301
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
304
302
|
</PATH_ELEMENT>
|
305
303
|
</PATH>
|
306
|
-
<PATH>
|
307
|
-
<PATH_ELEMENT>
|
308
|
-
<option name="myItemId" value="kymera" />
|
309
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
310
|
-
</PATH_ELEMENT>
|
311
|
-
<PATH_ELEMENT>
|
312
|
-
<option name="myItemId" value="kymera" />
|
313
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
314
|
-
</PATH_ELEMENT>
|
315
|
-
<PATH_ELEMENT>
|
316
|
-
<option name="myItemId" value="lib" />
|
317
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
318
|
-
</PATH_ELEMENT>
|
319
|
-
<PATH_ELEMENT>
|
320
|
-
<option name="myItemId" value="kymera" />
|
321
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
322
|
-
</PATH_ELEMENT>
|
323
|
-
<PATH_ELEMENT>
|
324
|
-
<option name="myItemId" value="config" />
|
325
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
326
|
-
</PATH_ELEMENT>
|
327
|
-
</PATH>
|
328
304
|
</subPane>
|
329
305
|
</pane>
|
330
306
|
<pane id="Scope" />
|
@@ -336,7 +312,7 @@
|
|
336
312
|
<property name="recentsLimit" value="5" />
|
337
313
|
<property name="options.lastSelected" value="org.jetbrains.plugins.ruby.settings.RubyActiveModuleSdkConfigurable" />
|
338
314
|
<property name="SearchEverywhereHistory" value="s @" />
|
339
|
-
<property name="last_opened_file_path" value="$
|
315
|
+
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
340
316
|
<property name="FullScreen" value="false" />
|
341
317
|
<property name="options.searchVisible" value="true" />
|
342
318
|
<property name="options.splitter.details.proportions" value="0.2" />
|
@@ -653,7 +629,7 @@
|
|
653
629
|
<servers />
|
654
630
|
</component>
|
655
631
|
<component name="ToolWindowManager">
|
656
|
-
<frame x="0" y="23" width="1440" height="821" extended-state="
|
632
|
+
<frame x="0" y="23" width="1440" height="821" extended-state="6" />
|
657
633
|
<editor active="true" />
|
658
634
|
<layout>
|
659
635
|
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
@@ -662,7 +638,7 @@
|
|
662
638
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
663
639
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
664
640
|
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
665
|
-
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.
|
641
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.23680556" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
666
642
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
667
643
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32972974" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
668
644
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
@@ -676,6 +652,27 @@
|
|
676
652
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
677
653
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3284974" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
678
654
|
</layout>
|
655
|
+
<layout-to-restore>
|
656
|
+
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
657
|
+
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
658
|
+
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
|
659
|
+
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
660
|
+
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
661
|
+
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
662
|
+
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3277635" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
663
|
+
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
664
|
+
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
665
|
+
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32972974" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
666
|
+
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
667
|
+
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
668
|
+
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
669
|
+
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
670
|
+
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
671
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.20347223" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
672
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3284974" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
673
|
+
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
674
|
+
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
675
|
+
</layout-to-restore>
|
679
676
|
</component>
|
680
677
|
<component name="Vcs.Log.UiProperties">
|
681
678
|
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
@@ -711,7 +708,6 @@
|
|
711
708
|
<provider selected="true" editor-type-id="text-editor">
|
712
709
|
<state vertical-scroll-proportion="0.0" vertical-offset="240" max-vertical-offset="465">
|
713
710
|
<caret line="16" column="26" selection-start-line="16" selection-start-column="26" selection-end-line="16" selection-end-column="26" />
|
714
|
-
<folding />
|
715
711
|
</state>
|
716
712
|
</provider>
|
717
713
|
</entry>
|
@@ -719,7 +715,6 @@
|
|
719
715
|
<provider selected="true" editor-type-id="text-editor">
|
720
716
|
<state vertical-scroll-proportion="0.0" vertical-offset="485" max-vertical-offset="3870">
|
721
717
|
<caret line="50" column="6" selection-start-line="50" selection-start-column="6" selection-end-line="55" selection-end-column="9" />
|
722
|
-
<folding />
|
723
718
|
</state>
|
724
719
|
</provider>
|
725
720
|
</entry>
|
@@ -856,13 +851,6 @@
|
|
856
851
|
</state>
|
857
852
|
</provider>
|
858
853
|
</entry>
|
859
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_results_parser.rb">
|
860
|
-
<provider selected="true" editor-type-id="text-editor">
|
861
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="329" max-vertical-offset="1666">
|
862
|
-
<caret line="65" column="27" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
863
|
-
</state>
|
864
|
-
</provider>
|
865
|
-
</entry>
|
866
854
|
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_html_parser.rb">
|
867
855
|
<provider selected="true" editor-type-id="text-editor">
|
868
856
|
<state vertical-scroll-proportion="0.0" vertical-offset="375" max-vertical-offset="1290">
|
@@ -898,14 +886,6 @@
|
|
898
886
|
</state>
|
899
887
|
</provider>
|
900
888
|
</entry>
|
901
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/szmq/szmq.rb">
|
902
|
-
<provider selected="true" editor-type-id="text-editor">
|
903
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="485" max-vertical-offset="3870">
|
904
|
-
<caret line="50" column="6" selection-start-line="50" selection-start-column="6" selection-end-line="55" selection-end-column="9" />
|
905
|
-
<folding />
|
906
|
-
</state>
|
907
|
-
</provider>
|
908
|
-
</entry>
|
909
889
|
<entry file="file://$PROJECT_DIR$/bin/kymera">
|
910
890
|
<provider selected="true" editor-type-id="text-editor">
|
911
891
|
<state vertical-scroll-proportion="0.0" vertical-offset="180" max-vertical-offset="1035">
|
@@ -913,13 +893,6 @@
|
|
913
893
|
</state>
|
914
894
|
</provider>
|
915
895
|
</entry>
|
916
|
-
<entry file="file://$PROJECT_DIR$/kymera.gemspec">
|
917
|
-
<provider selected="true" editor-type-id="text-editor">
|
918
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
|
919
|
-
<caret line="11" column="64" selection-start-line="11" selection-start-column="64" selection-end-line="11" selection-end-column="64" />
|
920
|
-
</state>
|
921
|
-
</provider>
|
922
|
-
</entry>
|
923
896
|
<entry file="file://$PROJECT_DIR$/README.md">
|
924
897
|
<provider selected="true" editor-type-id="text-editor">
|
925
898
|
<state vertical-scroll-proportion="0.0" vertical-offset="735" max-vertical-offset="1545">
|
@@ -944,7 +917,6 @@
|
|
944
917
|
<provider selected="true" editor-type-id="text-editor">
|
945
918
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="615">
|
946
919
|
<caret line="12" column="10" selection-start-line="12" selection-start-column="10" selection-end-line="12" selection-end-column="10" />
|
947
|
-
<folding />
|
948
920
|
</state>
|
949
921
|
</provider>
|
950
922
|
</entry>
|
@@ -967,7 +939,6 @@
|
|
967
939
|
<provider selected="true" editor-type-id="text-editor">
|
968
940
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="615">
|
969
941
|
<caret line="11" column="38" selection-start-line="11" selection-start-column="38" selection-end-line="11" selection-end-column="38" />
|
970
|
-
<folding />
|
971
942
|
</state>
|
972
943
|
</provider>
|
973
944
|
</entry>
|
@@ -978,97 +949,119 @@
|
|
978
949
|
</state>
|
979
950
|
</provider>
|
980
951
|
</entry>
|
981
|
-
<entry file="file://$PROJECT_DIR$/lib/spec/
|
952
|
+
<entry file="file://$PROJECT_DIR$/lib/spec/startup_broker_bus_collector_spec.rb">
|
982
953
|
<provider selected="true" editor-type-id="text-editor">
|
983
|
-
<state vertical-scroll-proportion="0.
|
984
|
-
<caret line="
|
985
|
-
<folding />
|
954
|
+
<state vertical-scroll-proportion="0.68" vertical-offset="0" max-vertical-offset="750">
|
955
|
+
<caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
|
986
956
|
</state>
|
987
957
|
</provider>
|
988
958
|
</entry>
|
989
|
-
<entry file="file://$PROJECT_DIR$/lib/
|
959
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/array_exten.rb">
|
990
960
|
<provider selected="true" editor-type-id="text-editor">
|
991
|
-
<state vertical-scroll-proportion="0.
|
992
|
-
<caret line="
|
961
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="240">
|
962
|
+
<caret line="10" column="3" selection-start-line="10" selection-start-column="3" selection-end-line="10" selection-end-column="3" />
|
993
963
|
</state>
|
994
964
|
</provider>
|
995
965
|
</entry>
|
996
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera
|
966
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera.rb">
|
997
967
|
<provider selected="true" editor-type-id="text-editor">
|
998
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
999
|
-
<caret line="
|
968
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="165" max-vertical-offset="1380">
|
969
|
+
<caret line="19" column="81" selection-start-line="19" selection-start-column="81" selection-end-line="19" selection-end-column="81" />
|
970
|
+
</state>
|
971
|
+
</provider>
|
972
|
+
</entry>
|
973
|
+
<entry file="file://$PROJECT_DIR$/lib/spec/client_test_run_spec.rb">
|
974
|
+
<provider selected="true" editor-type-id="text-editor">
|
975
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="135">
|
976
|
+
<caret line="3" column="27" selection-start-line="3" selection-start-column="27" selection-end-line="3" selection-end-column="27" />
|
977
|
+
<folding />
|
978
|
+
</state>
|
979
|
+
</provider>
|
980
|
+
</entry>
|
981
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/client.rb">
|
982
|
+
<provider selected="true" editor-type-id="text-editor">
|
983
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1590">
|
984
|
+
<caret line="17" column="36" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" />
|
1000
985
|
<folding />
|
1001
986
|
</state>
|
1002
987
|
</provider>
|
1003
988
|
</entry>
|
1004
989
|
<entry file="file://$PROJECT_DIR$/lib/kymera/platform_utils.rb">
|
1005
990
|
<provider selected="true" editor-type-id="text-editor">
|
1006
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1007
|
-
<caret line="
|
991
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="210" max-vertical-offset="1320">
|
992
|
+
<caret line="49" column="23" selection-start-line="49" selection-start-column="23" selection-end-line="49" selection-end-column="23" />
|
1008
993
|
<folding />
|
1009
994
|
</state>
|
1010
995
|
</provider>
|
1011
996
|
</entry>
|
1012
|
-
<entry file="file://$PROJECT_DIR$/
|
997
|
+
<entry file="file://$PROJECT_DIR$/kymera.gemspec">
|
1013
998
|
<provider selected="true" editor-type-id="text-editor">
|
1014
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="
|
1015
|
-
<caret line="
|
999
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
|
1000
|
+
<caret line="11" column="64" selection-start-line="11" selection-start-column="64" selection-end-line="11" selection-end-column="64" />
|
1016
1001
|
<folding />
|
1017
1002
|
</state>
|
1018
1003
|
</provider>
|
1019
1004
|
</entry>
|
1020
1005
|
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_test_runner.rb">
|
1021
1006
|
<provider selected="true" editor-type-id="text-editor">
|
1022
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="
|
1023
|
-
<caret line="
|
1007
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1320">
|
1008
|
+
<caret line="48" column="0" selection-start-line="48" selection-start-column="0" selection-end-line="48" selection-end-column="0" />
|
1024
1009
|
<folding />
|
1025
1010
|
</state>
|
1026
1011
|
</provider>
|
1027
1012
|
</entry>
|
1028
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
1013
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_results_parser.rb">
|
1029
1014
|
<provider selected="true" editor-type-id="text-editor">
|
1030
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1031
|
-
<caret line="
|
1015
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1470">
|
1016
|
+
<caret line="14" column="46" selection-start-line="14" selection-start-column="46" selection-end-line="14" selection-end-column="46" />
|
1032
1017
|
<folding />
|
1033
1018
|
</state>
|
1034
1019
|
</provider>
|
1035
1020
|
</entry>
|
1036
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
1021
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/szmq/szmq.rb">
|
1037
1022
|
<provider selected="true" editor-type-id="text-editor">
|
1038
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1039
|
-
<caret line="
|
1023
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="1745" max-vertical-offset="3870">
|
1024
|
+
<caret line="140" column="6" selection-start-line="140" selection-start-column="6" selection-end-line="140" selection-end-column="6" />
|
1040
1025
|
<folding />
|
1041
1026
|
</state>
|
1042
1027
|
</provider>
|
1043
1028
|
</entry>
|
1044
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera.rb">
|
1029
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/test_results_collector.rb">
|
1045
1030
|
<provider selected="true" editor-type-id="text-editor">
|
1046
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1047
|
-
<caret line="
|
1031
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1545">
|
1032
|
+
<caret line="11" column="29" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
|
1048
1033
|
<folding />
|
1049
1034
|
</state>
|
1050
1035
|
</provider>
|
1051
1036
|
</entry>
|
1052
1037
|
<entry file="file://$PROJECT_DIR$/lib/kymera/worker.rb">
|
1053
1038
|
<provider selected="true" editor-type-id="text-editor">
|
1054
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1055
|
-
<caret line="
|
1039
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="1350" max-vertical-offset="2100">
|
1040
|
+
<caret line="115" column="0" selection-start-line="115" selection-start-column="0" selection-end-line="115" selection-end-column="0" />
|
1056
1041
|
<folding />
|
1057
1042
|
</state>
|
1058
1043
|
</provider>
|
1059
1044
|
</entry>
|
1060
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
1045
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/results_bus.rb">
|
1046
|
+
<provider selected="true" editor-type-id="text-editor">
|
1047
|
+
<state vertical-scroll-proportion="0.32" vertical-offset="0" max-vertical-offset="750">
|
1048
|
+
<caret line="16" column="26" selection-start-line="16" selection-start-column="26" selection-end-line="16" selection-end-column="26" />
|
1049
|
+
<folding />
|
1050
|
+
</state>
|
1051
|
+
</provider>
|
1052
|
+
</entry>
|
1053
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/broker.rb">
|
1061
1054
|
<provider selected="true" editor-type-id="text-editor">
|
1062
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1063
|
-
<caret line="
|
1055
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="2460">
|
1056
|
+
<caret line="22" column="26" selection-start-line="22" selection-start-column="26" selection-end-line="22" selection-end-column="26" />
|
1064
1057
|
<folding />
|
1065
1058
|
</state>
|
1066
1059
|
</provider>
|
1067
1060
|
</entry>
|
1068
1061
|
<entry file="file://$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb">
|
1069
1062
|
<provider selected="true" editor-type-id="text-editor">
|
1070
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1071
|
-
<caret line="
|
1063
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="855">
|
1064
|
+
<caret line="35" column="3" selection-start-line="35" selection-start-column="3" selection-end-line="35" selection-end-column="3" />
|
1072
1065
|
<folding />
|
1073
1066
|
</state>
|
1074
1067
|
</provider>
|
data/lib/kymera/broker.rb
CHANGED
@@ -5,14 +5,13 @@ module Kymera
|
|
5
5
|
|
6
6
|
class Broker
|
7
7
|
|
8
|
-
#test_address is the port you want to listen on for incoming test runs. client_address is the internal address used for sending tests to the proxy
|
9
|
-
#worker_address is the port that the workers will connect to for test distribution. num_of_con is the number of concurrent requests you want running at any given time
|
10
|
-
#This number can be tuned depending on the machine the broker is running on.
|
11
8
|
def initialize
|
12
9
|
config = Kymera::Config.new
|
13
10
|
@zmq = Kymera::SZMQ.new
|
14
11
|
#This will change once I get the worker registry up and running. When that is up, there will be one connection spawned for
|
15
|
-
#each of the workers that are connected
|
12
|
+
#each of the workers that are connected. Edit - Thats actually not sustainable. The number of workers should be able to change
|
13
|
+
#dynamically without impact to the broker. An inventory check should be made at the start of every new test run. There should also
|
14
|
+
# be some logic to handle the disconnection of workers in the middle of a test run.
|
16
15
|
@num_of_connections = config.broker["number_of_connections"]
|
17
16
|
#This socket is for getting tests from the client
|
18
17
|
@client_address = "tcp://*:#{config.broker["client_listening_port"]}"
|
@@ -23,6 +22,7 @@ module Kymera
|
|
23
22
|
@front_end = @zmq.socket(@internal_address, 'router')
|
24
23
|
@back_end = @zmq.socket(@worker_address, 'dealer')
|
25
24
|
@proxy = Thread.new {@zmq.start_proxy(@front_end, @back_end)}
|
25
|
+
@results = ''
|
26
26
|
end
|
27
27
|
|
28
28
|
#This brings up the broker so that it can receive test run requests.
|
@@ -38,56 +38,68 @@ module Kymera
|
|
38
38
|
|
39
39
|
#This is the start of the test run and is called when the broker receives a test run request
|
40
40
|
def start_test_run(test_run)
|
41
|
+
puts 'Starting test run...'
|
41
42
|
test_run = JSON.parse(test_run)
|
43
|
+
puts 'Copying over tests..'
|
42
44
|
tests = test_run["tests"].copy
|
43
45
|
threads = []
|
44
|
-
|
46
|
+
puts "Checking for group configuration...#{test_run['grouped']}"
|
47
|
+
puts "This is the test run message:\n"
|
48
|
+
puts "#{test_run}"
|
45
49
|
if test_run["grouped"] || test_run["grouped"].to_s.downcase == 'true'
|
50
|
+
puts 'Grouping tests....'
|
46
51
|
tests = group_tests(tests)
|
47
52
|
end unless test_run["grouped"].nil?
|
48
53
|
|
49
54
|
@test_count = test_run["tests"].length
|
50
55
|
report_test_config(test_run)
|
51
|
-
# puts "###############################################"
|
52
|
-
# puts "These are the tests"
|
53
|
-
# p tests
|
54
|
-
# puts "#" * 25
|
55
56
|
|
57
|
+
@results = ''
|
56
58
|
if tests.length > @num_of_connections.to_i
|
59
|
+
puts "Test count was higher than connections. Starting tests and initiating run queue"
|
57
60
|
1.upto @num_of_connections.to_i do
|
58
61
|
test = tests.pop
|
59
62
|
break if test.nil?
|
60
63
|
threads << run_test(test, test_run)
|
61
64
|
end
|
62
65
|
work_queue(threads, tests, test_run)
|
63
|
-
|
66
|
+
|
67
|
+
puts "Test run completed"
|
64
68
|
|
65
69
|
else
|
70
|
+
puts "Test count was not higher than the connections. Starting all tests."
|
66
71
|
1.upto tests.length do
|
67
72
|
test = tests.pop
|
68
73
|
break if test.nil?
|
69
74
|
threads << run_test(test, test_run)
|
70
75
|
end
|
76
|
+
|
71
77
|
threads.each do |t|
|
78
|
+
puts "waiting for threads"
|
72
79
|
t.join
|
73
80
|
end
|
74
|
-
puts "Tests Complete"
|
75
81
|
|
76
82
|
end
|
77
83
|
|
84
|
+
puts "Test run completed. Sending results"
|
85
|
+
Kymera::TestResultsCollector.new.finalize_results(test_run["test_count"], test_run["run_id"], @results, test_run["runner"], test_run["start_time"])
|
86
|
+
|
78
87
|
|
79
88
|
end
|
80
89
|
|
90
|
+
|
81
91
|
def group_tests(tests)
|
82
92
|
#This creates a group for each of the available connection as specified by the @num_of_connections variable
|
83
93
|
#It will then iterate over all of the tests and add a test to each of the groups
|
84
94
|
#at the end of the iteration, if any groups are left empty, they are deleted and the trimmed array is returned
|
85
95
|
groups = []
|
86
96
|
|
87
|
-
|
97
|
+
puts "Setting group containers..."
|
98
|
+
1.upto @num_of_connections.to_i do
|
88
99
|
groups << []
|
89
100
|
end
|
90
101
|
|
102
|
+
puts "Distributing tests..."
|
91
103
|
while tests.length > 0
|
92
104
|
groups.each do |group|
|
93
105
|
test = tests.pop
|
@@ -110,6 +122,7 @@ module Kymera
|
|
110
122
|
end
|
111
123
|
end
|
112
124
|
threads.each do |t|
|
125
|
+
puts "waiting for threads"
|
113
126
|
t.join
|
114
127
|
end
|
115
128
|
end
|
@@ -118,13 +131,16 @@ module Kymera
|
|
118
131
|
def run_test(test, options)
|
119
132
|
port = @internal_address.split(':')[2]
|
120
133
|
Thread.new {
|
134
|
+
zmq = Kymera::SZMQ.new
|
121
135
|
message = JSON.generate({:test => test, :runner => options["runner"], :options => options["options"], :run_id => options["run_id"],
|
122
136
|
:test_count => @test_count, :branch => options["branch"], :start_time => options["start_time"]})
|
123
|
-
socket =
|
137
|
+
socket = zmq.socket("tcp://127.0.0.1:#{port}", 'request')
|
124
138
|
socket.connect
|
125
139
|
puts "Sending: #{message}"
|
126
|
-
socket.send_message(message)
|
127
|
-
|
140
|
+
results = socket.send_message(message)
|
141
|
+
@results << results
|
142
|
+
socket.close
|
143
|
+
}
|
128
144
|
end
|
129
145
|
|
130
146
|
#This gives a print out of the test run that was received
|
data/lib/kymera/client.rb
CHANGED
@@ -39,6 +39,8 @@ module Kymera
|
|
39
39
|
socket = @zmq.socket(@broker_address, 'push')
|
40
40
|
socket.connect
|
41
41
|
message = JSON.generate(test_run)
|
42
|
+
# puts "Sending the following message: \n"
|
43
|
+
# puts message
|
42
44
|
socket.send_message(message)
|
43
45
|
|
44
46
|
channels = ["end_#{@full_run_id}"]
|
@@ -68,6 +70,7 @@ module Kymera
|
|
68
70
|
#test parser should use for parsing out the tests.
|
69
71
|
def parse_tests(tests, runner, options)
|
70
72
|
|
73
|
+
#This needs to be here for the parsing of the tests. I should probably push this task off to the broker. Will keep it here for now.
|
71
74
|
test_path = nil
|
72
75
|
if Kymera.is_linux?
|
73
76
|
if tests.include? 'c:'
|
@@ -6,9 +6,9 @@ module Kymera
|
|
6
6
|
#This is the test runner. It is responsible for the actual running of the test. It takes in 3 parameters. The first being options(Array). These are the options to be used
|
7
7
|
#for the cucumber test run. The run_id(String), this is a unique id identifying the test run that this test is for. It is used as the channel name for publishing results
|
8
8
|
#on the results bus. And lastly results_bus(SSocket), this is a socket object representing the results bus. This is what is used for publishing results to that bus
|
9
|
-
def initialize(options, run_id,
|
9
|
+
def initialize(options, run_id, result_address = nil)
|
10
10
|
@options = options
|
11
|
-
@
|
11
|
+
@result_address = result_address
|
12
12
|
@run_id = run_id
|
13
13
|
ENV["AUTOTEST"] = "1" if $stdout.tty?
|
14
14
|
end
|
@@ -17,6 +17,12 @@ module Kymera
|
|
17
17
|
#it uses the options passed in with the constructor. run_id(String) is the id of test run that this test is associated with. This is also defaulted with what was passed in
|
18
18
|
#with the constructor
|
19
19
|
def run_test(test, branch, options = @options, run_id = @run_id)
|
20
|
+
result_bus = nil
|
21
|
+
unless @result_address.nil?
|
22
|
+
result_bus = SZMQ.new.socket(@result_address, 'pub')
|
23
|
+
result_bus.connect
|
24
|
+
end
|
25
|
+
|
20
26
|
_results = ''
|
21
27
|
_options = ''
|
22
28
|
options.each do |option|
|
@@ -29,12 +35,13 @@ module Kymera
|
|
29
35
|
io = Object::IO.popen("bundle exec cucumber #{test} #{_options}")
|
30
36
|
until io.eof? do
|
31
37
|
result = io.gets
|
32
|
-
unless
|
33
|
-
|
38
|
+
unless result_bus.nil?
|
39
|
+
result_bus.publish_message(run_id, result)
|
34
40
|
end
|
35
41
|
_results += result
|
36
42
|
end
|
37
43
|
Process.wait2(io.pid)
|
44
|
+
result_bus.close unless result_bus.nil?
|
38
45
|
_results
|
39
46
|
end
|
40
47
|
|
@@ -10,77 +10,46 @@ module Kymera
|
|
10
10
|
def initialize
|
11
11
|
@config = Kymera::Config.new
|
12
12
|
@zmq = Kymera::SZMQ.new
|
13
|
-
@inc_socket = @zmq.socket("tcp://*:#{@config.result_collector["inc_listening_port"]}", 'pull')
|
14
13
|
@out_socket = @zmq.socket(@config.result_collector["result_bus_address"], 'pub')
|
15
|
-
@inc_socket.bind
|
16
14
|
@out_socket.connect
|
17
15
|
end
|
18
16
|
|
19
17
|
def listen
|
20
18
|
puts "Test collector started..."
|
21
|
-
test_count = ''
|
22
|
-
start_test_count = ''
|
23
19
|
@run_id = ''
|
24
20
|
results = ''
|
25
|
-
runner = ''
|
26
|
-
start_time = ''
|
27
|
-
count = 0
|
28
21
|
@inc_socket.receive do |message|
|
29
22
|
parsed_message = JSON.parse message
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
test_count -= 1
|
41
|
-
count +=1
|
42
|
-
elsif test_count > 0
|
43
|
-
results << parsed_message["results"]
|
44
|
-
test_count -= 1
|
45
|
-
end
|
46
|
-
|
47
|
-
if test_count <= 0
|
48
|
-
finalize_results(start_test_count, @run_id, results, runner, start_time)
|
49
|
-
test_count = ''
|
50
|
-
@run_id = ''
|
51
|
-
results = ''
|
52
|
-
runner = ''
|
53
|
-
start_time = ''
|
54
|
-
count = 0
|
55
|
-
end
|
56
|
-
|
57
|
-
|
23
|
+
@run_id = parsed_message["run_id"]
|
24
|
+
test_count = parsed_message["test_count"].to_i
|
25
|
+
start_test_count = parsed_message["test_count"]
|
26
|
+
runner = parsed_message["runner"]
|
27
|
+
results << parsed_message["results"]
|
28
|
+
start_time = parsed_message["start_time"]
|
29
|
+
puts 'Results run started with the following configuration:'
|
30
|
+
puts "Run ID: #{@run_id}"
|
31
|
+
puts "Test count: #{test_count}"
|
32
|
+
finalize_results(start_test_count, @run_id, results, runner, start_time)
|
58
33
|
end
|
59
34
|
|
60
35
|
end
|
61
36
|
|
62
|
-
private
|
63
|
-
|
64
37
|
def finalize_results(test_count, run_id, results, runner, start_time)
|
65
38
|
if runner.downcase == 'cucumber'
|
66
39
|
|
67
40
|
begin
|
68
|
-
#r_results = Kymera::Cucumber::ResultsParser.summarize_results(results)
|
69
41
|
puts "Summarizing results.."
|
70
42
|
r_results = Kymera::Cucumber::ResultsParser.summarize_results(results)
|
71
43
|
puts "Getting pass count..."
|
72
44
|
pass_count = Kymera::Cucumber::ResultsParser.scenario_counts[:pass]
|
73
45
|
puts "Getting fail count..."
|
74
46
|
fail_count = Kymera::Cucumber::ResultsParser.scenario_counts[:fail]
|
75
|
-
# r_results = Kymera::Cucumber::ResultsParser.summarize_results(results)
|
76
47
|
puts "Converting results to html..."
|
77
48
|
html_results = Kymera::Cucumber::HTMLResultsParser.to_html(results)
|
78
49
|
puts "Converting summary to html..."
|
79
50
|
html_summary = Kymera::Cucumber::HTMLResultsParser.to_html(r_results)
|
80
51
|
puts "Setting end time"
|
81
52
|
end_time = Time.now
|
82
|
-
# puts html_results
|
83
|
-
# Kymera::MongoDriver.log_results(build_test_log(test_count, run_id, results, r_results), '10.6.49.83', 27017, 'apollo', 'test_runs')
|
84
53
|
puts "Starting database logging processes..."
|
85
54
|
Kymera::MongoDriver.log_results(build_test_log(test_count, run_id, html_results, html_summary, start_time, end_time.to_s, pass_count, fail_count), @config.result_collector["mongodb_address"],
|
86
55
|
@config.result_collector["mongodb_port"].to_i, @config.result_collector["mongodb_database_name"], @config.result_collector["mongodb_collection_name"])
|
@@ -89,13 +58,16 @@ module Kymera
|
|
89
58
|
puts "There was an error in the logging process:"
|
90
59
|
puts e
|
91
60
|
ensure
|
92
|
-
run_id = "end_#{
|
93
|
-
puts "Sending results to client
|
61
|
+
run_id = "end_#{run_id}"
|
62
|
+
puts "Sending results to client...#{run_id}"
|
94
63
|
@out_socket.publish_message(run_id, r_results)
|
95
64
|
end
|
96
65
|
end
|
97
66
|
end
|
98
67
|
|
68
|
+
private
|
69
|
+
|
70
|
+
|
99
71
|
def build_test_log(test_count, run_id, results, summary, start_time, end_time, pass_count, fail_count)
|
100
72
|
begin
|
101
73
|
log_message = {}
|
data/lib/kymera/version.rb
CHANGED
data/lib/kymera/worker.rb
CHANGED
@@ -15,13 +15,7 @@ module Kymera
|
|
15
15
|
#worker at a time instead of load balancing them. It may be more advantageous to use a request/reply structure for sending tests and managing the test run queue
|
16
16
|
#manually.
|
17
17
|
@test_socket = @zmq.socket(@test_address, 'reply')
|
18
|
-
@results_socket = @zmq.socket(@results_address, 'push')
|
19
|
-
@result_bus_socket = @zmq.socket(@result_bus_address, 'pub')
|
20
|
-
@result_bus_socket.connect
|
21
18
|
@test_socket.connect
|
22
|
-
#Even though this is a push socket, I am connecting instead of binding because the static point is going to be the pull socket where the results are aggregated
|
23
|
-
#Static points are bound, dynamic points are connected
|
24
|
-
@results_socket.connect
|
25
19
|
@threads = []
|
26
20
|
@runner_id = Kymera.host_name
|
27
21
|
end
|
@@ -34,11 +28,9 @@ module Kymera
|
|
34
28
|
stop
|
35
29
|
break
|
36
30
|
else
|
37
|
-
# results = run_test(message)
|
38
|
-
# @results_socket.send_message(results)
|
39
31
|
puts "Received tests to run"
|
40
|
-
run_test(message
|
41
|
-
@test_socket.send_message
|
32
|
+
results = run_test(message)
|
33
|
+
@test_socket.send_message results
|
42
34
|
end
|
43
35
|
end
|
44
36
|
|
@@ -47,8 +39,9 @@ module Kymera
|
|
47
39
|
#I need to pass in the runner and runner options. Thinking about using JSON to get those options and instantiate a runner object based on that information
|
48
40
|
#The idea is to be able to take in any number of different test runners (cucumber/rspec) without having the restart the worker object
|
49
41
|
#This is why passing in the runner on worker instantiation isnt really an option
|
50
|
-
def run_test(test
|
42
|
+
def run_test(test)
|
51
43
|
puts "Setting up tests..."
|
44
|
+
results = ''
|
52
45
|
test = JSON.parse(test)
|
53
46
|
runner = get_runner(test["runner"], test["options"], test["run_id"])
|
54
47
|
tests = !test["test"].is_a?(Array) ? [test["test"]] : test["test"]
|
@@ -65,16 +58,24 @@ module Kymera
|
|
65
58
|
rescue => e
|
66
59
|
puts e
|
67
60
|
end
|
61
|
+
elsif Kymera.is_windows?
|
62
|
+
puts "This is a windows machine. Making adjustments if needed..."
|
63
|
+
tests.each do |_test|
|
64
|
+
if _test.include? '~'
|
65
|
+
_test.gsub!('~', 'c:')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
68
69
|
end
|
69
70
|
|
70
71
|
puts "Received #{tests.length} test(s). Running those tests with a max number of threads of #{@max_threads}"
|
71
72
|
|
72
|
-
|
73
|
-
#for each thread I am creating not passing one in.
|
74
|
-
0.upto @max_threads do
|
73
|
+
1.upto @max_threads do
|
75
74
|
_test = tests.pop
|
76
75
|
break if _test.nil?
|
77
|
-
@threads << Thread.new {
|
76
|
+
@threads << Thread.new {
|
77
|
+
results << runner.run_test(_test, test['branch'])
|
78
|
+
}
|
78
79
|
end
|
79
80
|
|
80
81
|
puts "Created #{thread_count} threads...."
|
@@ -83,34 +84,36 @@ module Kymera
|
|
83
84
|
puts "There were more tests than could be run at one time. Starting test queue."
|
84
85
|
end
|
85
86
|
while tests.length > 0
|
87
|
+
$stdout << "\rTest Remaining: #{tests.length} | Active Thread Count: #{thread_count}"
|
88
|
+
$stdout.flush
|
86
89
|
if thread_count < @max_threads
|
87
90
|
_test = tests.pop
|
88
|
-
|
91
|
+
break if _test.nil?
|
92
|
+
@threads << Thread.new {
|
93
|
+
results << runner.run_test(_test, test['branch'])
|
94
|
+
}
|
89
95
|
end
|
90
96
|
end
|
91
97
|
|
92
|
-
@threads.
|
93
|
-
|
94
|
-
|
98
|
+
until @threads.empty?
|
99
|
+
thread_count
|
100
|
+
# text = "Remaining thread count: #{thread_count}"
|
101
|
+
# $stdout << "\r" + (" " * text.length)
|
102
|
+
# $stdout << "\r#{text}"
|
103
|
+
end
|
104
|
+
|
105
|
+
puts "\nNo more tests to be run"
|
95
106
|
|
107
|
+
@threads = []
|
108
|
+
results
|
96
109
|
end
|
97
110
|
|
98
111
|
def stop
|
99
112
|
@test_socket.close
|
100
|
-
@results_socket.close
|
101
113
|
end
|
102
114
|
|
103
115
|
private
|
104
116
|
|
105
|
-
def send_results(results, message, socket)
|
106
|
-
begin
|
107
|
-
socket.send_message(JSON.generate({:run_id => message["run_id"], :runner_id => @runner_id, :test_count => message["test_count"], :runner => message["runner"], :results => results, :start_time => message["start_time"]} ))
|
108
|
-
rescue => e
|
109
|
-
puts e
|
110
|
-
end
|
111
|
-
|
112
|
-
end
|
113
|
-
|
114
117
|
def thread_count
|
115
118
|
@threads.delete_if {|th| !th.alive?}.length
|
116
119
|
end
|
@@ -119,7 +122,7 @@ module Kymera
|
|
119
122
|
#Right now I am just doing some simple if/then logic to get predefined runners.
|
120
123
|
def get_runner(runner, options, run_id)
|
121
124
|
if runner.downcase == 'cucumber'
|
122
|
-
Kymera::Cucumber::Runner.new(options, run_id, @
|
125
|
+
Kymera::Cucumber::Runner.new(options, run_id, @result_bus_address)
|
123
126
|
else
|
124
127
|
nil
|
125
128
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
-
|
2
|
-
require 'kymera'
|
3
|
-
Kymera.run_tests('
|
1
|
+
require_relative '../../lib/kymera'
|
2
|
+
# require 'kymera'
|
3
|
+
Kymera.run_tests('c:/apollo/source/integration_tests/features/posting/entry_common', 'cucumber', ['-p default'], 'develop', true)
|
4
|
+
# Kymera.run_tests('c:/apollo/source/integration_tests/features/login_and_session/login.feature', 'cucumber', ['-p default'], 'develop', true)
|
@@ -8,25 +8,25 @@ trap('INT') do
|
|
8
8
|
@close = true
|
9
9
|
end
|
10
10
|
|
11
|
-
#
|
11
|
+
# Broker thread
|
12
12
|
threads << Thread.new {
|
13
|
-
|
13
|
+
Kymera.start_broker
|
14
14
|
}
|
15
15
|
|
16
|
-
#
|
16
|
+
#Results bus thread
|
17
17
|
threads << Thread.new {
|
18
|
-
Kymera.
|
18
|
+
Kymera.start_bus
|
19
19
|
}
|
20
20
|
|
21
21
|
#Results collector thread
|
22
22
|
threads << Thread.new {
|
23
23
|
Kymera.start_collector
|
24
24
|
}
|
25
|
-
|
25
|
+
#
|
26
26
|
threads << Thread.new {
|
27
27
|
Kymera.start_worker
|
28
28
|
}
|
29
|
-
|
29
|
+
|
30
30
|
# threads << Thread.new {
|
31
31
|
# Kymera.start_worker
|
32
32
|
# }
|
@@ -38,8 +38,8 @@ threads << Thread.new {
|
|
38
38
|
#give stuff a chance to start up
|
39
39
|
sleep 2
|
40
40
|
|
41
|
-
# Kymera.run_tests('
|
42
|
-
Kymera.run_tests('~/apollo/source/integration_tests/features/login_and_session', 'cucumber', ['-p default'], 'develop', true)
|
41
|
+
# Kymera.run_tests('c:/apollo/source/integration_tests/features/posting/entry_common', 'cucumber', ['-p default'], 'develop', true)
|
42
|
+
Kymera.run_tests('~/apollo/source/integration_tests/features/login_and_session/', 'cucumber', ['-p default'], 'develop', true)
|
43
43
|
|
44
44
|
|
45
45
|
loop do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kymera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jakesa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|