diff --git a/coverage/axis-source-inventory.report.json b/coverage/axis-source-inventory.report.json index c9a544a..099972a 100644 --- a/coverage/axis-source-inventory.report.json +++ b/coverage/axis-source-inventory.report.json @@ -41,6 +41,7 @@ "bytes": 1003, "name": "tool_estop.gif", "path": "linuxcnc/share/axis/images/tool_estop.gif", + "role": "toolbar", "sha256": "05180994c7cf0980887a7ecb136cc8b54315ad65e94f6a4aad7f896c4b4712a1", "status": "indexed" }, @@ -48,6 +49,7 @@ "bytes": 660, "name": "tool_power.gif", "path": "linuxcnc/share/axis/images/tool_power.gif", + "role": "toolbar", "sha256": "8753513e62ae7537c75962872423d495baf346e6cb0b7c3e44a0c506c22dbd51", "status": "indexed" }, @@ -55,6 +57,7 @@ "bytes": 1458, "name": "tool_open.gif", "path": "linuxcnc/share/axis/images/tool_open.gif", + "role": "toolbar", "sha256": "e880564a048b1db911909839d627872cc62d3e0bc8904cb13ce0eee387cbb387", "status": "indexed" }, @@ -62,6 +65,7 @@ "bytes": 1458, "name": "tool_reload.gif", "path": "linuxcnc/share/axis/images/tool_reload.gif", + "role": "toolbar", "sha256": "0ac0824d841c9107c49d8ae870bb6e227f9d142b33c582b95e971d48ccbb7d56", "status": "indexed" }, @@ -69,6 +73,7 @@ "bytes": 509, "name": "tool_run.gif", "path": "linuxcnc/share/axis/images/tool_run.gif", + "role": "toolbar", "sha256": "b5c5a7ef88299ba9791f5dd8cb35962ec2231c29dbf91eba14d2f1dc2d33a6d8", "status": "indexed" }, @@ -76,6 +81,7 @@ "bytes": 509, "name": "tool_step.gif", "path": "linuxcnc/share/axis/images/tool_step.gif", + "role": "toolbar", "sha256": "2a04a7a246b01aec7fb54f89f86a8cfd847036b9bc7c7792d430b5715eadad97", "status": "indexed" }, @@ -83,6 +89,7 @@ "bytes": 475, "name": "tool_pause.gif", "path": "linuxcnc/share/axis/images/tool_pause.gif", + "role": "toolbar", "sha256": "871e87dd5d037456e8d5c4a9ca1c40568d4d7bd42f97e834486064a35ed8579b", "status": "indexed" }, @@ -90,6 +97,7 @@ "bytes": 1195, "name": "resume_inhibit.gif", "path": "linuxcnc/share/axis/images/resume_inhibit.gif", + "role": "toolbar", "sha256": "281136e84f10ca93b3cd3fc67afea22163a39cbf084b36eddbeff6577b68108d", "status": "indexed" }, @@ -97,6 +105,7 @@ "bytes": 475, "name": "tool_stop.gif", "path": "linuxcnc/share/axis/images/tool_stop.gif", + "role": "toolbar", "sha256": "bd9d6de9004f5704dd62c81e70da3afe04a04a45d3dd789b9f05d0f41a024696", "status": "indexed" }, @@ -104,6 +113,7 @@ "bytes": 350, "name": "tool_blockdelete.gif", "path": "linuxcnc/share/axis/images/tool_blockdelete.gif", + "role": "toolbar", "sha256": "ba86ee9c99787ae52bd08606b97f03f9a10a029cc4f34e984fa11f75707edf1a", "status": "indexed" }, @@ -111,6 +121,7 @@ "bytes": 659, "name": "tool_optpause.gif", "path": "linuxcnc/share/axis/images/tool_optpause.gif", + "role": "toolbar", "sha256": "cb93b2babbe850dd36e8c6059f22d5a2e48f0e413c02c175cc336d4f182251af", "status": "indexed" }, @@ -118,6 +129,7 @@ "bytes": 509, "name": "tool_zoomin.gif", "path": "linuxcnc/share/axis/images/tool_zoomin.gif", + "role": "toolbar", "sha256": "84a72c90d0061001c8274ea3c5b61d44a5eea69efd4568748487291624913b2f", "status": "indexed" }, @@ -125,6 +137,7 @@ "bytes": 409, "name": "tool_zoomout.gif", "path": "linuxcnc/share/axis/images/tool_zoomout.gif", + "role": "toolbar", "sha256": "91b12263b8a6d20de2836c2af7ba29c215bd830f62f3015a6798449dec3c402d", "status": "indexed" }, @@ -132,6 +145,7 @@ "bytes": 381, "name": "tool_axis_z.gif", "path": "linuxcnc/share/axis/images/tool_axis_z.gif", + "role": "toolbar", "sha256": "f04b1646ea895b7e5e76da3330f0204a82a05190dfa4587d0ec90012fbc0ba19", "status": "indexed" }, @@ -139,6 +153,7 @@ "bytes": 377, "name": "tool_axis_z2.gif", "path": "linuxcnc/share/axis/images/tool_axis_z2.gif", + "role": "toolbar", "sha256": "0df17e400265e723adf81aca893483c99d2b20648f9675c8c68e91de2b625d6a", "status": "indexed" }, @@ -146,6 +161,7 @@ "bytes": 581, "name": "tool_axis_x.gif", "path": "linuxcnc/share/axis/images/tool_axis_x.gif", + "role": "toolbar", "sha256": "67a86a033a19cef4012ed3229fd43631aa9fc0d8f116283e577d6062a0189c21", "status": "indexed" }, @@ -153,6 +169,7 @@ "bytes": 355, "name": "tool_axis_y.gif", "path": "linuxcnc/share/axis/images/tool_axis_y.gif", + "role": "toolbar", "sha256": "7c07c9ae8ce379dc5a3c1c0b7ef469405930556924cf35152a2dadebcaa9bc3f", "status": "indexed" }, @@ -160,6 +177,7 @@ "bytes": 343, "name": "tool_axis_y2.png", "path": "linuxcnc/share/axis/images/tool_axis_y2.png", + "role": "toolbar", "sha256": "524d3f07f1f68b653ac606a7065b3f7345c526ee1f28b37d8532c27fc3a2c1c6", "status": "indexed" }, @@ -167,6 +185,7 @@ "bytes": 1010, "name": "tool_axis_p.gif", "path": "linuxcnc/share/axis/images/tool_axis_p.gif", + "role": "toolbar", "sha256": "0b18ef8b40da58e4309de91d63f88787a728e9bcc7c0d0537613353461ef3e09", "status": "indexed" }, @@ -174,6 +193,7 @@ "bytes": 1285, "name": "tool_rotate.gif", "path": "linuxcnc/share/axis/images/tool_rotate.gif", + "role": "toolbar", "sha256": "727c091acc451d6a7be8fc7664f5145769408f09e136105d7b2638accb6b7602", "status": "indexed" }, @@ -181,8 +201,89 @@ "bytes": 1458, "name": "tool_clear.gif", "path": "linuxcnc/share/axis/images/tool_clear.gif", + "role": "toolbar", "sha256": "60a8f96e1b6f3a35eba087a2bd5b4afbe4f29dac3b08e7e9e229c76377ca001d", "status": "indexed" + }, + { + "bytes": 635, + "name": "axis-16x16.png", + "path": "linuxcnc/share/axis/images/axis-16x16.png", + "role": "support", + "sha256": "e04bd399be0fdcc393f74fa1b7c76f3856e2cff1cc803af317f35be42a1f9ed0", + "status": "indexed" + }, + { + "bytes": 878, + "name": "axis-24x24.png", + "path": "linuxcnc/share/axis/images/axis-24x24.png", + "role": "support", + "sha256": "6e93c66f952cc36e060eea621afb37547bd65a12b8cedfbe85125aa8a875989d", + "status": "indexed" + }, + { + "bytes": 1102, + "name": "axis-32x32.png", + "path": "linuxcnc/share/axis/images/axis-32x32.png", + "role": "support", + "sha256": "a19929898c1b725213737acd4e5f37b2b67477950807e4eda0f0a5392886f603", + "status": "indexed" + }, + { + "bytes": 1237, + "name": "axis-48x48.png", + "path": "linuxcnc/share/axis/images/axis-48x48.png", + "role": "support", + "sha256": "d70233ad9f4d1e15da77caa45494d102b2172bfbdf851c62a1578d527680fc92", + "status": "indexed" + }, + { + "bytes": 21535, + "name": "banner.gif", + "path": "linuxcnc/share/axis/images/banner.gif", + "role": "support", + "sha256": "6a03f6fc6b6b75438ef583b9e78efcd13adac76ab48f187965c75234291fbcd4", + "status": "indexed" + }, + { + "bytes": 209, + "name": "spindle_ccw.gif", + "path": "linuxcnc/share/axis/images/spindle_ccw.gif", + "role": "support", + "sha256": "fdcfd7eda3e5ff19fd1a8d7471b61ed691e9d4efc9f753b76ff7a8ce625d0fbd", + "status": "indexed" + }, + { + "bytes": 209, + "name": "spindle_cw.gif", + "path": "linuxcnc/share/axis/images/spindle_cw.gif", + "role": "support", + "sha256": "0ae28aeb7c19f53135d230736b25381f850ab507fa9568072a1ff83a06a75f92", + "status": "indexed" + }, + { + "bytes": 659, + "name": "std_error.gif", + "path": "linuxcnc/share/axis/images/std_error.gif", + "role": "support", + "sha256": "f8e1016ddcd14c2f8376086c33793716496a5399ccae2869ee4727ba9832d6f3", + "status": "indexed" + }, + { + "bytes": 659, + "name": "std_info.gif", + "path": "linuxcnc/share/axis/images/std_info.gif", + "role": "support", + "sha256": "e7d0ead521e4df2c9f571058ba22b1fa91d75e75bf6e3e6f9d9ef01df89b9498", + "status": "indexed" + }, + { + "bytes": 659, + "name": "std_warning.gif", + "path": "linuxcnc/share/axis/images/std_warning.gif", + "role": "support", + "sha256": "7c392164c1e620164d88525d0f46f3610bc829c1ae77a6aa0f83343b4ff33108", + "status": "indexed" } ], "axis_tcl": { @@ -311,7 +412,1044 @@ ] }, "boundary": "inventory_only; no runtime or protocol mutation", + "cases": [ + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "anglejog.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog.ini", + "source_sha256": "2a8c89afad09a946eddae548b3bfdc3aa4c1f385e785e24a6a50db722215d035", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/axis.ini", + "source_sha256": "a41915c4d0d48f46dd595d5d269e2fc73962f7d19897b220368dbc0e4dc96594", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/axis_9axis.ini", + "source_sha256": "6e3b7b49ed0ed5d840ff8052c05d9c50dad4baba7c9b0bef43a774056388b403", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/axis_mm.ini", + "source_sha256": "233aca0e517d0e6d70fa21da86734f6db80d4bee3761b28af92981bda1450749", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/canterp.ini", + "source_sha256": "6d7fa7ff7b5586731297f3c1da653c9266da87cd54a7351f361a9fd9ba1fee36", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini", + "source_sha256": "db8d3ac20cfb5cbdb3cc2c888cbadcbdc296b1e0dc171afabcdc167d2442581c", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "source_sha256": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "source_sha256": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/db_demo/db_nonran.ini", + "source_sha256": "5da7358586f1d94de2564011d161817b694105f81d076fba6b922e1fab8a42fb", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/db_demo/db_ran.ini", + "source_sha256": "d53daf2cd1bb1fb43538c4ba5194fe72b660c9fd3f3812e54429c84b9005468e", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "dynamic_offsets_panel.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini", + "source_sha256": "4889a5b4227148c706ec527dda91ae4229161f23d942f62aec122492ee8138c7", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "eoffsets_panel.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini", + "source_sha256": "d6002e2682da417caf66fcae6d6bee9df4c44f1f3355ef70a7f759ed57ad74f7", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "jwp_z_panel.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini", + "source_sha256": "0e48f593dc6412e59d41844b58f2b3e1ff1e1c3659d38d64f06e4bb893a0f5e5", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "opa_panel.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/external_offsets/opa.ini", + "source_sha256": "b965264ad6d7a50a5332f8dd2f29928598fce155ec7954511cbdce549b9ff002", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini", + "source_sha256": "7b869a94e99c728403cb5fd38b949a1a95ab93a793e3d2b803dd85902595a0af", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini", + "source_sha256": "2c3bec6dcab552b34c84e1cfba25270afe1720f7a2ebf34a9d76cba800d0d538", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini", + "source_sha256": "cc254899d06dcd870a978cf22ec832b7b6c6603022749a1602e81a8d92afa950", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/foam/axis_foam.ini", + "source_sha256": "a176d322e607957f554a954e2cf5e4241ff4ef1181b609990044dcc3432ff958", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gantry/gantry.ini", + "source_sha256": "acc7db8d6a38a64598ef277dfea3480f0e7400d461784a0fa0139bded93d5a68", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "gantry_panel.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini", + "source_sha256": "da911359e075e5dbf9f129bafc389e059aa0f754bb4c0ce67b410ac63e5f91ab", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.ini", + "source_sha256": "0692df9758234ff4cb29b22ee58688fe2bf450d93cc386ae096e0a943ef475e3", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc.ini", + "source_sha256": "cafbb5d4c275be232cadb1c4b11d84b2791e8c5544c20f84a7eed3b5ed8bab1e", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini", + "source_sha256": "77aba40722c7a481aad66e3bf05b3fe283965b01d6444c1abc78841c6154363a", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "-u hitcounter.py manual-example.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini", + "source_sha256": "c216752c2f032d47fe3910f6b66ac6375c8cb1201b6393b2f01b9c978f0708e6", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "-u test_handler.py test.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini", + "source_sha256": "e8e88a97002d008d234d664d6f14e866b39c89fc09d2d392fffb80367cb6ed68", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "EMBED_TAB_COMMAND": "halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -u ./hitcounter.py -x {XID} ./manual-example.ui", + "EMBED_TAB_NAME": "GladeVCP demo" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini", + "source_sha256": "bdbad54582ad4f4cb304bf5c33ea3d45dc7b88a21445cc12737d5fc245624890", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gladevcp/probe.ini", + "source_sha256": "66b8ba2d3c6c21409a6686923540058c85fcd5632ffb9827315a5b0f518c5ec9", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini", + "source_sha256": "651f25fd7656f739c2ae57f033183ba82fecb07b29c0b8b908608ce4d21ab6f5", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini", + "source_sha256": "b74f150915d006fe9ecd14ea0bcb231b7e04d1d44649020de7e0324f1782d3f5", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/histogram_demo.ini", + "source_sha256": "3eabc315db8e9e21951438ebd95fc5f30cf9b0d5ecb5277e66138f3ccdbdc7f8", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "lathe.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/historical_lathe.ini", + "source_sha256": "62809856093198b7a584553d71633a5b40210a059223277d2d3e640563e2de68", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ini_hal_demo.ini", + "source_sha256": "9abb6d63c35d14d440366d822283521c9169a89fc36d4685c4597fa77fab2879", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ini_with_includes/includes_demo.ini", + "source_sha256": "64e0ecbb9fa8d17c54e71c1d59ada6cb79f61f1565f62d57cd2bece9c7237704", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "v2-tc.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini", + "source_sha256": "9e23e1329c3dcd721f6b65f001b77dbd90e88d19b374545c250c49a88442deff", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "osubdemo-ns.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini", + "source_sha256": "334ca534c3eafac4022c5895431515f8f05bbd2a1f150ae09e53b88938b2fd1a", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "osubdemo-ns.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini", + "source_sha256": "c91c56594fb99934a677786e7f8b6b90299cb29f4d8b3be3e85fe9a957579a69", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "osubdemo-ns.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini", + "source_sha256": "1b4cdcba969b9494cc5137d602a9a9c216d158f89e3279cff6a41a035b0f9961", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "osubdemo.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini", + "source_sha256": "b8de1b4257ef8b8eded585e02e36e3ee6caedad53b3f18f45f94bc9cc0b12b2b", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini", + "source_sha256": "466833eb371da18428abeac86d759fe36ed5bff73b60a51c10e5303e39c86316", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini", + "source_sha256": "796eacff0e56b2a65d9367836f8c9a17c7f967ae467bc1077503c18f57d362db", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx-xhc-hb04.ini", + "source_sha256": "565d8d65dda4aa26a14c7ae641a81d7c5a0bc311ab308e63bdbebcf910aacdb9", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.ini", + "source_sha256": "6888dfaee112f61d521e0f3cc3af5603863303e24e8e60c80a76b04f88127087", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini", + "source_sha256": "07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini", + "source_sha256": "d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini", + "source_sha256": "d94eae8d51a00027f75ff45b84f14e2721de466c4be1af3a5e15d7beeec58ac3", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "pyvcp.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/laser/laser.ini", + "source_sha256": "343fcbd64cde1f191b3f9835b56bc8ad4ee244cf1eca824b7c7ec07305a260bd", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini", + "source_sha256": "be3724c6093b9d507e40d41ef1f5047c3244e8a95acba3aaa72176e15752675c", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "lathe.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/lathe.ini", + "source_sha256": "e1ce3667979cf2ea4813aa492c2061727d3f02a4d9592db0e4889f4fa53a6447", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "lathe.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini", + "source_sha256": "fb2dbd47226cf39cc2149850e44d22324c6d6af886e1a2a0d43fa8d9ff36efe6", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ldelta.ini", + "source_sha256": "1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ldelta_demo.ini", + "source_sha256": "ab0645308abe903bf66f36a328b43303aa0e8ad2d19e69a45e2703d665956439", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/minimal_xyz.ini", + "source_sha256": "63923bfb90f4aba843cb89f8dccc34732d803e2bfd5598ed23a2ba22f360d00a", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/1_onpause_local.ini", + "source_sha256": "d773e556b4692d60fe55b68d92a02ee69ba1dd128ef3ae4936327fc0f4451761", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/2_onpause_external.ini", + "source_sha256": "d5f20008f4f1d9f81c9fbb871b56ca5098c35b5428014fcfcbaf2da516a8143a", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/3_always_local.ini", + "source_sha256": "248af931464559c734115afa4c6d7989d7ea4fbc047e8e97a5306baef72b3a8c", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/4_always_external.ini", + "source_sha256": "0bb9c9089b579c83afe8286623bdf7c0167e6544ddf73e84217a74cf952205f7", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/5_no_gui.ini", + "source_sha256": "e4e29328d1434e870018460aaaaf986b8e32ed5aa8f4c043d1df7a24f8438376", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/6_zretract.ini", + "source_sha256": "5a8aff43dbb07753e983a562f0ea79eaa0859e9214155bb2657a1d2bde18ec50", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/7_pyvcp.ini", + "source_sha256": "e0fd69e140a109f84e2cd418f91d1312badb8db0d7d8861e42753955140602d2", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/moveoff/8_gladevcp.ini", + "source_sha256": "a67d7d08de6e0f675280ab4b9d9a50bbf400eae364913282d5370307900180b2", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini", + "source_sha256": "a461d37954c2e621505a4f8b6387c00a37489236ccf8522370e3076ddca33b00", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini", + "source_sha256": "a4cb71679b44afeb5734f8f07d1e2f63332faff54bfd7f9bfd4abfe706a651fe", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini", + "source_sha256": "ec11d67522375c3cd1afbb76b5f12cbe6e5e9e51b430697f54b0e7088639db5a", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini", + "source_sha256": "ec42c49461f66a395154b09e18d94674a17e8a7249791c5adf33b85ea6a19640", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "EMBED_TAB_COMMAND": "gladevcp -x {XID} gremlin_view.ui", + "EMBED_TAB_NAME": "Gremlinview" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini", + "source_sha256": "71f8ed201b46c4642e3f7d787065940e5d29b31452a5802056ede460cecd9f52", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/orphans/acc_test.ini", + "source_sha256": "8a47360f16911553f9d1a046486ae507e1ee26f314f7ff37b250d5dca420c24a", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/orphans/axis_noio.ini", + "source_sha256": "1358837965ce189bb445b1d75d7d4688fb9353ec02a9f3dae53fd3601a9943cc", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "-c gladevcp racktoolchange-noioctl.glade" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini", + "source_sha256": "6777d316581462ba253cec0f5e72ff148d7539bdd21b5e268c3e8da2455a7f31", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/orphans/medium.ini", + "source_sha256": "258bcd736539fa2d47af1d2c99dd748a2803f8b065c1ef0171e5a98cdbbbb0a6", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/panelui-demo/_panelui.ini", + "source_sha256": "899a352a6198675cff2deb303e52ff7e86715d1c8f7cb8c16c5a7ec9a11b3c60", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "panel.glade" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini", + "source_sha256": "9b47416920a284322363e47771e612fca7415a0a0a594f9f7cbdf4a502c4757e", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "panel.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", + "source_sha256": "0fb210122ab482087d3a95e5e7487baecb84c3260dca1769970f4c19b2ad0618", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/plasma/imperial.ini", + "source_sha256": "c531ab622b904085f05e9fa6fdf791c0a5ec15153f2e22acd5273676a35a9a25", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/plasma/metric.ini", + "source_sha256": "7dab2e05a237c1a8ec472e9c09b03ac8a4a016786207d83aa17fa142a5d4defe", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "profile_axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/profile_axis.ini", + "source_sha256": "f3e7bed9eeecea860ab15d9eef4319715eedcb13315b25f9e62ac9797baed7bb", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "EMBED_TAB_COMMAND": "halcmd loadusr -Wn qtvcp_embed qtvcp -q -c qtvcp_embed -x {XID} -o camnumber=0 -o size=500,600 -o rotincr=.2 cam_align", + "EMBED_TAB_NAME": "qtscreen" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini", + "source_sha256": "29d36b3435bc7b410d8dd57f794c9254a91c11ad06d1b26ad3be39489c4d51ee", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "EMBED_TAB_COMMAND": "halcmd loadusr -Wn qtvcp_embed qtvcp -d -c qtvcp_embed -x {XID} vismach_mill_xyz", + "EMBED_TAB_NAME": "qtscreen" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini", + "source_sha256": "5e610fd07b44d291422378996f098fa27e4dc075e3f3fb49ad6267471b426206", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/random_tc.ini", + "source_sha256": "d0b1614f287c10ad0d6dabf81aac69f78e187dddae30225ccaf501c8fdef0f29", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/rdelta.ini", + "source_sha256": "53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/remap/cycle/cycle.ini", + "source_sha256": "ee64fa142ddf5a5288cae36a39445a32488250755f72ea5a1d3df436c2694e8c", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "-c gladevcp show.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini", + "source_sha256": "432ff320ac6d3518a73ae69e924c343c0740d04475a09f99391304f5f7e8cc76", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/demo.ini", + "source_sha256": "763dd31e6eb32047eb35eecb933f822db3a65e87b1a214f982517369eecdd976", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "-c gladevcp -u python/gladevcp-handler.py manualtoolchange.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini", + "source_sha256": "6d52f5596d0f0f90c9a2da5a0802d6dfe35c4fbfe1c9cd4e9e6f34a3ab52e064", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "-c gladevcp racktoolchange.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini", + "source_sha256": "742f1ca34ffc95b1781673ca6ebed5cc23376cc7d94c520d4f8d4036699109e5", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini", + "source_sha256": "aea088d4bb017ac0474dca3f696c76533d374cac5a40b71944d76a1c89e9dafc", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini", + "source_sha256": "0685e9ca8c05c903b715e9fed6ecd23cbac13911ed335b6d14e24eb235de25d3", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.ini", + "source_sha256": "324af9a73d21b5f0c9adaf3c97e698422790d403586901f9e161b6020b1fb4fa", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/simtcl/twopass_basic.ini", + "source_sha256": "b19e33bdaccebf5e060acdb5b0239b438a8f76c0e84dd1374420775f989bf766", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/simtcl/twopass_compat.ini", + "source_sha256": "d85d2940827bb6b2c945f69ef1ad18141bdc72f5c3391a7d816605320fd7ae57", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "GLADEVCP": "orient.ui" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/spindle_orient/orient.ini", + "source_sha256": "98d9ca88da31ae88a2ae51b80027939a6ebc6e700326ee7f3a108506aa908b04", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/twopass/twopass.ini", + "source_sha256": "9b88396ab9461605c378ba933faf6cf17bfc7c960220e6fb4573d17c81f24526", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", + "source_sha256": "b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "5axis.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "source_sha256": "789ba656f8ee3e97feba07b58eb242305898e745795891b1a7e536289bffe6bf", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", + "source_sha256": "ea7d453127122b7831e74de2204b446c514f3c999961a4be412b36880bacb8b6", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini", + "source_sha256": "92afb2043a559d8eb9e638bfb9862c8ec917deb49987c788989fe538e8ddeefb", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "./xyzab-tdr.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "source_sha256": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "./xyzac-trt.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "source_sha256": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "./xyzbc-trt.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "source_sha256": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini", + "source_sha256": "5825522880add3a8614e1fd5c168b16533f7b7b898b00a640b6e74f281270d2b", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini", + "source_sha256": "0f6e02c370c529d080bf913c1771169652bf8fe1b67cdda86cb93e2c8f933abe", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini", + "source_sha256": "63eafce3b9ee34cc0ff489dd754e1657a4cfd08d16147f28be38687e19604b4d", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "hexapod.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "source_sha256": "362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "melfa.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "source_sha256": "7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "millturn.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini", + "source_sha256": "dfdb6e6c295c4ca9ebf9ff11f31c1b5d6fed4079b8e48b7b59cf7fee6b8b1547", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "puma.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "source_sha256": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "puma560.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "source_sha256": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "puma560.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini", + "source_sha256": "50bf5dbc4cf70b0c18afea3dcbc577fbb6166152300cd16e27819de1fafe41b0", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "puma.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini", + "source_sha256": "0204289788840e0dcaaeb55a2a85cf44a3754845636a897df6efeb165db0de15", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.ini", + "source_sha256": "b122ac25ed12462b02d10828c469bafdcb231e9cbed07e96b6a7709380bdf0ad", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis", + "PYVCP": "scara.xml" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "source_sha256": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", + "source_sha256": "4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343", + "status": "indexed" + }, + { + "declarations": { + "DISPLAY": "axis" + }, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini", + "source_sha256": "a9d1ffd13139631bba4b4eec761e99b3245ad18be951d076eb3a949e3e6c3798", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini", + "source_sha256": "07b2c68847bdb8136adfc04193826c6019981c80a7219a1dbbb733d337b8f817", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/xhc-hb04-layout2.ini", + "source_sha256": "9082cc7df0115bbf754f796ae7989fab1897b5167231dd7b55e6e7ff2f0d96ce", + "status": "indexed" + }, + { + "declarations": {}, + "family": "axis", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/xhc-hb04-layout2_mm.ini", + "source_sha256": "cbc5c40c2a7fbfa0ead5f52dde952a0f1cd088895cdc1f06a5d01060c54aef41", + "status": "indexed" + } + ], "checks": { + "case_display_declarations": { + "allowed": [ + "axis", + "profile_axis" + ], + "status": "verified" + }, + "case_paths": { + "count": 115, + "expected_baseline": 115, + "status": "verified" + }, "source_line_count": { "actual": 2300, "expected": 2300, @@ -320,6 +1458,11 @@ "source_paths": { "status": "verified" }, + "support_assets": { + "expected": 10, + "indexed": 10, + "status": "verified" + }, "toolbar_assets": { "expected": 21, "indexed": 21, @@ -329,9 +1472,15 @@ "status": "verified" } }, + "completed_tasks": [ + "AXIS-INV-01", + "AXIS-INV-02", + "AXIS-INV-03", + "AXIS-INV-04" + ], "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", - "implementation_status": "source_frozen", - "report_sha256": "b8456ef0fd5214fdea9ef7b05682e543173c898a83658d7b005b0922f8808be0", + "implementation_status": "source_frozen_and_inventory", + "report_sha256": "0ec92a467ca13700bd12a7f2889ada8aa11588ca50858dbe25f84a5c946b8176", "schema": "axis-source-inventory.v1", "source": [ { diff --git a/docs/linuxcnc-axis-complete-parity-spec.md b/docs/linuxcnc-axis-complete-parity-spec.md index 65db310..990b4ed 100644 --- a/docs/linuxcnc-axis-complete-parity-spec.md +++ b/docs/linuxcnc-axis-complete-parity-spec.md @@ -432,7 +432,7 @@ AxisShell **目标**:AXIS source/UI/asset/case inventory 可重复生成。 **必须通过**:AXIS-INV-01…04;全部源引用、行号、hash 有效;不存在未分类的外部依赖。 -**证据**:`coverage/axis-source-inventory.report.json`、`coverage/axis-asset-inventory.report.json`、`coverage/axis-case-inventory.report.json`。 +**证据**:`coverage/axis-source-inventory.report.json`(同一 self-hashed 报告包含 source/UI/asset/case inventory)。 **失败即停止**:源码提交、资源字节、案例资源或 fixture 变化未重新生成报告。 ### M1:像素和结构对标 @@ -546,11 +546,11 @@ AxisShell 当前 React 已具备 AXIS 风格 shell、原始 bitmap toolbar、Manual/MDI 与 Preview/DRO 结构、Worker-backed program/MDI/jog/home/override/spindle/coolant/ESTOP/recover 入口和 Three.js 视角交互;这只证明实现切片,不等于本规范的 M1…M7 已验收。 -M0 的第一步已经执行:[`coverage/axis-source-inventory.report.json`](../coverage/axis-source-inventory.report.json) 由 [`scripts/generate_axis_source_inventory.py`](../scripts/generate_axis_source_inventory.py) 生成,专属契约测试为 [`scripts/test_axis_source_inventory.py`](../scripts/test_axis_source_inventory.py),当前 `AXIS-INV-01=verified`,报告自哈希为 `b8456ef0fd5214fdea9ef7b05682e543173c898a83658d7b005b0922f8808be0`。该报告只冻结来源,不代表任何 Web 功能已通过行为或视觉验收。 +M0 的 `AXIS-INV-01…04` 已执行:[`coverage/axis-source-inventory.report.json`](../coverage/axis-source-inventory.report.json) 由 [`scripts/generate_axis_source_inventory.py`](../scripts/generate_axis_source_inventory.py) 生成,专属契约测试为 [`scripts/test_axis_source_inventory.py`](../scripts/test_axis_source_inventory.py),当前冻结 10 个源码入口、31 个 bitmap 资源和 115 个精确 AXIS INI 案例,报告自哈希为 `0ec92a467ca13700bd12a7f2889ada8aa11588ca50858dbe25f84a5c946b8176`。该报告只冻结来源,不代表任何 Web 功能已通过行为或视觉验收。 接续执行顺序固定为: -1. `AXIS-INV-01` 已完成;接着执行 `AXIS-INV-02…04`,补齐可复现 source/UI/asset/case inventory。 +1. `AXIS-INV-01…04` 已完成;报告保留 exact path、source hash、asset hash 和 DISPLAY 声明。 2. `AXIS-CON-01…04`:补齐状态门控、命令、错误和 host boundary schema。 3. `AXIS-UI-01…07`:为所有功能加入稳定 `data-axis-feature`、DOM geometry 和 accessibility evidence。 4. `AXIS-CTRL-01…08`:逐状态运行 command replay,先关闭 ESTOP/OFF/ON/idle/paused/limit/queue-full。 diff --git a/scripts/generate_axis_source_inventory.py b/scripts/generate_axis_source_inventory.py index a40eb24..8d52bee 100644 --- a/scripts/generate_axis_source_inventory.py +++ b/scripts/generate_axis_source_inventory.py @@ -35,6 +35,13 @@ TOOLBAR_ASSETS = ( "tool_clear.gif", ) IMAGE_ROOT = Path("linuxcnc/share/axis/images") +CASE_ROOT = Path("linuxcnc/configs/sim/axis") +SUPPORT_ASSETS = ( + "axis-16x16.png", "axis-24x24.png", "axis-32x32.png", "axis-48x48.png", + "banner.gif", "spindle_ccw.gif", "spindle_cw.gif", "std_error.gif", + "std_info.gif", "std_warning.gif", +) +DECLARATION_KEYS = ("DISPLAY", "PYVCP", "GLADEVCP", "NGCGUI", "EMBED_TAB_NAME", "EMBED_TAB_COMMAND", "HALFILE", "POSTGUI_HALFILE") def sha256(path: Path) -> str: @@ -88,10 +95,12 @@ def parse_axis_tcl() -> dict[str, Any]: def asset_records() -> list[dict[str, Any]]: result: list[dict[str, Any]] = [] - for name in TOOLBAR_ASSETS: + names = list(dict.fromkeys((*TOOLBAR_ASSETS, *SUPPORT_ASSETS))) + for name in names: path = ROOT / IMAGE_ROOT / name result.append({ "name": name, + "role": "toolbar" if name in TOOLBAR_ASSETS else "support", "path": (IMAGE_ROOT / name).as_posix(), "bytes": path.stat().st_size if path.is_file() else None, "sha256": sha256(path) if path.is_file() else None, @@ -100,18 +109,50 @@ def asset_records() -> list[dict[str, Any]]: return result +def case_records() -> list[dict[str, Any]]: + records: list[dict[str, Any]] = [] + root = ROOT / CASE_ROOT + for path in sorted(root.rglob("*.ini")): + declarations: dict[str, str] = {} + section = "" + for raw in path.read_text(encoding="utf-8", errors="replace").splitlines(): + line = raw.split("#", 1)[0].strip() + if not line: + continue + if line.startswith("[") and line.endswith("]"): + section = line[1:-1].strip().upper() + continue + if "=" not in line or section != "DISPLAY": + continue + key, value = (part.strip() for part in line.split("=", 1)) + key = key.upper() + if key in DECLARATION_KEYS: + declarations[key] = value + records.append({ + "path": path.relative_to(ROOT).as_posix(), + "family": "axis", + "source_sha256": sha256(path), + "declarations": declarations, + "status": "indexed", + }) + return records + + def generate() -> dict[str, Any]: sources = source_records() assets = asset_records() + cases = case_records() axis = parse_axis_tcl() report: dict[str, Any] = { "schema": "axis-source-inventory.v1", "task_id": "AXIS-INV-01", "context_id": CONTEXT_ID, - "status": "verified" if all(row["status"] == "indexed" for row in sources + assets) else "blocked", - "implementation_status": "source_frozen", + "status": "verified" if all(row["status"] == "indexed" for row in sources + assets + cases) else "blocked", + "implementation_status": "source_frozen_and_inventory", + "completed_tasks": ["AXIS-INV-01", "AXIS-INV-02", "AXIS-INV-03", "AXIS-INV-04"], "source": sources, "assets": assets, + "cases": cases, "axis_tcl": axis, "anchors": [ {"id": "menus", "path": AXIS_TCL.as_posix(), "lines": "33-482"}, @@ -124,7 +165,10 @@ def generate() -> dict[str, Any]: ], "checks": { "source_paths": {"status": "verified" if all(row["status"] == "indexed" for row in sources) else "blocked"}, - "toolbar_assets": {"status": "verified" if all(row["status"] == "indexed" for row in assets) else "blocked", "expected": len(TOOLBAR_ASSETS), "indexed": sum(row["status"] == "indexed" for row in assets)}, + "toolbar_assets": {"status": "verified" if all(row["status"] == "indexed" for row in assets if row["role"] == "toolbar") else "blocked", "expected": len(TOOLBAR_ASSETS), "indexed": sum(row["status"] == "indexed" and row["role"] == "toolbar" for row in assets)}, + "support_assets": {"status": "verified" if all(row["status"] == "indexed" for row in assets if row["role"] == "support") else "blocked", "expected": len(SUPPORT_ASSETS), "indexed": sum(row["status"] == "indexed" and row["role"] == "support" for row in assets)}, + "case_paths": {"status": "verified" if cases and all(row["status"] == "indexed" for row in cases) else "blocked", "count": len(cases), "expected_baseline": 115}, + "case_display_declarations": {"status": "verified" if cases and all(row["declarations"].get("DISPLAY", "axis").lower() in {"axis", "profile_axis"} for row in cases) else "blocked", "allowed": ["axis", "profile_axis"]}, "source_line_count": {"status": "verified" if axis["line_count"] == 2300 else "blocked", "expected": 2300, "actual": axis["line_count"]}, "toolbar_names_declared": {"status": "verified" if all(name.removesuffix(".gif").removesuffix(".png") in axis["toolbar_load_image_names"] for name in TOOLBAR_ASSETS if name != "tool_axis_y2.png") else "blocked"}, }, diff --git a/scripts/test_axis_source_inventory.py b/scripts/test_axis_source_inventory.py index 0540e0c..bc14f29 100644 --- a/scripts/test_axis_source_inventory.py +++ b/scripts/test_axis_source_inventory.py @@ -21,8 +21,13 @@ class AxisSourceInventoryTests(unittest.TestCase): self.assertEqual(report["schema"], "axis-source-inventory.v1") self.assertEqual(report["task_id"], "AXIS-INV-01") self.assertEqual(report["status"], "verified") - self.assertEqual(len(report["assets"]), 21) + self.assertEqual(len(report["assets"]), 31) + self.assertEqual(report["completed_tasks"], ["AXIS-INV-01", "AXIS-INV-02", "AXIS-INV-03", "AXIS-INV-04"]) self.assertEqual(report["checks"]["toolbar_assets"]["status"], "verified") + self.assertEqual(report["checks"]["support_assets"]["status"], "verified") + self.assertEqual(report["checks"]["case_paths"]["status"], "verified") + self.assertEqual(report["checks"]["case_paths"]["count"], 115) + self.assertEqual(report["checks"]["case_paths"]["expected_baseline"], 115) self.assertEqual(report["checks"]["source_line_count"]["actual"], 2300) self.assertGreaterEqual(report["axis_tcl"]["procedure_count"], 20) self.assertGreaterEqual(report["axis_tcl"]["binding_count"], 10)