{ "suite_id": "working2-abb120-spec", "robot_id": "abb_irb120_3_58", "spec_source": "work/doc/通用机器人编程语法规范.md", "program_root": "kdl-wasm/web/tests/fixtures/abb120/spec-programs", "runtime_commands": [ "loadProgram", "start", "stepInto", "hold", "resume", "stepMotion", "stop", "resetFault" ], "programs": [ { "program_id": "W2_00_MinimalModule", "file": "runtime/W2_00_MinimalModule.grl", "coverage_level": "Runtime", "spec_sections": [ 4, 5, 6, 9, 10, 23 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_10_DataTargetToolFrame", "file": "runtime/W2_10_DataTargetToolFrame.grl", "coverage_level": "Runtime", "spec_sections": [ 6, 8, 9 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_20_ExpressionMath", "file": "runtime/W2_20_ExpressionMath.grl", "coverage_level": "Runtime", "spec_sections": [ 7, 9, 13 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_30_MotionAllTypes", "file": "runtime/W2_30_MotionAllTypes.grl", "coverage_level": "Runtime", "spec_sections": [ 8, 9, 10 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_40_PathEvents", "file": "runtime/W2_40_PathEvents.grl", "coverage_level": "Runtime", "spec_sections": [ 11, 13, 19 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_50_OperationProcess", "file": "runtime/W2_50_OperationProcess.grl", "coverage_level": "Runtime", "spec_sections": [ 12, 13 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_60_IOWaitPulse", "file": "runtime/W2_60_IOWaitPulse.grl", "coverage_level": "Runtime", "spec_sections": [ 13 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_70_ControlFlow", "file": "runtime/W2_70_ControlFlow.grl", "coverage_level": "Runtime", "spec_sections": [ 14 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_80_ProcFuncCall", "file": "runtime/W2_80_ProcFuncCall.grl", "coverage_level": "Runtime", "spec_sections": [ 15 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_90_ExceptionAlarm", "file": "runtime/W2_90_ExceptionAlarm.grl", "coverage_level": "Runtime", "spec_sections": [ 16, 17 ], "expected_status": "pass", "expected_diagnostics": [ "GRL_P1_UNIMPLEMENTED" ] }, { "program_id": "W2_E10_ExpressionDiagnostics", "file": "static/W2_E10_ExpressionDiagnostics.grl", "coverage_level": "Static", "spec_sections": [ 7, 22 ], "expected_status": "diagnostic", "expected_diagnostics": [ "GRL_EXPR_UNKNOWN_SYMBOL", "GRL_EXPR_UNKNOWN_FUNCTION", "GRL_EXPR_ARITY", "GRL_EXPR_DOMAIN", "GRL_EXPR_DIV_ZERO", "GRL_EXPR_UNIT_MISMATCH" ] }, { "program_id": "W2_E20_SemanticDiagnostics", "file": "static/W2_E20_SemanticDiagnostics.grl", "coverage_level": "Static", "spec_sections": [ 6, 15, 22 ], "expected_status": "diagnostic", "expected_diagnostics": [ "GRL_SYMBOL_DUPLICATE", "GRL_ARGUMENT_NOT_LVALUE", "GRL_CALL_TARGET_NOT_FOUND", "GRL_FUNC_SIDE_EFFECT", "GRL_TARGET_NOT_FOUND" ] }, { "program_id": "W2_E30_MotionDiagnostics", "file": "error/W2_E30_MotionDiagnostics.grl", "coverage_level": "Static", "spec_sections": [ 8, 9, 10, 11, 22 ], "expected_status": "diagnostic", "expected_diagnostics": [ "KDL_JOINT_LIMIT", "KDL_TARGET_UNREACHABLE", "GRL_PATH_EMPTY" ] }, { "program_id": "W2_E40_ControlFlowDiagnostics", "file": "static/W2_E40_ControlFlowDiagnostics.grl", "coverage_level": "Static", "spec_sections": [ 14, 22 ], "expected_status": "diagnostic", "expected_diagnostics": [ "GRL_BREAK_OUTSIDE_FLOW", "GRL_CONTINUE_OUTSIDE_LOOP", "GRL_JUMP_INTO_BLOCK", "GRL_SWITCH_CASE_DUPLICATE", "GRL_SWITCH_CASE_NOT_CONSTANT", "GRL_LABEL_NOT_FOUND" ] }, { "program_id": "W2_E50_RuntimeTimeout", "file": "error/W2_E50_RuntimeTimeout.grl", "coverage_level": "Runtime", "spec_sections": [ 13, 16 ], "expected_status": "diagnostic", "expected_diagnostics": [ "VC_WAIT_TIMEOUT" ] }, { "program_id": "W2_P10_BrandHints", "file": "post/W2_P10_BrandHints.grl", "coverage_level": "Post", "spec_sections": [ 18, 20 ], "expected_status": "pass", "expected_diagnostics": [ "GRL_POST_HINT_IGNORED" ] }, { "program_id": "W2_P20_CrossBrandMotion", "file": "post/W2_P20_CrossBrandMotion.grl", "coverage_level": "Post", "spec_sections": [ 20 ], "expected_status": "pass", "expected_diagnostics": [] }, { "program_id": "W2_P30_Roundtrip", "file": "post/W2_P30_Roundtrip.grl", "coverage_level": "Post", "spec_sections": [ 19, 20, 21 ], "expected_status": "pass", "expected_diagnostics": [] } ], "coverage_matrix": [ { "spec_section": 4, "coverage_level": "Runtime/Static", "program_ids": [ "W2_00_MinimalModule" ] }, { "spec_section": 5, "coverage_level": "Runtime", "program_ids": [ "W2_00_MinimalModule" ] }, { "spec_section": 6, "coverage_level": "Runtime/Static", "program_ids": [ "W2_10_DataTargetToolFrame", "W2_E20_SemanticDiagnostics" ] }, { "spec_section": 7, "coverage_level": "Runtime/Static/Post", "program_ids": [ "W2_20_ExpressionMath", "W2_E10_ExpressionDiagnostics", "W2_P20_CrossBrandMotion" ] }, { "spec_section": 8, "coverage_level": "Runtime/Static", "program_ids": [ "W2_10_DataTargetToolFrame", "W2_E30_MotionDiagnostics" ] }, { "spec_section": 9, "coverage_level": "Runtime/Post", "program_ids": [ "W2_20_ExpressionMath", "W2_30_MotionAllTypes", "W2_P20_CrossBrandMotion" ] }, { "spec_section": 10, "coverage_level": "Runtime/Static/Post", "program_ids": [ "W2_30_MotionAllTypes", "W2_E30_MotionDiagnostics", "W2_P20_CrossBrandMotion" ] }, { "spec_section": 11, "coverage_level": "Runtime/Static", "program_ids": [ "W2_40_PathEvents", "W2_E30_MotionDiagnostics" ] }, { "spec_section": 12, "coverage_level": "Runtime/Post", "program_ids": [ "W2_50_OperationProcess", "W2_P30_Roundtrip" ] }, { "spec_section": 13, "coverage_level": "Runtime", "program_ids": [ "W2_60_IOWaitPulse", "W2_E50_RuntimeTimeout" ] }, { "spec_section": 14, "coverage_level": "Runtime/Static", "program_ids": [ "W2_70_ControlFlow", "W2_E40_ControlFlowDiagnostics" ] }, { "spec_section": 15, "coverage_level": "Runtime/Static", "program_ids": [ "W2_80_ProcFuncCall", "W2_E20_SemanticDiagnostics" ] }, { "spec_section": 16, "coverage_level": "Runtime/Static", "program_ids": [ "W2_90_ExceptionAlarm", "W2_E50_RuntimeTimeout" ] }, { "spec_section": 17, "coverage_level": "Static", "program_ids": [ "W2_90_ExceptionAlarm" ] }, { "spec_section": 18, "coverage_level": "Post", "program_ids": [ "W2_P10_BrandHints" ] }, { "spec_section": 19, "coverage_level": "Post", "program_ids": [ "W2_P30_Roundtrip" ] }, { "spec_section": 20, "coverage_level": "Post", "program_ids": [ "W2_P20_CrossBrandMotion" ] }, { "spec_section": 21, "coverage_level": "Runtime/Static", "program_ids": [ "W2_00_MinimalModule", "W2_E10_ExpressionDiagnostics" ] }, { "spec_section": 22, "coverage_level": "Static", "program_ids": [ "W2_E10_ExpressionDiagnostics", "W2_E20_SemanticDiagnostics", "W2_E30_MotionDiagnostics", "W2_E40_ControlFlowDiagnostics", "W2_E50_RuntimeTimeout" ] }, { "spec_section": 23, "coverage_level": "Static", "program_ids": [ "W2_00_MinimalModule" ] }, { "spec_section": 24, "coverage_level": "Runtime", "program_ids": [ "W2_P30_Roundtrip" ] }, { "spec_section": 25, "coverage_level": "Runtime/Static/Post", "program_ids": [ "W2_00_MinimalModule", "W2_10_DataTargetToolFrame", "W2_20_ExpressionMath", "W2_30_MotionAllTypes", "W2_40_PathEvents", "W2_50_OperationProcess", "W2_60_IOWaitPulse", "W2_70_ControlFlow", "W2_80_ProcFuncCall", "W2_90_ExceptionAlarm", "W2_P20_CrossBrandMotion" ] } ] }