@aj-shadow/z-abs-funclayer-engine-server 0.0.0-aj-beta.221

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.
Files changed (204) hide show
  1. package/.gitattributes +26 -0
  2. package/LICENSE.txt +96 -0
  3. package/README.md +5 -0
  4. package/npm-shrinkwrap.json +13 -0
  5. package/package.json +10 -0
  6. package/project/server/_build/Server-FuncLayer-Engine-server.bld +12 -0
  7. package/project/server/_build/z-abs-funclayer-engine-server.prj +12 -0
  8. package/project/server/address/address-calculator.js +377 -0
  9. package/project/server/address/address-data.js +364 -0
  10. package/project/server/address/address-manager.js +251 -0
  11. package/project/server/address/address.js +176 -0
  12. package/project/server/address/addresses.js +122 -0
  13. package/project/server/address/dns-url-cache.js +130 -0
  14. package/project/server/address/interfaces.js +100 -0
  15. package/project/server/address/local-dns.js +35 -0
  16. package/project/server/address/login-report.js +56 -0
  17. package/project/server/address/networks.js +598 -0
  18. package/project/server/address/real-networks.js +102 -0
  19. package/project/server/address/subnet.js +60 -0
  20. package/project/server/communication/messages/messages-s-to-c/message-execution-started.js +17 -0
  21. package/project/server/communication/messages/messages-s-to-c/message-execution-stopped.js +14 -0
  22. package/project/server/communication/messages/messages-s-to-c/message-test-case-debug-paused.js +18 -0
  23. package/project/server/communication/messages/messages-s-to-c/message-test-case-log.js +25 -0
  24. package/project/server/communication/messages/messages-s-to-c/message-test-case-started.js +21 -0
  25. package/project/server/communication/messages/messages-s-to-c/message-test-case-state.js +18 -0
  26. package/project/server/communication/messages/messages-s-to-c/message-test-case-stopped.js +22 -0
  27. package/project/server/communication/messages/messages-s-to-c/message-test-stage-started.js +19 -0
  28. package/project/server/communication/messages/messages-s-to-c/message-test-stage-stopped.js +19 -0
  29. package/project/server/communication/messages/messages-s-to-c/message-test-suite-started.js +16 -0
  30. package/project/server/communication/messages/messages-s-to-c/message-test-suite-stopped.js +19 -0
  31. package/project/server/communication/messages/messages-s-to-w/message-test-case-debug-actor-index-ok.js +15 -0
  32. package/project/server/communication/messages/messages-w-to-s/message-test-case-debug-actor-index.js +15 -0
  33. package/project/server/debug/debug-step-over.js +54 -0
  34. package/project/server/debug/debugger.js +102 -0
  35. package/project/server/debug-dashboard/debug-dashboard.js +14 -0
  36. package/project/server/debug-dashboard/gauge-manager.js +44 -0
  37. package/project/server/debug-dashboard/gauge.js +37 -0
  38. package/project/server/engine/actor/actor-condition.js +335 -0
  39. package/project/server/engine/actor/actor-intercepting.js +32 -0
  40. package/project/server/engine/actor/actor-local.js +24 -0
  41. package/project/server/engine/actor/actor-mixins/asynch-mixin.js +103 -0
  42. package/project/server/engine/actor/actor-mixins/content-mixin.js +22 -0
  43. package/project/server/engine/actor/actor-mixins/logger-mixin.js +603 -0
  44. package/project/server/engine/actor/actor-mixins/process-mixin.js +35 -0
  45. package/project/server/engine/actor/actor-mixins/shared-data-mixin.js +109 -0
  46. package/project/server/engine/actor/actor-mixins/shared-execution-data-mixin.js +57 -0
  47. package/project/server/engine/actor/actor-mixins/stack-mixin-client.js +157 -0
  48. package/project/server/engine/actor/actor-mixins/stack-mixin-server.js +123 -0
  49. package/project/server/engine/actor/actor-mixins/stack-mixin.js +128 -0
  50. package/project/server/engine/actor/actor-mixins/test-data-mixin.js +402 -0
  51. package/project/server/engine/actor/actor-mixins/timer-mixin.js +44 -0
  52. package/project/server/engine/actor/actor-mixins/verify-mixin-base.js +668 -0
  53. package/project/server/engine/actor/actor-mixins/verify-mixin-mandatory.js +46 -0
  54. package/project/server/engine/actor/actor-mixins/verify-mixin-optional.js +44 -0
  55. package/project/server/engine/actor/actor-mixins/verify-mixin-value.js +71 -0
  56. package/project/server/engine/actor/actor-originating.js +32 -0
  57. package/project/server/engine/actor/actor-part-mixins/part-asynch-mixin.js +24 -0
  58. package/project/server/engine/actor/actor-part-mixins/part-logger-mixin.js +39 -0
  59. package/project/server/engine/actor/actor-part-mixins/part-shared-runtime-data-mixin.js +33 -0
  60. package/project/server/engine/actor/actor-part-mixins/part-timer-mixin.js +12 -0
  61. package/project/server/engine/actor/actor-part-mixins/part-verify-mixin-mandatory.js +15 -0
  62. package/project/server/engine/actor/actor-part-mixins/part-verify-mixin-optional.js +15 -0
  63. package/project/server/engine/actor/actor-part-mixins/part-verify-mixin-value.js +15 -0
  64. package/project/server/engine/actor/actor-part-post.js +37 -0
  65. package/project/server/engine/actor/actor-part-pre.js +37 -0
  66. package/project/server/engine/actor/actor-pending.js +79 -0
  67. package/project/server/engine/actor/actor-proxy.js +38 -0
  68. package/project/server/engine/actor/actor-results.js +36 -0
  69. package/project/server/engine/actor/actor-state-timeout.js +35 -0
  70. package/project/server/engine/actor/actor-sut.js +38 -0
  71. package/project/server/engine/actor/actor-terminating.js +32 -0
  72. package/project/server/engine/actor/actor.js +553 -0
  73. package/project/server/engine/actor-phase.js +26 -0
  74. package/project/server/engine/actor-state-machine-base.js +298 -0
  75. package/project/server/engine/actor-state-machine-data.js +383 -0
  76. package/project/server/engine/actor-state-machine-exec.js +137 -0
  77. package/project/server/engine/actor-state-machine-post.js +177 -0
  78. package/project/server/engine/actor-state-machine-pre.js +142 -0
  79. package/project/server/engine/actor-state-machine-process.js +88 -0
  80. package/project/server/engine/actor-state-machine-state.js +52 -0
  81. package/project/server/engine/actor-state-machine.js +185 -0
  82. package/project/server/engine/actor-state.js +35 -0
  83. package/project/server/engine/actor-worker.js +68 -0
  84. package/project/server/engine/actors-phase.js +49 -0
  85. package/project/server/engine/actors.js +317 -0
  86. package/project/server/engine/data/content-audio.js +18 -0
  87. package/project/server/engine/data/content-base.js +91 -0
  88. package/project/server/engine/data/content-binary.js +15 -0
  89. package/project/server/engine/data/content-cache.js +67 -0
  90. package/project/server/engine/data/content-data.js +254 -0
  91. package/project/server/engine/data/content-documents.js +18 -0
  92. package/project/server/engine/data/content-image.js +20 -0
  93. package/project/server/engine/data/content-other.js +19 -0
  94. package/project/server/engine/data/content-text.js +19 -0
  95. package/project/server/engine/data/content-undefined.js +14 -0
  96. package/project/server/engine/data/content-video.js +20 -0
  97. package/project/server/engine/data/content.js +60 -0
  98. package/project/server/engine/data/runtime-data-shared.js +75 -0
  99. package/project/server/engine/data/test-data.js +239 -0
  100. package/project/server/engine/execution-context-test-case.js +48 -0
  101. package/project/server/engine/execution-context-test-suite.js +66 -0
  102. package/project/server/engine/execution-context.js +93 -0
  103. package/project/server/engine/stage-setter.js +132 -0
  104. package/project/server/engine/stage.js +83 -0
  105. package/project/server/engine/test-case-load.js +25 -0
  106. package/project/server/engine/test-case-loader.js +125 -0
  107. package/project/server/engine/test-case-not-found.js +29 -0
  108. package/project/server/engine/test-case-result-type.js +42 -0
  109. package/project/server/engine/test-case.js +417 -0
  110. package/project/server/engine/test-output.js +116 -0
  111. package/project/server/engine/test-statistics-test-case.js +59 -0
  112. package/project/server/engine/test-statistics-test-suite.js +63 -0
  113. package/project/server/engine/test-suite.js +276 -0
  114. package/project/server/stack/api/base-64.js +16 -0
  115. package/project/server/stack/api/const-commands-decoder.js +15 -0
  116. package/project/server/stack/api/const-commands-encoder.js +15 -0
  117. package/project/server/stack/api/hmacSha1.js +14 -0
  118. package/project/server/stack/api/json-web-token.js +38 -0
  119. package/project/server/stack/api/sdp/sdp-decoder.js +70 -0
  120. package/project/server/stack/api/sdp/sdp-encoder.js +40 -0
  121. package/project/server/stack/api/sdp/sdp-media-attribute.js +13 -0
  122. package/project/server/stack/api/sdp/sdp-media-session.js +16 -0
  123. package/project/server/stack/api/sdp/sdp-message.js +17 -0
  124. package/project/server/stack/api/sdp/sdp-origin.js +17 -0
  125. package/project/server/stack/api/sdp/sdp-session-attribute.js +13 -0
  126. package/project/server/stack/api/sdp/sdp-timing.js +15 -0
  127. package/project/server/stack/api/text-protocol-header.js +35 -0
  128. package/project/server/stack/factory/stack-components-helpers.js +22 -0
  129. package/project/server/stack/factory/stack-components-template-base-actors.js +124 -0
  130. package/project/server/stack/factory/stack-components-template-base-test-cases.js +22 -0
  131. package/project/server/stack/factory/stack-components-templates-actors.js +15 -0
  132. package/project/server/stack/factory/stack-components-templates-test-cases.js +20 -0
  133. package/project/server/stack/managers/client-manager/client-manager.js +193 -0
  134. package/project/server/stack/managers/connection-manager/connection-data.js +82 -0
  135. package/project/server/stack/managers/connection-manager/connection-manager.js +177 -0
  136. package/project/server/stack/managers/connection-manager/connection-object.js +148 -0
  137. package/project/server/stack/managers/connection-manager/shared-data.js +14 -0
  138. package/project/server/stack/managers/manager.js +95 -0
  139. package/project/server/stack/managers/server-manager/server-manager.js +76 -0
  140. package/project/server/stack/managers/server-manager/server.js +384 -0
  141. package/project/server/stack/managers/shared-manager.js +117 -0
  142. package/project/server/stack/network/buffer-manager.js +190 -0
  143. package/project/server/stack/network/mc/mc-connection-client-shared.js +51 -0
  144. package/project/server/stack/network/mc/mc-connection-client.js +117 -0
  145. package/project/server/stack/network/mc/mc-connection-server-shared.js +51 -0
  146. package/project/server/stack/network/mc/mc-connection-server.js +58 -0
  147. package/project/server/stack/network/mc/mc-connection-shared.js +26 -0
  148. package/project/server/stack/network/mc/mc-connection.js +33 -0
  149. package/project/server/stack/network/mc/mc-server.js +90 -0
  150. package/project/server/stack/network/network-connection-shared.js +177 -0
  151. package/project/server/stack/network/network-connection.js +134 -0
  152. package/project/server/stack/network/network-helper.js +12 -0
  153. package/project/server/stack/network/network-server.js +36 -0
  154. package/project/server/stack/network/network-type.js +46 -0
  155. package/project/server/stack/network/tcp/tcp-connection-client-shared.js +18 -0
  156. package/project/server/stack/network/tcp/tcp-connection-client.js +71 -0
  157. package/project/server/stack/network/tcp/tcp-connection-server-shared.js +14 -0
  158. package/project/server/stack/network/tcp/tcp-connection-server.js +16 -0
  159. package/project/server/stack/network/tcp/tcp-connection-shared.js +55 -0
  160. package/project/server/stack/network/tcp/tcp-connection.js +167 -0
  161. package/project/server/stack/network/tcp/tcp-server.js +35 -0
  162. package/project/server/stack/network/tls/tls-connection-client-shared.js +18 -0
  163. package/project/server/stack/network/tls/tls-connection-client.js +76 -0
  164. package/project/server/stack/network/tls/tls-connection-server-shared.js +14 -0
  165. package/project/server/stack/network/tls/tls-connection-server.js +16 -0
  166. package/project/server/stack/network/tls/tls-connection-shared.js +63 -0
  167. package/project/server/stack/network/tls/tls-connection.js +176 -0
  168. package/project/server/stack/network/tls/tls-server.js +45 -0
  169. package/project/server/stack/network/transport.js +19 -0
  170. package/project/server/stack/network/udp/udp-connection-client-shared.js +47 -0
  171. package/project/server/stack/network/udp/udp-connection-client.js +93 -0
  172. package/project/server/stack/network/udp/udp-connection-server-shared.js +51 -0
  173. package/project/server/stack/network/udp/udp-connection-server.js +58 -0
  174. package/project/server/stack/network/udp/udp-connection-shared.js +26 -0
  175. package/project/server/stack/network/udp/udp-connection.js +33 -0
  176. package/project/server/stack/network/udp/udp-server.js +74 -0
  177. package/project/server/stack/pending/pending-const.js +22 -0
  178. package/project/server/stack/pending/pending-context-receive.js +18 -0
  179. package/project/server/stack/pending/pending-context-send.js +18 -0
  180. package/project/server/stack/pending/pending-context.js +18 -0
  181. package/project/server/stack/pending/pending-inner.js +107 -0
  182. package/project/server/stack/pending/pending-switch.js +146 -0
  183. package/project/server/stack/stacks/ascii-dictionary.js +289 -0
  184. package/project/server/stack/stacks/binary-log.js +88 -0
  185. package/project/server/stack/stacks/bit-byte.js +51 -0
  186. package/project/server/stack/stacks/browser-data.js +25 -0
  187. package/project/server/stack/stacks/cancel-object.js +16 -0
  188. package/project/server/stack/stacks/connection-client.js +228 -0
  189. package/project/server/stack/stacks/connection-instance.js +69 -0
  190. package/project/server/stack/stacks/connection-ip.js +374 -0
  191. package/project/server/stack/stacks/connection-server.js +169 -0
  192. package/project/server/stack/stacks/connection-web.js +113 -0
  193. package/project/server/stack/stacks/connection-worker-client.js +29 -0
  194. package/project/server/stack/stacks/connection-worker-connection.js +41 -0
  195. package/project/server/stack/stacks/connection-worker-server.js +29 -0
  196. package/project/server/stack/stacks/connection-worker.js +99 -0
  197. package/project/server/stack/stacks/connection.js +132 -0
  198. package/project/server/stack/stacks/decoder.js +83 -0
  199. package/project/server/stack/stacks/encoder.js +82 -0
  200. package/project/server/stack/stacks/ip-log.js +24 -0
  201. package/project/server/stack/stacks/message-selector.js +22 -0
  202. package/project/server/stack/stacks/msg-ip.js +18 -0
  203. package/project/server/stack/stacks/stack-content-cache.js +27 -0
  204. package/project/z-abs-funclayer-engine-server.tree +230 -0
