kymera 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.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
|