Skip to content

Commit 61670d5

Browse files
committed
Run CTT and websocket server
1 parent 6b3fab9 commit 61670d5

27 files changed

Lines changed: 47068 additions & 137 deletions

.claude/settings.local.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(npm start)"
5+
],
6+
"deny": [],
7+
"ask": []
8+
}
9+
}

.github/workflows/run-ctt-remote.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ jobs:
1515
- name: Checkout repository
1616
uses: actions/checkout@v4
1717

18+
- name: Setup Node.js 24
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '24'
22+
cache: 'npm'
23+
1824
- name: Setup .NET Framework 4.8
1925
shell: powershell
2026
run: |

.gitignore

Lines changed: 2 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,4 @@
1-
# Logs
2-
logs
3-
*.log
4-
npm-debug.log*
5-
yarn-debug.log*
6-
yarn-error.log*
7-
lerna-debug.log*
8-
9-
# Diagnostic reports (https://nodejs.org/api/report.html)
10-
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11-
12-
# Runtime data
13-
pids
14-
*.pid
15-
*.seed
16-
*.pid.lock
17-
18-
# Directory for instrumented libs generated by jscoverage/JSCover
19-
lib-cov
20-
21-
# Coverage directory used by tools like istanbul
22-
coverage
23-
*.lcov
24-
25-
# nyc test coverage
26-
.nyc_output
27-
28-
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29-
.grunt
30-
31-
# Bower dependency directory (https://bower.io/)
32-
bower_components
33-
34-
# node-waf configuration
35-
.lock-wscript
36-
37-
# Compiled binary addons (https://nodejs.org/api/addons.html)
38-
build/Release
39-
40-
# Dependency directories
411
node_modules/
42-
jspm_packages/
43-
44-
# Snowpack dependency directory (https://snowpack.dev/)
45-
web_modules/
46-
47-
# TypeScript cache
48-
*.tsbuildinfo
49-
50-
# Optional npm cache directory
51-
.npm
52-
53-
# Optional eslint cache
54-
.eslintcache
55-
56-
# Optional stylelint cache
57-
.stylelintcache
58-
59-
# Optional REPL history
60-
.node_repl_history
61-
62-
# Output of 'npm pack'
63-
*.tgz
64-
65-
# Yarn Integrity file
66-
.yarn-integrity
67-
68-
# dotenv environment variable files
69-
.env
70-
.env.*
71-
!.env.example
72-
73-
# parcel-bundler cache (https://parceljs.org/)
74-
.cache
75-
.parcel-cache
76-
77-
# Next.js build output
78-
.next
79-
out
80-
81-
# Nuxt.js build / generate output
82-
.nuxt
83-
dist
84-
85-
# Gatsby files
86-
.cache/
87-
# Comment in the public line in if your project uses Gatsby and not Next.js
88-
# https://nextjs.org/blog/next-9-1#public-directory-support
89-
# public
90-
91-
# vuepress build output
92-
.vuepress/dist
93-
94-
# vuepress v2.x temp and cache directory
95-
.temp
96-
.cache
97-
98-
# Sveltekit cache directory
99-
.svelte-kit/
100-
101-
# vitepress build output
102-
**/.vitepress/dist
103-
104-
# vitepress cache directory
105-
**/.vitepress/cache
106-
107-
# Docusaurus cache and generated files
108-
.docusaurus
109-
110-
# Serverless directories
111-
.serverless/
112-
113-
# FuseBox cache
114-
.fusebox/
115-
116-
# DynamoDB Local files
117-
.dynamodb/
118-
119-
# Firebase cache directory
120-
.firebase/
121-
122-
# TernJS port file
123-
.tern-port
124-
125-
# Stores VSCode versions used for testing VSCode extensions
126-
.vscode-test
127-
128-
# yarn v3
129-
.pnp.*
130-
.yarn/*
131-
!.yarn/patches
132-
!.yarn/plugins
133-
!.yarn/releases
134-
!.yarn/sdks
135-
!.yarn/versions
1362

137-
# Vite logs files
138-
vite.config.js.timestamp-*
139-
vite.config.ts.timestamp-*
3+
# CTT lock file
4+
Project/lock

Project/Root Device/Package.cttpkg

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<TestCasePackage>
3+
<TestCases>
4+
<TestCase TestCaseId="f638dd0a-fc5e-496c-a008-04b91fcdc689" ProjectItemId="4ecbc8fc-aed2-45a4-b84d-778f89375d2e" Name="VersionCmdClassV3_Rev09_Orig" Included="true">
5+
<TestCasesSequences>
6+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PASSED" ResultLR="NONE">
7+
<IdGuid>df71f226-290b-4807-85a7-b46db1bf7c7d</IdGuid>
8+
</TestCaseSequence>
9+
<TestCaseSequence Name="VersionParameters" Description="&quot;Check Version Report parameters&quot;" Included="true" Result="PASSED" ResultLR="NONE">
10+
<IdGuid>8a4b4afc-4080-430b-88e4-2555a83994fa</IdGuid>
11+
</TestCaseSequence>
12+
<TestCaseSequence Name="CheckFirmwareData" Description="&quot;Check firmware meta data of Version CC and FirmwareUpdateMd CC&quot;" Included="true" Result="PASSED" ResultLR="NONE">
13+
<IdGuid>0af7ae65-4735-432e-98bd-dabad4763e96</IdGuid>
14+
</TestCaseSequence>
15+
</TestCasesSequences>
16+
</TestCase>
17+
<TestCase TestCaseId="3d7a13d2-d3bb-42ba-9450-d3aa2ed84245" ProjectItemId="d0409da4-715f-416a-9bde-1980e430c62c" Name="AssociationGrpInfoCmdClassV3_Rev0200_Orig" Included="true">
18+
<TestCasesSequences>
19+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
20+
<IdGuid>395911d7-6659-42a3-b080-d8e4b9aa0224</IdGuid>
21+
</TestCaseSequence>
22+
<TestCaseSequence Name="VerifyGroupNames" Description="&quot;Verify Association Group Names&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
23+
<IdGuid>99303646-b62c-41bf-89c3-920d62433d6b</IdGuid>
24+
</TestCaseSequence>
25+
<TestCaseSequence Name="VerifyGroupInfoListModeOff" Description="&quot;Verify Association Group Info with List Mode = 0&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
26+
<IdGuid>b516f155-13bc-4d04-b874-0b4c0afd3ddf</IdGuid>
27+
</TestCaseSequence>
28+
<TestCaseSequence Name="VerifyGroupInfoListModeOn" Description="&quot;Verify Association Group Info in List Mode&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
29+
<IdGuid>84f1f149-560d-4d83-a0ac-93fdc6b9de59</IdGuid>
30+
</TestCaseSequence>
31+
<TestCaseSequence Name="VerifyGroupCommandList" Description="&quot;Verify Association Group Command List&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
32+
<IdGuid>f5d94602-a91b-4924-bed7-d698a38287e7</IdGuid>
33+
</TestCaseSequence>
34+
</TestCasesSequences>
35+
</TestCase>
36+
<TestCase TestCaseId="8c7eb8aa-b2b2-4b1b-a9dd-5e06ce0b2020" ProjectItemId="6b51f831-786d-4ff0-adbd-2377cb4e7b7b" Name="BasicMappingNotAllowed_Rev0300_Orig" Included="true">
37+
<TestCasesSequences>
38+
<TestCaseSequence Name="CheckBasicCommandClassSupport" Description="&quot;Checks the support of Basic CC&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
39+
<IdGuid>c5209d9d-c745-4e82-90a1-729af7ec7c63</IdGuid>
40+
</TestCaseSequence>
41+
</TestCasesSequences>
42+
</TestCase>
43+
<TestCase TestCaseId="86a5d3b5-8451-4dc5-9bc2-b0fe5f4078f3" ProjectItemId="627e5eae-48b3-403f-927f-06bf65430844" Name="FirmwareUpdateMetaDataCmdClassV8_Rev0100_Orig" Included="true">
44+
<TestCasesSequences>
45+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
46+
<IdGuid>b40819e7-09bb-40e0-ba5a-01a84a711873</IdGuid>
47+
</TestCaseSequence>
48+
<TestCaseSequence Name="GetCurrentFirmwareData" Description="&quot;Report current firmware meta data&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
49+
<IdGuid>ed7ecf56-68d9-43e2-98ec-71c627689b12</IdGuid>
50+
</TestCaseSequence>
51+
<TestCaseSequence Name="InvalidTarget" Description="&quot;Check for correct behavior if invalid targets are addressed&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
52+
<IdGuid>29b31ef4-d078-4128-a075-b96a379bf207</IdGuid>
53+
</TestCaseSequence>
54+
<TestCaseSequence Name="InvalidID" Description="&quot;Check for correct behavior if invalid IDs are provided&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
55+
<IdGuid>2dd4ac92-0fcf-4c1d-a35b-73993caff2b9</IdGuid>
56+
</TestCaseSequence>
57+
<TestCaseSequence Name="InvalidFragmentSize" Description="&quot;Check for correct behavior if invalid Fragment Size is provided&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
58+
<IdGuid>9a241e36-b3a8-403d-916e-3d4c42cab96b</IdGuid>
59+
</TestCaseSequence>
60+
<TestCaseSequence Name="InvalidTarget0Upgrade" Description="&quot;Check behavior if target 0 is not upgradable&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
61+
<IdGuid>f88ab4b6-8f5f-4c58-bdf9-194ea8719878</IdGuid>
62+
</TestCaseSequence>
63+
<TestCaseSequence Name="AbortedFirmwareUpdate" Description="&quot;Check for correct behavior if transmission fails&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
64+
<IdGuid>cefb0ddc-8a8d-4215-995a-984e92245708</IdGuid>
65+
</TestCaseSequence>
66+
<TestCaseSequence Name="InvalidChecksumAndFragment" Description="&quot;Check for correct behavior if invalid checksum or fragment number is provided&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
67+
<IdGuid>35552331-3f1d-4789-860d-e0669f44deeb</IdGuid>
68+
</TestCaseSequence>
69+
<TestCaseSequence Name="InvalidFwChecksumAndResumingAnUpdate" Description="&quot;Verify behavior if firmware checksum is invalid and resuming a previously aborted update&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
70+
<IdGuid>7c02538d-0669-4f01-a2f2-fcf8f18ce148</IdGuid>
71+
</TestCaseSequence>
72+
<TestCaseSequence Name="FirmwareRetrieve" Description="&quot;Checks the firmware transfer process from node to controller&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
73+
<IdGuid>936b1e3a-7d78-48ac-8ee8-6cdf52a6cb2d</IdGuid>
74+
</TestCaseSequence>
75+
<TestCaseSequence Name="Interactive_NonSecureFirmwareUpdate" Description="&quot;Verify behavior in regards to a non-secure firmware update&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
76+
<IdGuid>2cfffffd-b151-49f5-9223-3cea3fa08ac4</IdGuid>
77+
</TestCaseSequence>
78+
</TestCasesSequences>
79+
</TestCase>
80+
<TestCase TestCaseId="d6eb05dc-f1b6-481a-8760-6f773e48b5e8" ProjectItemId="632eb371-220d-4102-ad41-4615ec6ca04b" Name="MultiCommandCmdClassV1_Rev0400_Orig" Included="true">
81+
<TestCasesSequences>
82+
<TestCaseSequence Name="MultipleEncapCommands" Description="&quot;Verifies returns the correct number of encapsulated responses&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
83+
<IdGuid>f07bc02d-bed8-455f-92b9-9166f21c46a8</IdGuid>
84+
</TestCaseSequence>
85+
<TestCaseSequence Name="ExceedingResponsePayload" Description="&quot;Verifies what happens if the responses do not fit in one Z-Wave message&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
86+
<IdGuid>1c5787c4-acd8-4a0d-b93d-12479c7dfbb5</IdGuid>
87+
</TestCaseSequence>
88+
</TestCasesSequences>
89+
</TestCase>
90+
<TestCase TestCaseId="f638dd0a-fc5e-496c-a008-04b91fcdc689" ProjectItemId="02ca148b-e8ed-4132-bfd4-3f315bdd62a8" Name="VersionCmdClassV3_Rev0900_Orig" Included="true">
91+
<TestCasesSequences>
92+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
93+
<IdGuid>df71f226-290b-4807-85a7-b46db1bf7c7d</IdGuid>
94+
</TestCaseSequence>
95+
<TestCaseSequence Name="VersionParameters" Description="&quot;Check Version Report parameters&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
96+
<IdGuid>8a4b4afc-4080-430b-88e4-2555a83994fa</IdGuid>
97+
</TestCaseSequence>
98+
<TestCaseSequence Name="CheckFirmwareData" Description="&quot;Check firmware meta data of Version CC and FirmwareUpdateMd CC&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
99+
<IdGuid>0af7ae65-4735-432e-98bd-dabad4763e96</IdGuid>
100+
</TestCaseSequence>
101+
</TestCasesSequences>
102+
</TestCase>
103+
<TestCase TestCaseId="dc0de554-188a-49dd-8b20-f8ad0b44d06a" ProjectItemId="a1f975c7-9a29-4bb0-89da-013c6682087e" Name="ZWavePlusInfoCmdClassV2_Rev0900_Orig" Included="true">
104+
<TestCasesSequences>
105+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
106+
<IdGuid>92712a72-8f26-45bd-bbe4-26d97dd8a86f</IdGuid>
107+
</TestCaseSequence>
108+
<TestCaseSequence Name="Interactive_ZWavePlusInfoReport" Description="&quot;Verifies general content of Z-Wave Plus Info Report&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
109+
<IdGuid>0d6a31e8-d764-4863-9ead-8f3c2291ef69</IdGuid>
110+
</TestCaseSequence>
111+
<TestCaseSequence Name="VerifyVersion" Description="&quot;Verify device is implementing at least version 2 of Z-Wave Plus Info Command Class&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
112+
<IdGuid>aabedd0c-6d96-4b75-96e2-986bcae0155f</IdGuid>
113+
</TestCaseSequence>
114+
<TestCaseSequence Name="GetEndPoints" Description="&quot;Gets number of End Points&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
115+
<IdGuid>932891ec-935b-4941-b382-63ef671cf52a</IdGuid>
116+
</TestCaseSequence>
117+
<TestCaseSequence Name="SupervisionHighestSecurityForDeviceResetLocally" Description="&quot;Supervision Status Codes at the Highest Security Level&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
118+
<IdGuid>65ba143a-d247-4c57-9905-5cc03c480eae</IdGuid>
119+
</TestCaseSequence>
120+
<TestCaseSequence Name="SupervisionAtLowerSecurityLevelForDeviceResetLocally" Description="&quot;Supervision Status Codes at Lower Security Level&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
121+
<IdGuid>276af0a6-a70b-4e00-9e34-536c7214daad</IdGuid>
122+
</TestCaseSequence>
123+
<TestCaseSequence Name="SupervisionHighestSecurityForBasic" Description="&quot;Supervision Status Codes at the Highest Security Level&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
124+
<IdGuid>b0ca70ae-5505-4d20-b04d-3c12ef539da8</IdGuid>
125+
</TestCaseSequence>
126+
<TestCaseSequence Name="SupervisionAtLowerSecurityForBasic" Description="&quot;Supervision Status Codes at Lower Security Level&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
127+
<IdGuid>2d7bfbc0-b5ed-4d02-bed4-0a477e0d5734</IdGuid>
128+
</TestCaseSequence>
129+
</TestCasesSequences>
130+
</TestCase>
131+
<TestCase TestCaseId="c92c8627-785b-4c0d-bcae-17ecd1f9aef4" ProjectItemId="f39eb132-1db6-4fa5-bf4f-d79ba09535be" Name="IndicatorCmdClassV4_Rev0601_Orig" Included="true">
132+
<TestCasesSequences>
133+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
134+
<IdGuid>58d7f4c2-bc02-4eaa-a4b6-efbe9a6efd45</IdGuid>
135+
</TestCaseSequence>
136+
<TestCaseSequence Name="SupportedIndicators" Description="&quot;Lists all supported indicators and their properties&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
137+
<IdGuid>04a73e74-ce9a-46e1-8056-db1177074cbc</IdGuid>
138+
</TestCaseSequence>
139+
<TestCaseSequence Name="InitialValues" Description="&quot;Lists the current values for each indicator&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
140+
<IdGuid>427cf698-25fb-4010-986a-4f83bc99daa1</IdGuid>
141+
</TestCaseSequence>
142+
<TestCaseSequence Name="IndividualValuesNodeIdentify" Description="&quot;Set individual values for properties 0x03, 0x04, 0x05 of Indicator ID 0x50 (Node Identify)&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
143+
<IdGuid>0665f887-84a5-498c-83ff-8de229bb73c7</IdGuid>
144+
</TestCaseSequence>
145+
</TestCasesSequences>
146+
</TestCase>
147+
<TestCase TestCaseId="c92c8627-785b-4c0d-bcae-17ecd1f9aef4" ProjectItemId="1bd532de-6ea3-45f1-a5c9-d42244610df5" Name="IndicatorCmdClassV4_Rev0601_Orig" Included="true">
148+
<TestCasesSequences>
149+
<TestCaseSequence Name="SetInitialValuesAndVariables" Description="&quot;Set initial Values and Variables.&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
150+
<IdGuid>58d7f4c2-bc02-4eaa-a4b6-efbe9a6efd45</IdGuid>
151+
</TestCaseSequence>
152+
<TestCaseSequence Name="SupportedIndicators" Description="&quot;Lists all supported indicators and their properties&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
153+
<IdGuid>04a73e74-ce9a-46e1-8056-db1177074cbc</IdGuid>
154+
</TestCaseSequence>
155+
<TestCaseSequence Name="InitialValues" Description="&quot;Lists the current values for each indicator&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
156+
<IdGuid>427cf698-25fb-4010-986a-4f83bc99daa1</IdGuid>
157+
</TestCaseSequence>
158+
<TestCaseSequence Name="IndividualValuesNodeIdentify" Description="&quot;Set individual values for properties 0x03, 0x04, 0x05 of Indicator ID 0x50 (Node Identify)&quot;" Included="true" Result="PENDING" ResultLR="PENDING">
159+
<IdGuid>0665f887-84a5-498c-83ff-8de229bb73c7</IdGuid>
160+
</TestCaseSequence>
161+
</TestCasesSequences>
162+
</TestCase>
163+
</TestCases>
164+
</TestCasePackage>

0 commit comments

Comments
 (0)