kymera 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/workspace.xml +98 -106
- data/lib/kymera/broker.rb +45 -15
- data/lib/kymera/version.rb +1 -1
- data/lib/kymera/worker.rb +101 -33
- data/lib/spec/full_run_for_linux_spec.rb +23 -23
- 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: 86768896a0e5453d60653174dd38b521d619ce69
|
4
|
+
data.tar.gz: eef2ee1474db25f37e3ceed094715925a36c8d22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59032954c9a7afb8cc011525b4ffa72d9a9d90409beb53c5a7b195e98971efe47a80b86c213f85d7a6bd3cd6459722a66f5c3b68931173792918ed9a154d34c3
|
7
|
+
data.tar.gz: 69f3e3532af33c8af154f9430907a01f10ee56083d6497f32b307ba56eea82ef939fb07c05a745d7fa725375f754ca58d79fa36a97225532a8f756ea356d0809
|
data/.idea/workspace.xml
CHANGED
@@ -25,10 +25,10 @@
|
|
25
25
|
<SUITE FILE_PATH="coverage/kymera@hello_world.coverage" NAME="hello_world Coverage Results" MODIFIED="1403020505781" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib/spec" />
|
26
26
|
<SUITE FILE_PATH="coverage/kymera@Kymera__Cli__kymera.coverage" NAME="Kymera::Cli: kymera Coverage Results" MODIFIED="1388712811535" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib" />
|
27
27
|
<SUITE FILE_PATH="coverage/kymera@Run_spec__broker_spec___kymera.coverage" NAME="Run spec 'broker_spec': kymera Coverage Results" MODIFIED="1412877035304" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib" />
|
28
|
-
<SUITE FILE_PATH="coverage/kymera@hello_world_client__1_.coverage" NAME="hello_world_client (1) Coverage Results" MODIFIED="1403048444150" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib/spec" />
|
29
28
|
<SUITE FILE_PATH="coverage/kymera@pub_sub.coverage" NAME="pub_sub Coverage Results" MODIFIED="1403109013155" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib/spec" />
|
30
|
-
<SUITE FILE_PATH="coverage/kymera@
|
29
|
+
<SUITE FILE_PATH="coverage/kymera@hello_world_client__1_.coverage" NAME="hello_world_client (1) Coverage Results" MODIFIED="1403048444150" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib/spec" />
|
31
30
|
<SUITE FILE_PATH="coverage/kymera@Run_spec__mongo_driver_spec___kymera.coverage" NAME="Run spec 'mongo_driver_spec': kymera Coverage Results" MODIFIED="1416449604789" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib" MODULE_NAME="kymera" />
|
31
|
+
<SUITE FILE_PATH="coverage/kymera@Run_spec__socket_controller_spec___kymera.coverage" NAME="Run spec 'socket_controller_spec': kymera Coverage Results" MODIFIED="1403649700439" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib" />
|
32
32
|
<SUITE FILE_PATH="coverage/kymera@req_rep__1_.coverage" NAME="req_rep (1) Coverage Results" MODIFIED="1403049763761" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib/spec" />
|
33
33
|
</component>
|
34
34
|
<component name="CreatePatchCommitExecutor">
|
@@ -46,18 +46,8 @@
|
|
46
46
|
<file leaf-file-name="broker.rb" pinned="false" current-in-tab="false">
|
47
47
|
<entry file="file://$PROJECT_DIR$/lib/kymera/broker.rb">
|
48
48
|
<provider selected="true" editor-type-id="text-editor">
|
49
|
-
<state vertical-scroll-proportion="
|
50
|
-
<caret line="
|
51
|
-
<folding />
|
52
|
-
</state>
|
53
|
-
</provider>
|
54
|
-
</entry>
|
55
|
-
</file>
|
56
|
-
<file leaf-file-name="kymera.gemspec" pinned="false" current-in-tab="false">
|
57
|
-
<entry file="file://$PROJECT_DIR$/kymera.gemspec">
|
58
|
-
<provider selected="true" editor-type-id="text-editor">
|
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" />
|
49
|
+
<state vertical-scroll-proportion="-8.346154" vertical-offset="998" max-vertical-offset="2910">
|
50
|
+
<caret line="81" column="9" selection-start-line="81" selection-start-column="9" selection-end-line="81" selection-end-column="9" />
|
61
51
|
<folding />
|
62
52
|
</state>
|
63
53
|
</provider>
|
@@ -66,28 +56,18 @@
|
|
66
56
|
<file leaf-file-name="test_results_collector.rb" pinned="false" current-in-tab="false">
|
67
57
|
<entry file="file://$PROJECT_DIR$/lib/kymera/test_results_collector.rb">
|
68
58
|
<provider selected="true" editor-type-id="text-editor">
|
69
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
59
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="165" max-vertical-offset="1545">
|
70
60
|
<caret line="11" column="29" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
|
71
61
|
<folding />
|
72
62
|
</state>
|
73
63
|
</provider>
|
74
64
|
</entry>
|
75
65
|
</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" />
|
81
|
-
<folding />
|
82
|
-
</state>
|
83
|
-
</provider>
|
84
|
-
</entry>
|
85
|
-
</file>
|
86
66
|
<file leaf-file-name="full_run_for_linux_spec.rb" pinned="false" current-in-tab="false">
|
87
67
|
<entry file="file://$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb">
|
88
68
|
<provider selected="true" editor-type-id="text-editor">
|
89
69
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="855">
|
90
|
-
<caret line="
|
70
|
+
<caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
|
91
71
|
<folding />
|
92
72
|
</state>
|
93
73
|
</provider>
|
@@ -96,38 +76,28 @@
|
|
96
76
|
<file leaf-file-name="version.rb" pinned="false" current-in-tab="true">
|
97
77
|
<entry file="file://$PROJECT_DIR$/lib/kymera/version.rb">
|
98
78
|
<provider selected="true" editor-type-id="text-editor">
|
99
|
-
<state vertical-scroll-proportion="0.
|
79
|
+
<state vertical-scroll-proportion="0.017482517" vertical-offset="0" max-vertical-offset="858">
|
100
80
|
<caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
|
101
81
|
<folding />
|
102
82
|
</state>
|
103
83
|
</provider>
|
104
84
|
</entry>
|
105
85
|
</file>
|
106
|
-
<file leaf-file-name="client.rb" pinned="false" current-in-tab="false">
|
107
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/client.rb">
|
108
|
-
<provider selected="true" editor-type-id="text-editor">
|
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" />
|
111
|
-
<folding />
|
112
|
-
</state>
|
113
|
-
</provider>
|
114
|
-
</entry>
|
115
|
-
</file>
|
116
86
|
<file leaf-file-name="worker.rb" pinned="false" current-in-tab="false">
|
117
87
|
<entry file="file://$PROJECT_DIR$/lib/kymera/worker.rb">
|
118
88
|
<provider selected="true" editor-type-id="text-editor">
|
119
|
-
<state vertical-scroll-proportion="
|
120
|
-
<caret line="
|
89
|
+
<state vertical-scroll-proportion="-9.230769" vertical-offset="0" max-vertical-offset="3120">
|
90
|
+
<caret line="16" column="55" selection-start-line="16" selection-start-column="55" selection-end-line="16" selection-end-column="55" />
|
121
91
|
<folding />
|
122
92
|
</state>
|
123
93
|
</provider>
|
124
94
|
</entry>
|
125
95
|
</file>
|
126
|
-
<file leaf-file-name="
|
127
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
96
|
+
<file leaf-file-name="cucumber_test_runner.rb" pinned="false" current-in-tab="false">
|
97
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_test_runner.rb">
|
128
98
|
<provider selected="true" editor-type-id="text-editor">
|
129
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
130
|
-
<caret line="
|
99
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1320">
|
100
|
+
<caret line="28" column="34" selection-start-line="28" selection-start-column="34" selection-end-line="28" selection-end-column="34" />
|
131
101
|
<folding />
|
132
102
|
</state>
|
133
103
|
</provider>
|
@@ -163,16 +133,16 @@
|
|
163
133
|
<option value="$PROJECT_DIR$/lib/kymera/array_exten.rb" />
|
164
134
|
<option value="$PROJECT_DIR$/lib/spec/startup_broker_bus_collector_spec.rb" />
|
165
135
|
<option value="$PROJECT_DIR$/lib/spec/worker_test_run_spec.rb" />
|
166
|
-
<option value="$PROJECT_DIR$/lib/kymera.rb" />
|
167
136
|
<option value="$PROJECT_DIR$/lib/kymera/platform_utils.rb" />
|
168
137
|
<option value="$PROJECT_DIR$/lib/kymera/client.rb" />
|
169
138
|
<option value="$PROJECT_DIR$/lib/kymera/cucumber/cucumber_test_runner.rb" />
|
170
139
|
<option value="$PROJECT_DIR$/lib/spec/client_test_run_spec.rb" />
|
171
|
-
<option value="$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb" />
|
172
140
|
<option value="$PROJECT_DIR$/lib/kymera/szmq/szmq.rb" />
|
173
141
|
<option value="$PROJECT_DIR$/lib/kymera/test_results_collector.rb" />
|
174
|
-
<option value="$PROJECT_DIR$/lib/kymera
|
142
|
+
<option value="$PROJECT_DIR$/lib/kymera.rb" />
|
175
143
|
<option value="$PROJECT_DIR$/lib/kymera/broker.rb" />
|
144
|
+
<option value="$PROJECT_DIR$/lib/kymera/worker.rb" />
|
145
|
+
<option value="$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb" />
|
176
146
|
<option value="$PROJECT_DIR$/lib/kymera/version.rb" />
|
177
147
|
</list>
|
178
148
|
</option>
|
@@ -181,9 +151,10 @@
|
|
181
151
|
<detection-done>true</detection-done>
|
182
152
|
</component>
|
183
153
|
<component name="ProjectFrameBounds">
|
184
|
-
<option name="
|
185
|
-
<option name="
|
186
|
-
<option name="
|
154
|
+
<option name="x" value="-1029" />
|
155
|
+
<option name="y" value="-1013" />
|
156
|
+
<option name="width" value="1680" />
|
157
|
+
<option name="height" value="929" />
|
187
158
|
</component>
|
188
159
|
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
189
160
|
<OptionsSetting value="true" id="Add" />
|
@@ -301,6 +272,28 @@
|
|
301
272
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
302
273
|
</PATH_ELEMENT>
|
303
274
|
</PATH>
|
275
|
+
<PATH>
|
276
|
+
<PATH_ELEMENT>
|
277
|
+
<option name="myItemId" value="kymera" />
|
278
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
279
|
+
</PATH_ELEMENT>
|
280
|
+
<PATH_ELEMENT>
|
281
|
+
<option name="myItemId" value="kymera" />
|
282
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
283
|
+
</PATH_ELEMENT>
|
284
|
+
<PATH_ELEMENT>
|
285
|
+
<option name="myItemId" value="lib" />
|
286
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
287
|
+
</PATH_ELEMENT>
|
288
|
+
<PATH_ELEMENT>
|
289
|
+
<option name="myItemId" value="kymera" />
|
290
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
291
|
+
</PATH_ELEMENT>
|
292
|
+
<PATH_ELEMENT>
|
293
|
+
<option name="myItemId" value="config" />
|
294
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
295
|
+
</PATH_ELEMENT>
|
296
|
+
</PATH>
|
304
297
|
</subPane>
|
305
298
|
</pane>
|
306
299
|
<pane id="Scope" />
|
@@ -629,7 +622,7 @@
|
|
629
622
|
<servers />
|
630
623
|
</component>
|
631
624
|
<component name="ToolWindowManager">
|
632
|
-
<frame x="
|
625
|
+
<frame x="-1029" y="-1013" width="1680" height="929" extended-state="0" />
|
633
626
|
<editor active="true" />
|
634
627
|
<layout>
|
635
628
|
<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" />
|
@@ -638,19 +631,19 @@
|
|
638
631
|
<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" />
|
639
632
|
<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" />
|
640
633
|
<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" />
|
641
|
-
<window_info id="Project" active="
|
634
|
+
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2029762" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
642
635
|
<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" />
|
643
636
|
<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" />
|
644
637
|
<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" />
|
645
638
|
<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" />
|
646
639
|
<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" />
|
647
|
-
<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" />
|
648
640
|
<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" />
|
641
|
+
<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" />
|
649
642
|
<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" />
|
650
643
|
<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" />
|
651
|
-
<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" />
|
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" />
|
653
644
|
<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" />
|
645
|
+
<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" />
|
646
|
+
<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" />
|
654
647
|
</layout>
|
655
648
|
<layout-to-restore>
|
656
649
|
<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" />
|
@@ -669,9 +662,9 @@
|
|
669
662
|
<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
663
|
<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
664
|
<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
665
|
<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" />
|
666
|
+
<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" />
|
667
|
+
<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" />
|
675
668
|
</layout-to-restore>
|
676
669
|
</component>
|
677
670
|
<component name="Vcs.Log.UiProperties">
|
@@ -894,24 +887,24 @@
|
|
894
887
|
</provider>
|
895
888
|
</entry>
|
896
889
|
<entry file="file://$PROJECT_DIR$/README.md">
|
890
|
+
<provider editor-type-id="MarkdownPreviewEditor">
|
891
|
+
<state />
|
892
|
+
</provider>
|
897
893
|
<provider selected="true" editor-type-id="text-editor">
|
898
894
|
<state vertical-scroll-proportion="0.0" vertical-offset="735" max-vertical-offset="1545">
|
899
895
|
<caret line="49" column="131" selection-start-line="49" selection-start-column="131" selection-end-line="49" selection-end-column="131" />
|
900
896
|
</state>
|
901
897
|
</provider>
|
898
|
+
</entry>
|
899
|
+
<entry file="file://$PROJECT_DIR$/config.md">
|
902
900
|
<provider editor-type-id="MarkdownPreviewEditor">
|
903
901
|
<state />
|
904
902
|
</provider>
|
905
|
-
</entry>
|
906
|
-
<entry file="file://$PROJECT_DIR$/config.md">
|
907
903
|
<provider selected="true" editor-type-id="text-editor">
|
908
904
|
<state vertical-scroll-proportion="0.0" vertical-offset="435" max-vertical-offset="1575">
|
909
905
|
<caret line="29" column="155" selection-start-line="29" selection-start-column="155" selection-end-line="29" selection-end-column="155" />
|
910
906
|
</state>
|
911
907
|
</provider>
|
912
|
-
<provider editor-type-id="MarkdownPreviewEditor">
|
913
|
-
<state />
|
914
|
-
</provider>
|
915
908
|
</entry>
|
916
909
|
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/test_parser.rb">
|
917
910
|
<provider selected="true" editor-type-id="text-editor">
|
@@ -935,13 +928,6 @@
|
|
935
928
|
</state>
|
936
929
|
</provider>
|
937
930
|
</entry>
|
938
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/config/config.rb">
|
939
|
-
<provider selected="true" editor-type-id="text-editor">
|
940
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="615">
|
941
|
-
<caret line="11" column="38" selection-start-line="11" selection-start-column="38" selection-end-line="11" selection-end-column="38" />
|
942
|
-
</state>
|
943
|
-
</provider>
|
944
|
-
</entry>
|
945
931
|
<entry file="file://$PROJECT_DIR$/lib/spec/worker_test_run_spec.rb">
|
946
932
|
<provider selected="true" editor-type-id="text-editor">
|
947
933
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="405">
|
@@ -963,65 +949,55 @@
|
|
963
949
|
</state>
|
964
950
|
</provider>
|
965
951
|
</entry>
|
966
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera.rb">
|
967
|
-
<provider selected="true" editor-type-id="text-editor">
|
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
952
|
<entry file="file://$PROJECT_DIR$/lib/spec/client_test_run_spec.rb">
|
974
953
|
<provider selected="true" editor-type-id="text-editor">
|
975
954
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="135">
|
976
955
|
<caret line="3" column="27" selection-start-line="3" selection-start-column="27" selection-end-line="3" selection-end-column="27" />
|
977
|
-
<folding />
|
978
956
|
</state>
|
979
957
|
</provider>
|
980
958
|
</entry>
|
981
|
-
<entry file="file://$PROJECT_DIR$/
|
959
|
+
<entry file="file://$PROJECT_DIR$/kymera.gemspec">
|
982
960
|
<provider selected="true" editor-type-id="text-editor">
|
983
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="
|
984
|
-
<caret line="
|
985
|
-
<folding />
|
961
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
|
962
|
+
<caret line="11" column="64" selection-start-line="11" selection-start-column="64" selection-end-line="11" selection-end-column="64" />
|
986
963
|
</state>
|
987
964
|
</provider>
|
988
965
|
</entry>
|
989
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
966
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_results_parser.rb">
|
990
967
|
<provider selected="true" editor-type-id="text-editor">
|
991
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
992
|
-
<caret line="
|
968
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1470">
|
969
|
+
<caret line="14" column="46" selection-start-line="14" selection-start-column="46" selection-end-line="14" selection-end-column="46" />
|
993
970
|
<folding />
|
994
971
|
</state>
|
995
972
|
</provider>
|
996
973
|
</entry>
|
997
|
-
<entry file="file://$PROJECT_DIR$/kymera.
|
974
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/szmq/szmq.rb">
|
998
975
|
<provider selected="true" editor-type-id="text-editor">
|
999
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1000
|
-
<caret line="
|
976
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="1745" max-vertical-offset="3870">
|
977
|
+
<caret line="140" column="6" selection-start-line="140" selection-start-column="6" selection-end-line="140" selection-end-column="6" />
|
1001
978
|
<folding />
|
1002
979
|
</state>
|
1003
980
|
</provider>
|
1004
981
|
</entry>
|
1005
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
982
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/results_bus.rb">
|
1006
983
|
<provider selected="true" editor-type-id="text-editor">
|
1007
|
-
<state vertical-scroll-proportion="0.
|
1008
|
-
<caret line="
|
1009
|
-
<folding />
|
984
|
+
<state vertical-scroll-proportion="0.32" vertical-offset="0" max-vertical-offset="750">
|
985
|
+
<caret line="16" column="26" selection-start-line="16" selection-start-column="26" selection-end-line="16" selection-end-column="26" />
|
1010
986
|
</state>
|
1011
987
|
</provider>
|
1012
988
|
</entry>
|
1013
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
989
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/client.rb">
|
1014
990
|
<provider selected="true" editor-type-id="text-editor">
|
1015
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="
|
1016
|
-
<caret line="
|
991
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1590">
|
992
|
+
<caret line="17" column="36" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" />
|
1017
993
|
<folding />
|
1018
994
|
</state>
|
1019
995
|
</provider>
|
1020
996
|
</entry>
|
1021
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera
|
997
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera.rb">
|
1022
998
|
<provider selected="true" editor-type-id="text-editor">
|
1023
|
-
<state vertical-scroll-proportion="0.0" vertical-offset="
|
1024
|
-
<caret line="
|
999
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="165" max-vertical-offset="1380">
|
1000
|
+
<caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
|
1025
1001
|
<folding />
|
1026
1002
|
</state>
|
1027
1003
|
</provider>
|
@@ -1034,26 +1010,42 @@
|
|
1034
1010
|
</state>
|
1035
1011
|
</provider>
|
1036
1012
|
</entry>
|
1037
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
1013
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/config/config.rb">
|
1038
1014
|
<provider selected="true" editor-type-id="text-editor">
|
1039
|
-
<state vertical-scroll-proportion="0.
|
1040
|
-
<caret line="
|
1015
|
+
<state vertical-scroll-proportion="0.22" vertical-offset="0" max-vertical-offset="750">
|
1016
|
+
<caret line="11" column="38" selection-start-line="11" selection-start-column="38" selection-end-line="11" selection-end-column="38" />
|
1041
1017
|
<folding />
|
1042
1018
|
</state>
|
1043
1019
|
</provider>
|
1044
1020
|
</entry>
|
1045
|
-
<entry file="file://$PROJECT_DIR$/lib/kymera/
|
1021
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/platform_utils.rb">
|
1046
1022
|
<provider selected="true" editor-type-id="text-editor">
|
1047
|
-
<state vertical-scroll-proportion="0.
|
1048
|
-
<caret line="
|
1023
|
+
<state vertical-scroll-proportion="0.7" vertical-offset="210" max-vertical-offset="1320">
|
1024
|
+
<caret line="49" column="23" selection-start-line="49" selection-start-column="23" selection-end-line="49" selection-end-column="23" />
|
1025
|
+
<folding />
|
1026
|
+
</state>
|
1027
|
+
</provider>
|
1028
|
+
</entry>
|
1029
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/cucumber/cucumber_test_runner.rb">
|
1030
|
+
<provider selected="true" editor-type-id="text-editor">
|
1031
|
+
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1320">
|
1032
|
+
<caret line="28" column="34" selection-start-line="28" selection-start-column="34" selection-end-line="28" selection-end-column="34" />
|
1049
1033
|
<folding />
|
1050
1034
|
</state>
|
1051
1035
|
</provider>
|
1052
1036
|
</entry>
|
1053
1037
|
<entry file="file://$PROJECT_DIR$/lib/kymera/broker.rb">
|
1054
1038
|
<provider selected="true" editor-type-id="text-editor">
|
1055
|
-
<state vertical-scroll-proportion="
|
1056
|
-
<caret line="
|
1039
|
+
<state vertical-scroll-proportion="-8.346154" vertical-offset="998" max-vertical-offset="2910">
|
1040
|
+
<caret line="81" column="9" selection-start-line="81" selection-start-column="9" selection-end-line="81" selection-end-column="9" />
|
1041
|
+
<folding />
|
1042
|
+
</state>
|
1043
|
+
</provider>
|
1044
|
+
</entry>
|
1045
|
+
<entry file="file://$PROJECT_DIR$/lib/kymera/worker.rb">
|
1046
|
+
<provider selected="true" editor-type-id="text-editor">
|
1047
|
+
<state vertical-scroll-proportion="-9.230769" vertical-offset="0" max-vertical-offset="3120">
|
1048
|
+
<caret line="16" column="55" selection-start-line="16" selection-start-column="55" selection-end-line="16" selection-end-column="55" />
|
1057
1049
|
<folding />
|
1058
1050
|
</state>
|
1059
1051
|
</provider>
|
@@ -1061,14 +1053,14 @@
|
|
1061
1053
|
<entry file="file://$PROJECT_DIR$/lib/spec/full_run_for_linux_spec.rb">
|
1062
1054
|
<provider selected="true" editor-type-id="text-editor">
|
1063
1055
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="855">
|
1064
|
-
<caret line="
|
1056
|
+
<caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
|
1065
1057
|
<folding />
|
1066
1058
|
</state>
|
1067
1059
|
</provider>
|
1068
1060
|
</entry>
|
1069
1061
|
<entry file="file://$PROJECT_DIR$/lib/kymera/version.rb">
|
1070
1062
|
<provider selected="true" editor-type-id="text-editor">
|
1071
|
-
<state vertical-scroll-proportion="0.
|
1063
|
+
<state vertical-scroll-proportion="0.017482517" vertical-offset="0" max-vertical-offset="858">
|
1072
1064
|
<caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
|
1073
1065
|
<folding />
|
1074
1066
|
</state>
|
data/lib/kymera/broker.rb
CHANGED
@@ -8,6 +8,7 @@ module Kymera
|
|
8
8
|
def initialize
|
9
9
|
config = Kymera::Config.new
|
10
10
|
@zmq = Kymera::SZMQ.new
|
11
|
+
Thread.abort_on_exception = true
|
11
12
|
#This will change once I get the worker registry up and running. When that is up, there will be one connection spawned for
|
12
13
|
#each of the workers that are connected. Edit - Thats actually not sustainable. The number of workers should be able to change
|
13
14
|
#dynamically without impact to the broker. An inventory check should be made at the start of every new test run. There should also
|
@@ -44,8 +45,8 @@ module Kymera
|
|
44
45
|
tests = test_run["tests"].copy
|
45
46
|
threads = []
|
46
47
|
puts "Checking for group configuration...#{test_run['grouped']}"
|
47
|
-
puts "This is the test run message:\n"
|
48
|
-
puts "#{test_run}"
|
48
|
+
# puts "This is the test run message:\n"
|
49
|
+
# puts "#{test_run}"
|
49
50
|
if test_run["grouped"] || test_run["grouped"].to_s.downcase == 'true'
|
50
51
|
puts 'Grouping tests....'
|
51
52
|
tests = group_tests(tests)
|
@@ -54,7 +55,6 @@ module Kymera
|
|
54
55
|
@test_count = test_run["tests"].length
|
55
56
|
report_test_config(test_run)
|
56
57
|
|
57
|
-
@results = ''
|
58
58
|
if tests.length > @num_of_connections.to_i
|
59
59
|
puts "Test count was higher than connections. Starting tests and initiating run queue"
|
60
60
|
1.upto @num_of_connections.to_i do
|
@@ -64,8 +64,6 @@ module Kymera
|
|
64
64
|
end
|
65
65
|
work_queue(threads, tests, test_run)
|
66
66
|
|
67
|
-
puts "Test run completed"
|
68
|
-
|
69
67
|
else
|
70
68
|
puts "Test count was not higher than the connections. Starting all tests."
|
71
69
|
1.upto tests.length do
|
@@ -74,19 +72,28 @@ module Kymera
|
|
74
72
|
threads << run_test(test, test_run)
|
75
73
|
end
|
76
74
|
|
77
|
-
threads.each do |t|
|
78
|
-
puts "waiting for threads"
|
79
|
-
t.join
|
80
|
-
end
|
81
|
-
|
82
75
|
end
|
83
76
|
|
84
|
-
|
85
|
-
|
77
|
+
until threads_dead?(threads) do
|
78
|
+
# text = "Thread count: #{threads.count} | number of alive: #{num_of_alive(threads)} | number of dead: #{num_of_dead(threads)}"
|
79
|
+
# $stdout << "\r" + (" " * text.length)
|
80
|
+
# $stdout << "\r#{text}"
|
81
|
+
# puts "Threads still working...#{num_of_alive(threads)}"
|
82
|
+
end
|
86
83
|
|
84
|
+
puts "Test run completed....\nGathering results from threads..."
|
85
|
+
results = get_results(threads)
|
86
|
+
Kymera::TestResultsCollector.new.finalize_results(test_run["test_count"], test_run["run_id"], results, test_run["runner"], test_run["start_time"])
|
87
87
|
|
88
88
|
end
|
89
89
|
|
90
|
+
def get_results(threads)
|
91
|
+
results = ''
|
92
|
+
threads.each do |t|
|
93
|
+
results << t.value
|
94
|
+
end
|
95
|
+
results
|
96
|
+
end
|
90
97
|
|
91
98
|
def group_tests(tests)
|
92
99
|
#This creates a group for each of the available connection as specified by the @num_of_connections variable
|
@@ -121,10 +128,33 @@ module Kymera
|
|
121
128
|
threads << run_test(test, options)
|
122
129
|
end
|
123
130
|
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def threads_dead?(threads)
|
134
|
+
result = true
|
135
|
+
threads.each do |t|
|
136
|
+
if t.alive?
|
137
|
+
result = false
|
138
|
+
break
|
139
|
+
end
|
140
|
+
end
|
141
|
+
result
|
142
|
+
end
|
143
|
+
|
144
|
+
def num_of_dead(threads)
|
145
|
+
count = 0
|
146
|
+
threads.each do |t|
|
147
|
+
count +=1 if !t.alive?
|
148
|
+
end
|
149
|
+
count
|
150
|
+
end
|
151
|
+
|
152
|
+
def num_of_alive(threads)
|
153
|
+
count = 0
|
124
154
|
threads.each do |t|
|
125
|
-
|
126
|
-
t.join
|
155
|
+
count +=1 if t.alive?
|
127
156
|
end
|
157
|
+
count
|
128
158
|
end
|
129
159
|
|
130
160
|
#This runs each test individually
|
@@ -138,8 +168,8 @@ module Kymera
|
|
138
168
|
socket.connect
|
139
169
|
puts "Sending: #{message}"
|
140
170
|
results = socket.send_message(message)
|
141
|
-
@results << results
|
142
171
|
socket.close
|
172
|
+
results
|
143
173
|
}
|
144
174
|
end
|
145
175
|
|
data/lib/kymera/version.rb
CHANGED
data/lib/kymera/worker.rb
CHANGED
@@ -5,32 +5,47 @@ module Kymera
|
|
5
5
|
class Worker
|
6
6
|
|
7
7
|
def initialize
|
8
|
+
# get the kymera config
|
8
9
|
config = Kymera::Config.new
|
9
|
-
|
10
|
-
@
|
10
|
+
# set the address where the broker is located
|
11
|
+
@broker_address = config.worker["broker_address"]
|
12
|
+
# set the address where the results bus is located
|
11
13
|
@result_bus_address = config.worker["result_bus_address"]
|
12
|
-
|
14
|
+
# set the number of concurrent tests that this user is capable of running. This is hard set to 2 times the processor count to try to take advantage of multi-threading
|
15
|
+
# may make this a passed in parameter or possibly something that can be changed on the fly
|
16
|
+
@max_threads = Kymera.processor_count
|
17
|
+
# get a new instance of the custom ZeroMQ context
|
13
18
|
@zmq = SZMQ.new
|
14
19
|
#For the moment I am using a push/pull configuration for running of tests. Initial runs indicated that this may not work as all tests are being sent to just one
|
15
20
|
#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
21
|
#manually.
|
17
|
-
@
|
18
|
-
|
22
|
+
@broker_socket = @zmq.socket(@broker_address, 'reply')
|
23
|
+
# connect to the broker
|
24
|
+
@broker_socket.connect
|
25
|
+
# set the array for the test threads
|
19
26
|
@threads = []
|
27
|
+
# set the runner id used to identify this runner on the network
|
20
28
|
@runner_id = Kymera.host_name
|
29
|
+
# should a thread tank, I want the worker to exit. This if for debugging purposes as I am having a hanging issue on long test runs at the moment
|
30
|
+
Thread.abort_on_exception = true
|
21
31
|
end
|
22
32
|
|
33
|
+
# The method for accepting incoming test run requests. This currently blocks the console when the worker is started. This means that no user input can be accepted
|
34
|
+
# I am thinking of changing that so that it will run in the background so that I can send commands to the worker for debugging or setup reasons
|
23
35
|
def listen
|
24
36
|
puts "Worker started..."
|
25
|
-
|
37
|
+
# start listening on the broker socket
|
38
|
+
@broker_socket.receive do |message|
|
26
39
|
#This is a preliminary kill command. I will need to give more thought into the life cycle of the workers
|
27
40
|
if message == 'STOP'
|
28
41
|
stop
|
29
42
|
break
|
30
43
|
else
|
31
44
|
puts "Received tests to run"
|
45
|
+
# pass the received message into the run_test method and then add its return value to the results
|
32
46
|
results = run_test(message)
|
33
|
-
|
47
|
+
# send the results of the test run back to the broker
|
48
|
+
@broker_socket.send_message results
|
34
49
|
end
|
35
50
|
end
|
36
51
|
|
@@ -39,14 +54,18 @@ module Kymera
|
|
39
54
|
#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
|
40
55
|
#The idea is to be able to take in any number of different test runners (cucumber/rspec) without having the restart the worker object
|
41
56
|
#This is why passing in the runner on worker instantiation isnt really an option
|
42
|
-
def run_test(
|
57
|
+
def run_test(test_run_options)
|
43
58
|
puts "Setting up tests..."
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
tests = !
|
59
|
+
# the test run options are send over the wire in json. This is parsing that json and turning it into a hash
|
60
|
+
test_run_options = JSON.parse(test_run_options)
|
61
|
+
# this checks to see if there are multiple tests passed in and assings those tests to the tests variable
|
62
|
+
tests = !test_run_options["test"].is_a?(Array) ? [test_run_options["test"]] : test_run_options["test"]
|
63
|
+
# because I want this tool to be cross platform, we have to account for the directory structure differences between windows and linux based machines.
|
64
|
+
# This checks to see what system the worker is running on and changes out the necessary characters in the tests that are passed in.
|
65
|
+
# This presents a little bit of an issue if the Client object is on a Mac. Will need to come back and address this later
|
48
66
|
if Kymera.is_linux?
|
49
67
|
puts "This is a linux/unix based machine. Making adjustments...."
|
68
|
+
# go through all the test strings and swap out the C: from the test paths with ~
|
50
69
|
begin
|
51
70
|
tests.each do |_test|
|
52
71
|
if _test.include? 'c:'
|
@@ -70,40 +89,54 @@ module Kymera
|
|
70
89
|
|
71
90
|
puts "Received #{tests.length} test(s). Running those tests with a max number of threads of #{@max_threads}"
|
72
91
|
|
73
|
-
|
92
|
+
# spawn all of the threads needed to run the maximum number of concurrent tests
|
93
|
+
# this will iterate over the tests array, taking on off the top on each iteration up to the max number of threads
|
94
|
+
# it then passes that into the new thread along with the test_run_options and adds that thread to the threads array
|
95
|
+
1.upto @max_threads do |i|
|
74
96
|
_test = tests.pop
|
97
|
+
# options = {runner: test["runner"]}
|
75
98
|
break if _test.nil?
|
76
|
-
|
77
|
-
|
78
|
-
}
|
79
|
-
end
|
99
|
+
# may be should move this into its own method
|
100
|
+
puts "Starting thread #{i}..."
|
80
101
|
|
81
|
-
|
102
|
+
begin
|
103
|
+
@threads << Thread.new(_test, test_run_options) { |s_test, test_run|
|
104
|
+
runner = get_runner(test_run["runner"], test_run["options"], test_run["run_id"])
|
105
|
+
runner.run_test(s_test, test_run['branch'])
|
106
|
+
}
|
107
|
+
puts "Thread #{i} started..."
|
108
|
+
rescue => e
|
109
|
+
puts "There was a problem starting thread #{i}:\n#{e}"
|
110
|
+
end
|
111
|
+
end
|
82
112
|
|
113
|
+
# if there are tests left over, work them
|
83
114
|
if tests.length > 0
|
84
115
|
puts "There were more tests than could be run at one time. Starting test queue."
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
116
|
+
while tests.length > 0
|
117
|
+
$stdout << "\rTest Remaining: #{tests.length}"
|
118
|
+
if num_of_alive(@threads) < @max_threads
|
119
|
+
_test = tests.pop
|
120
|
+
break if _test.nil?
|
121
|
+
@threads << Thread.new(_test, test_run_options) { |s_test, test_run|
|
122
|
+
runner = get_runner(test_run["runner"], test_run["options"], test_run["run_id"])
|
123
|
+
runner.run_test(s_test, test_run['branch'])
|
124
|
+
}
|
125
|
+
end
|
95
126
|
end
|
96
127
|
end
|
97
128
|
|
98
|
-
|
99
|
-
|
100
|
-
|
129
|
+
# wait for all the threads to get done. I am using a check of whether or not all the threads are dead instead of the Thread#join because I am trying to
|
130
|
+
# negate the possibility of a thread handing all of the other threads (though this doesnt really tackle that problem. This is just another way of doing it)
|
131
|
+
until threads_dead?(@threads)
|
132
|
+
# text = "Thread count: #{@threads.count} | number of alive: #{num_of_alive(@threads)} | number of dead: #{num_of_dead(@threads)}"
|
101
133
|
# $stdout << "\r" + (" " * text.length)
|
102
134
|
# $stdout << "\r#{text}"
|
103
135
|
end
|
104
136
|
|
105
|
-
puts "\nNo more tests to be run"
|
106
|
-
|
137
|
+
puts "\nNo more tests to be run\nGenerating results..."
|
138
|
+
results = get_results(@threads)
|
139
|
+
puts "Clearing thread array..."
|
107
140
|
@threads = []
|
108
141
|
results
|
109
142
|
end
|
@@ -114,6 +147,41 @@ module Kymera
|
|
114
147
|
|
115
148
|
private
|
116
149
|
|
150
|
+
def get_results(threads)
|
151
|
+
results = ''
|
152
|
+
threads.each do |t|
|
153
|
+
results << t.value
|
154
|
+
end
|
155
|
+
results
|
156
|
+
end
|
157
|
+
|
158
|
+
def threads_dead?(threads)
|
159
|
+
result = true
|
160
|
+
threads.each do |t|
|
161
|
+
if t.alive?
|
162
|
+
result = false
|
163
|
+
break
|
164
|
+
end
|
165
|
+
end
|
166
|
+
result
|
167
|
+
end
|
168
|
+
|
169
|
+
def num_of_dead(threads)
|
170
|
+
count = 0
|
171
|
+
threads.each do |t|
|
172
|
+
count +=1 if !t.alive?
|
173
|
+
end
|
174
|
+
count
|
175
|
+
end
|
176
|
+
|
177
|
+
def num_of_alive(threads)
|
178
|
+
count = 0
|
179
|
+
threads.each do |t|
|
180
|
+
count +=1 if t.alive?
|
181
|
+
end
|
182
|
+
count
|
183
|
+
end
|
184
|
+
|
117
185
|
def thread_count
|
118
186
|
@threads.delete_if {|th| !th.alive?}.length
|
119
187
|
end
|
@@ -1,31 +1,31 @@
|
|
1
1
|
require_relative '../../lib/kymera'
|
2
2
|
threads = []
|
3
3
|
|
4
|
-
trap('INT') do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
4
|
+
# trap('INT') do
|
5
|
+
# threads.each do |thread|
|
6
|
+
# thread.kill
|
7
|
+
# end unless threads.empty?
|
8
|
+
# @close = true
|
9
|
+
# end
|
10
10
|
|
11
11
|
# Broker thread
|
12
|
-
threads << Thread.new {
|
13
|
-
|
14
|
-
}
|
12
|
+
# threads << Thread.new {
|
13
|
+
# Kymera.start_broker
|
14
|
+
# }
|
15
15
|
|
16
16
|
#Results bus thread
|
17
|
-
threads << Thread.new {
|
18
|
-
|
19
|
-
}
|
17
|
+
# threads << Thread.new {
|
18
|
+
# Kymera.start_bus
|
19
|
+
# }
|
20
20
|
|
21
21
|
#Results collector thread
|
22
|
-
threads << Thread.new {
|
23
|
-
|
24
|
-
}
|
22
|
+
# threads << Thread.new {
|
23
|
+
# Kymera.start_collector
|
24
|
+
# }
|
25
25
|
#
|
26
|
-
threads << Thread.new {
|
27
|
-
|
28
|
-
}
|
26
|
+
# threads << Thread.new {
|
27
|
+
# Kymera.start_worker
|
28
|
+
# }
|
29
29
|
|
30
30
|
# threads << Thread.new {
|
31
31
|
# Kymera.start_worker
|
@@ -36,15 +36,15 @@ threads << Thread.new {
|
|
36
36
|
# }
|
37
37
|
|
38
38
|
#give stuff a chance to start up
|
39
|
-
sleep 2
|
39
|
+
# sleep 2
|
40
40
|
|
41
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/
|
42
|
+
Kymera.run_tests('~/apollo/source/integration_tests/features/posting/entry_common/', 'cucumber', ['-p default'], 'develop', true)
|
43
43
|
|
44
44
|
|
45
|
-
loop do
|
46
|
-
|
47
|
-
end
|
45
|
+
# loop do
|
46
|
+
# raise SystemExit if @close
|
47
|
+
# end
|
48
48
|
|
49
49
|
|
50
50
|
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jakesa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|