@@ -0,0 +1,60 @@
1
+
2
+ 'use strict';
3
+
4
+
5
+ class Subnet {
6
+ static calculate(virtualInterface) {
7
+ if('IPv4' === virtualInterface.family) {
8
+ const addressSplit = 'localhost' !== virtualInterface.address ? virtualInterface.address : '127.0.0.1';
9
+ return Subnet.subnet(addressSplit.split('.'), virtualInterface.netmask.split('.'), 10);
10
+ }
11
+ else if('IPv6' === virtualInterface.family) {
12
+ const address = 'localhost' !== virtualInterface.address ? virtualInterface.address : '::1';
13
+ return Subnet.subnet(Subnet.formatIPv6(virtualInterface.address), Subnet.formatIPv6(virtualInterface.netmask), 16);
14
+ }
15
+ }
16
+
17
+ static formatIPv6(address) {
18
+ const addressParts = address.split(':');
19
+ const index = addressParts.findIndex((addressPart) => {
20
+ return '' === addressPart;
21
+ });
22
+ if(-1 !== index) {
23
+ const size = addressParts.length - 2;
24
+ addressParts.splice(index, 2, ...Array(8 - size).fill(0));
25
+ }
26
+ return addressParts;
27
+ }
28
+
29
+ static subnet(addressParts, netmaskParts, base) {
30
+ let subnet = '';
31
+ let i = 0
32
+ for(; i < addressParts.length - 1; ++i) {
33
+ subnet += (Number.parseInt(addressParts[i], base) & Number.parseInt(netmaskParts[i], base)) + (10 === base ? '.' : ':');
34
+ }
35
+ subnet += (Number.parseInt(addressParts[i], base) & Number.parseInt(netmaskParts[i], base));
36
+ return `${subnet}/${Subnet.netmaskBits(netmaskParts, base)}`;
37
+ }
38
+
39
+ static netmaskBits(netmaskParts, base) {
40
+ if(10 === base) {
41
+ let sum = 0;
42
+ for(let i = 0; i < netmaskParts.length; ++i) {
43
+ const binary = Number.parseInt(netmaskParts[i]).toString(2).padStart(8, '0');
44
+ const firstZero = binary.indexOf('0');
45
+ if(-1 === firstZero) {
46
+ sum += 8;
47
+ }
48
+ else {
49
+ sum += firstZero;
50
+ return sum;
51
+ }
52
+ }
53
+ }
54
+ else {
55
+ return 'ToBeImpl';
56
+ }
57
+ }
58
+ }
59
+
60
+ module.exports = Subnet;
@@ -0,0 +1,17 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageExecutionStarted {
8
+ constructor(chosen, clientLogSettings, clientConsoleLogSettings) {
9
+ this.msgId = AppProtocolConst.EXECUTION_STARTED;
10
+ this.chosen = chosen;
11
+ this.clientLogSettings = clientLogSettings;
12
+ this.clientConsoleLogSettings = clientConsoleLogSettings;
13
+ }
14
+ }
15
+
16
+
17
+ module.exports = MessageExecutionStarted;
@@ -0,0 +1,14 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageExecutionStopped {
8
+ constructor() {
9
+ this.msgId = AppProtocolConst.EXECUTION_STOPPED;
10
+ }
11
+ }
12
+
13
+
14
+ module.exports = MessageExecutionStopped;
@@ -0,0 +1,18 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseDebugPaused {
8
+ constructor(stack, scriptId, script, actorIndex) {
9
+ this.msgId = AppProtocolConst.TEST_CASE_DEBUG_PAUSED;
10
+ this.stack = stack;
11
+ this.scriptId = scriptId;
12
+ this.script = script;
13
+ this.actorIndex = actorIndex;
14
+ }
15
+ }
16
+
17
+
18
+ module.exports = MessageTestCaseDebugPaused;
@@ -0,0 +1,25 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseLog {
8
+ constructor(type, date, actor, actorPath, log, group, fileName, lineNumber, sourceType, inners, data) {
9
+ this.msgId = AppProtocolConst.LOG;
10
+ this.type = type;
11
+ this.date = date;
12
+ this.actor = actor;
13
+ this.actorPath = actorPath;
14
+ this.log = log;
15
+ this.group = group;
16
+ this.fileName = fileName;
17
+ this.lineNumber = lineNumber;
18
+ this.sourceType = sourceType;
19
+ this.inners = inners;
20
+ this.data = data;
21
+ }
22
+ }
23
+
24
+
25
+ module.exports = MessageTestCaseLog;
@@ -0,0 +1,21 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseStarted {
8
+ constructor(index, iterationTs, name, sutName, actors, timestamp, isExecuted) {
9
+ this.msgId = AppProtocolConst.TEST_CASE_STARTED;
10
+ this.index = index;
11
+ this.iterationTs = iterationTs;
12
+ this.name = name;
13
+ this.sutName = sutName;
14
+ this.actors = actors;
15
+ this.timestamp = timestamp;
16
+ this.isExecuted = isExecuted;
17
+ }
18
+ }
19
+
20
+
21
+ module.exports = MessageTestCaseStarted;
@@ -0,0 +1,18 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseState {
8
+ constructor(actorIndex, actorOrderIndex, stateIndex, stateResultIndex) {
9
+ this.msgId = AppProtocolConst.TEST_CASE_STATE;
10
+ this.actorIndex = actorIndex;
11
+ this.actorOrderIndex = actorOrderIndex;
12
+ this.stateIndex = stateIndex;
13
+ this.stateResultIndex = stateResultIndex;
14
+ }
15
+ }
16
+
17
+
18
+ module.exports = MessageTestCaseState;
@@ -0,0 +1,22 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseStopped {
8
+ constructor(index, iterationTs, duration, resultId, resultIdPre, resultIdExec, resultIdPost, last) {
9
+ this.msgId = AppProtocolConst.TEST_CASE_STOPPED;
10
+ this.index = index;
11
+ this.iterationTs = iterationTs;
12
+ this.duration = duration;
13
+ this.resultId = resultId;
14
+ this.resultIdPre = resultIdPre;
15
+ this.resultIdExec = resultIdExec;
16
+ this.resultIdPost = resultIdPost;
17
+ this.last = last;
18
+ }
19
+ }
20
+
21
+
22
+ module.exports = MessageTestCaseStopped;
@@ -0,0 +1,19 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestStageStarted {
8
+ constructor(index, type, iterationTs, timestamp, isExecuted) {
9
+ this.msgId = AppProtocolConst.TEST_STAGE_STARTED;
10
+ this.index = index;
11
+ this.type = type;
12
+ this.iterationTs = iterationTs;
13
+ this.timestamp = timestamp;
14
+ this.isExecuted = isExecuted;
15
+ }
16
+ }
17
+
18
+
19
+ module.exports = MessageTestStageStarted;
@@ -0,0 +1,19 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestStageStopped {
8
+ constructor(index, type, iterationTs, duration, resultId) {
9
+ this.msgId = AppProtocolConst.TEST_STAGE_STOPPED;
10
+ this.index = index;
11
+ this.type = type;
12
+ this.iterationTs = iterationTs;
13
+ this.duration = duration;
14
+ this.resultId = resultId;
15
+ }
16
+ }
17
+
18
+
19
+ module.exports = MessageTestStageStopped;
@@ -0,0 +1,16 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestSuiteStarted {
8
+ constructor(index, timestamp) {
9
+ this.msgId = AppProtocolConst.TEST_SUITE_STARTED;
10
+ this.index = index;
11
+ this.timestamp = timestamp;
12
+ }
13
+ }
14
+
15
+
16
+ module.exports = MessageTestSuiteStarted;
@@ -0,0 +1,19 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestSuiteStopped {
8
+ constructor(index, timestamp, duration, resultId, last) {
9
+ this.msgId = AppProtocolConst.TEST_SUITE_STOPPED;
10
+ this.index = index;
11
+ this.timestamp = timestamp;
12
+ this.duration = duration;
13
+ this.resultId = resultId;
14
+ this.last = last;
15
+ }
16
+ }
17
+
18
+
19
+ module.exports = MessageTestSuiteStopped;
@@ -0,0 +1,15 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseDebugActorIndexOk {
8
+ constructor(sessionId, actorIndex) {
9
+ this.msgId = AppProtocolConst.TEST_CASE_DEBUG_ACTOR_INDEX_OK;
10
+ this.sessionId = sessionId;
11
+ this.actorIndex = actorIndex;
12
+ }
13
+ }
14
+
15
+ module.exports = MessageTestCaseDebugActorIndexOk;
@@ -0,0 +1,15 @@
1
+
2
+ 'use strict';
3
+
4
+ const AppProtocolConst = require('z-abs-funclayer-engine-cs/clientServer/communication/app-protocol/app-protocol-const');
5
+
6
+
7
+ class MessageTestCaseDebugActorIndex {
8
+ constructor(actorIndex) {
9
+ this.msgId = AppProtocolConst.TEST_CASE_DEBUG_ACTOR_INDEX;
10
+ this.actorIndex = actorIndex;
11
+ }
12
+ }
13
+
14
+
15
+ module.exports = MessageTestCaseDebugActorIndex;
@@ -0,0 +1,54 @@
1
+
2
+ 'use strict';
3
+
4
+
5
+ class DebugStepOver {
6
+ constructor(client) {
7
+ this.client = client;
8
+ this.lineNumber = 0;
9
+ this.topStack = null;
10
+ this.breakPoint = null;
11
+ }
12
+
13
+ async setBreakpoint(topStack) {
14
+ this.topStack = topStack;
15
+ const location = topStack?.location;
16
+ if(location) {
17
+ ++location.lineNumber;
18
+ if(location.lineNumber > this.lineNumber) {
19
+ this.lineNumber = location.lineNumber;
20
+ try {
21
+ const result = await this.client.Debugger.getPossibleBreakpoints({
22
+ start: location
23
+ });
24
+ if(0 !== result?.locations.length) {
25
+ const locations = result.locations;
26
+ let location = result.locations[0];
27
+ for(let i = 0; i < locations.length; ++i) {
28
+ if('call' === locations[i].type) {
29
+ location = locations[i];
30
+ break;
31
+ }
32
+ }
33
+ this.breakPoint = await this.client.Debugger.setBreakpoint({location:location});
34
+ }
35
+ }
36
+ catch(e) {}
37
+ }
38
+ }
39
+ }
40
+
41
+ async removeBreakpoint() {
42
+ if(this.breakPoint) {
43
+ await this.client.Debugger.removeBreakpoint({breakpointId:this.breakPoint.breakpointId});
44
+ this.breakPoint = null;
45
+ }
46
+ }
47
+
48
+ sameScript(scriptName) {
49
+ return this.topStack?.scriptName === scriptName;
50
+ }
51
+ }
52
+
53
+
54
+ module.exports = DebugStepOver;
@@ -0,0 +1,102 @@
1
+
2
+ 'use strict';
3
+
4
+ const ActorPathDist = require('z-abs-corelayer-server/server/path/actor-path-dist');
5
+ const Path = require('path');
6
+
7
+
8
+ class Debugger {
9
+ constructor() {
10
+ this.breakpoints = [];
11
+ this.runBreakpoints = [];
12
+ this.scriptCacheScriptId = new Map();
13
+ this.scriptCacheUrl = new Map();
14
+ }
15
+ /*
16
+ static calculateBreakpointUrl(sut, fut, tc, breakpoint) {
17
+ let url = `${ActorPathDist.getActorDistActorsPath()}/${breakpoint.name}`;
18
+ if(url.startsWith('/')) {
19
+ url = `file://${Path.normalize(url)}`;
20
+ }
21
+ else {
22
+ url = `file:///${Path.normalize(url)}`;
23
+ }
24
+ url = url.replace(/\\/g, '/');
25
+ return url;
26
+ }
27
+
28
+ setBreakpoints(breakpoints) {
29
+ this.breakpoints = breakpoints;
30
+ }
31
+
32
+ getBreakpoints() {
33
+ return this.breakpoints;
34
+ }
35
+
36
+ setBreakpoint(breakpoint) {
37
+ const index = this._findIndexBreakpoint(breakpoint);
38
+ if(-1 === index) {
39
+ this.breakpoints.push(breakpoint);
40
+ }
41
+ else {
42
+ this.breakpoints[index] = breakpoint;
43
+ }
44
+ }
45
+
46
+ getBreakpoint(breakpoint) {
47
+ const index = this._findIndexBreakpoint(breakpoint);
48
+ if(-1 !== index) {
49
+ return this.breakpoints[index];
50
+ }
51
+ }
52
+
53
+ removeBreakpoint(breakpoint) {
54
+ const index = this._findIndexBreakpoint(breakpoint);
55
+ if(-1 !== index) {
56
+ this.breakpoints.splice(index, 1);
57
+ }
58
+ }
59
+
60
+ setRunBreakpoint(breakpoint) {
61
+ this.runBreakpoints.push(breakpoint);
62
+ }
63
+
64
+ clearRunBreakpoints() {
65
+ this.runBreakpoints = [];
66
+ }
67
+
68
+ scriptParsed(parameters) {
69
+ this.scriptCacheScriptId.set(parameters.scriptId, parameters);
70
+ this.scriptCacheUrl.set(parameters.url, parameters);
71
+ }
72
+
73
+ getScriptParameters(scriptId) {
74
+ return this.scriptCacheScriptId.get(scriptId);
75
+ }
76
+
77
+ getScriptParametersFromUrl(url) {
78
+ return this.scriptCacheUrl.get(url);
79
+ }
80
+
81
+ _findIndexBreakpoint(breakpoint) {
82
+ return this.breakpoints.findIndex((foundBreakpoint) => {
83
+ return foundBreakpoint.name === breakpoint.name
84
+ && foundBreakpoint.lineNumber === breakpoint.lineNumber;
85
+ });
86
+ }
87
+
88
+ findbreakpointInBreakpoints(breakpoint) {
89
+ return !!this.breakpoints.find((serchBreakpoint) => {
90
+ return serchBreakpoint.lineNumber === breakpoint.lineNumber;
91
+ });
92
+ }
93
+
94
+ findbreakpointInRunBreakpoints(breakpoint) {
95
+ return !!this.runBreakpoints.find((serchBreakpoint) => {
96
+ return serchBreakpoint.lineNumber === breakpoint.lineNumber;
97
+ });
98
+ }*/
99
+ }
100
+
101
+
102
+ module.exports = Debugger;
@@ -0,0 +1,14 @@
1
+
2
+ 'use strict';
3
+
4
+ const GaugeManager = require('./gauge-manager');
5
+
6
+
7
+ class DebugDashboard {
8
+ constructor() {
9
+ this.gaugeManager = new GaugeManager();
10
+ }
11
+ }
12
+
13
+
14
+ module.exports = DebugDashboard;
@@ -0,0 +1,44 @@
1
+
2
+ 'use strict';
3
+
4
+ const Gauge = require('./gauge');
5
+
6
+
7
+ class GaugeManager {
8
+ constructor() {
9
+ this.gauges = new Map();
10
+ }
11
+
12
+ create(group, family, name, minValue, maxValue) {
13
+ const gaugeData = {
14
+ group: group,
15
+ family: family,
16
+ name: name,
17
+ key: `${group}:${family}:${name}`,
18
+ value: 0,
19
+ samples: [0],
20
+ nbrOfSamples: 0,
21
+ meanValue: 0,
22
+ minValue: minValue,
23
+ maxValue: maxValue,
24
+ update: () => {
25
+ ddb.writeln('GAUGE', gaugeData.key + ':', gaugeData.value);
26
+ }
27
+ };
28
+ this.gauges.set(gaugeData.key, gaugeData);
29
+ return new Gauge(gaugeData);
30
+ }
31
+
32
+ exit() {
33
+ this.gauges = new Map();
34
+ }
35
+
36
+ print() {
37
+ this.gauges.forEach((gaugeData) => {
38
+ // ddb.writeln('GAUGE', gaugeData.key + ':', gaugeData.value);
39
+ });
40
+ }
41
+ }
42
+
43
+
44
+ module.exports = GaugeManager;
@@ -0,0 +1,37 @@
1
+
2
+ 'use strict';
3
+
4
+
5
+ class Gauge {
6
+ constructor(gaugeData) {
7
+ this.gaugeData = gaugeData;
8
+ }
9
+
10
+ set(value) {
11
+ this.gaugeData.value = value;
12
+ // this.gaugeData.samples.push(value);
13
+ this.gaugeData.meanValue = (this.gaugeData.meanValue + (value - this.gaugeData.meanValue) / ++this.gaugeData.nbrOfSamples);
14
+ this.gaugeData.update();
15
+ }
16
+
17
+ inc() {
18
+ ++this.gaugeData.value;
19
+ // this.gaugeData.samples.push(this.gaugeData.value);
20
+ this.gaugeData.meanValue = (this.gaugeData.meanValue + (this.gaugeData.value - this.gaugeData.meanValue) / ++this.gaugeData.nbrOfSamples);
21
+ this.gaugeData.update();
22
+ }
23
+
24
+ dec() {
25
+ --this.gaugeData.value;
26
+ // this.gaugeData.samples.push(this.gaugeData.value);
27
+ this.gaugeData.meanValue = (this.gaugeData.meanValue + (this.gaugeData.value - this.gaugeData.meanValue) / ++this.gaugeData.nbrOfSamples);
28
+ this.gaugeData.update();
29
+ }
30
+
31
+ print() {
32
+ // ddb.writeln('- GAUGE', this.gaugeData.key + ':', this.gaugeData.value);
33
+ }
34
+ }
35
+
36
+
37
+ module.exports = Gauge;