diff --git a/ft/modbus-tcp_test.robot b/ft/modbus-tcp_test.robot index eb922fea..350858fe 100644 --- a/ft/modbus-tcp_test.robot +++ b/ft/modbus-tcp_test.robot @@ -8,40 +8,85 @@ Suite Teardown Modbus Test Teardown *** Variables *** ${modbus_node} modbus_node -${tag_bit} {"name": "tag_bit", "address": "1!000001", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} -${tag_int16} {"name": "tag_int16", "address": "1!400001", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_INT16}} -${tag_uint16} {"name": "tag_uint16", "address": "1!400002", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_UINT16}} -${tag_int32} {"name": "tag_int32", "address": "1!400003", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_INT32}} -${tag_uint32} {"name": "tag_uint32", "address": "1!400005", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_UINT32}} -${tag_float} {"name": "tag_float", "address": "1!400007", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_FLOAT}} -${tag_string} {"name": "tag_string", "address": "1!400009.10", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_STRING}} -${tag1_bit} {"name": "tag1", "address": "1!100001", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} -${tag2_bit} {"name": "tag2", "address": "1!100002", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} -${tag1_int16} {"name": "tag1", "address": "1!301021", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT16}} -${tag2_int16} {"name": "tag2", "address": "1!301022", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT16}} -${tag1_uint16} {"name": "tag1", "address": "1!301019", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_UINT16}} -${tag2_uint16} {"name": "tag2", "address": "1!301020", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_UINT16}} -${tag1_int32} {"name": "tag1", "address": "1!301010", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT32}} -${tag2_int32} {"name": "tag2", "address": "1!301011", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT32}} -${tag1_uint32} {"name": "tag1", "address": "1!301017", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_UINT32}} -${tag2_uint32} {"name": "tag2", "address": "1!301018", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_UINT32}} -${tag1_float} {"name": "tag1", "address": "1!300009", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_FLOAT}} -${tag2_float} {"name": "tag2", "address": "1!300008", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_FLOAT}} +${MODBUS_TCP_CONFIG_WRONG} {"host": "127.0.0.1", "port": 60502} + +${hold_bit} {"name": "hold_bit", "address": "1!400001.15", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${hold_int16} {"name": "hold_int16", "address": "1!400001", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_INT16}} +${hold_uint16} {"name": "hold_uint16", "address": "1!400002", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_UINT16}} +${hold_int32} {"name": "hold_int32", "address": "1!400003", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_INT32}} +${hold_uint32} {"name": "hold_uint32", "address": "1!400015", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_UINT32}} +${hold_float} {"name": "hold_float", "address": "1!400017", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_FLOAT}} +${hold_string} {"name": "hold_string", "address": "1!400020.10", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_STRING}} + +${coil_bit_1} {"name": "coil_bit_1", "address": "1!000001", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} +${coil_bit_2} {"name": "coil_bit_2", "address": "1!000002", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} +${coil_bit_3} {"name": "coil_bit_3", "address": "1!000003", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} +${coil_bit_4} {"name": "coil_bit_4", "address": "1!000005", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} +${coil_bit_5} {"name": "coil_bit_5", "address": "1!000010", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} + +${input_bit_1} {"name": "input_bit_1", "address": "1!100001", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${input_bit_2} {"name": "input_bit_2", "address": "1!100002", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${input_bit_3} {"name": "input_bit_3", "address": "1!100003", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${input_bit_4} {"name": "input_bit_4", "address": "1!100005", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${input_bit_5} {"name": "input_bit_5", "address": "1!100010", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} + +${input_register_bit} {"name": "input_register_bit", "address": "1!30101.15", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${input_register_int16} {"name": "input_register_int16", "address": "1!30101", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT16}} +${input_register_uint16} {"name": "input_register_uint16", "address": "1!30102", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_UINT16}} +${input_register_int32} {"name": "input_register_int32", "address": "1!30103", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT32}} +${input_register_uint32} {"name": "input_register_uint32", "address": "1!30115", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_UINT32}} +${input_register_float} {"name": "input_register_float", "address": "1!30117", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_FLOAT}} +${input_register_string} {"name": "input_register_string", "address": "1!30120.10", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_STRING}} + +${hold_int16_address_update} {"name": "hold_int16", "address": "1!400100", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_INT16}} +${hold_int16_type_update} {"name": "hold_int16", "address": "1!400001", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_INT32}} + +${input_bit_1_name_wrong} {"name": "input_bit", "address": "1!100001", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_BIT}} +${input_bit_1_attribute_wrong} {"name": "input_bit_1", "address": "1!100001", "attribute": ${TAG_ATTRIBUTE_RW}, "type": ${TAG_TYPE_BIT}} +${input_bit_1_type_wrong} {"name": "input_bit_1", "address": "1!100001", "attribute": ${TAG_ATTRIBUTE_READ}, "type": ${TAG_TYPE_INT16}} *** Test Cases *** -Write and Read different type tag, it should be success. - [Template] Write and Read a ${tag} named ${tag_name} from ${node}, useing ${check} to check the ${value}, it will be success. - ${tag_bit} tag_bit ${modbus_node} Compare Tag Value As Int 1 - ${tag_int16} tag_int16 ${modbus_node} Compare Tag Value As Int 120 - ${tag_uint16} tag_uint16 ${modbus_node} Compare Tag Value As Int 65535 - ${tag_int32} tag_int32 ${modbus_node} Compare Tag Value As Int 77889912 - ${tag_uint32} tag_uint32 ${modbus_node} Compare Tag Value As Int 88991232 - ${tag_float} tag_float ${modbus_node} Compare Tag Value As Float 12.34 - ${tag_string} tag_string ${modbus_node} Compare Tag Value As Strings "abc123" +# Read test. +# ${tags} = Create List ${input_register_int16} ${input_register_uint16} + +# Read some ${tags} from ${modbus_node}, it will be success. +Write and Read all type tag with same slave id in hold register, it should be success. + [Template] Write and Read a ${tag} named ${tag_name} from ${node}, using ${check} to check the ${value}, it will be success. + ${hold_int16} hold_int16 ${modbus_node} Compare Tag Value As Int 120 + ${hold_uint16} hold_uint16 ${modbus_node} Compare Tag Value As Int 65535 + ${hold_int32} hold_int32 ${modbus_node} Compare Tag Value As Int 77889912 + ${hold_uint32} hold_uint32 ${modbus_node} Compare Tag Value As Int 88991232 + ${hold_float} hold_float ${modbus_node} Compare Tag Value As Float 12.34 + ${hold_string} hold_string ${modbus_node} Compare Tag Value As Strings "abc123" + +Write and Read all type tag with same slave id in coil, it should be success. + [Template] Write and Read a ${tag} named ${tag_name} from ${node}, using ${check} to check the ${value}, it will be success. + ${coil_bit_1} coil_bit_1 ${modbus_node} Compare Tag Value As Int 1 + ${coil_bit_2} coil_bit_2 ${modbus_node} Compare Tag Value As Int 0 + ${coil_bit_3} coil_bit_3 ${modbus_node} Compare Tag Value As Int 0 + ${coil_bit_4} coil_bit_4 ${modbus_node} Compare Tag Value As Int 1 + ${coil_bit_5} coil_bit_5 ${modbus_node} Compare Tag Value As Int 1 + +Read all type tag with same slave id in input register, it should be success. + [Template] Read a ${tag} named ${tag_name} from ${node}, using ${check} to check the ${value}, it will be success. + ${input_register_int16} input_register_int16 ${modbus_node} Compare Tag Value As Int 0 + ${input_register_uint16} input_register_uint16 ${modbus_node} Compare Tag Value As Int 0 + ${input_register_int32} input_register_int32 ${modbus_node} Compare Tag Value As Int 0 + ${input_register_uint32} input_register_uint32 ${modbus_node} Compare Tag Value As Int 0 + ${input_register_float} input_register_float ${modbus_node} Compare Tag Value As Float 0 + ${input_register_string} input_register_string ${modbus_node} Compare Tag Value As Strings "" + +Read all type tag with same slave id in input, it should be success. + [Template] Read a ${tag} named ${tag_name} from ${node}, using ${check} to check the ${value}, it will be success. + ${input_bit_1} input_bit_1 ${modbus_node} Compare Tag Value As Int 0 + ${input_bit_2} input_bit_2 ${modbus_node} Compare Tag Value As Int 0 + ${input_bit_3} input_bit_3 ${modbus_node} Compare Tag Value As Int 0 + ${input_bit_4} input_bit_4 ${modbus_node} Compare Tag Value As Int 0 + ${input_bit_5} input_bit_5 ${modbus_node} Compare Tag Value As Int 0 *** Keywords *** Modbus Test Setup @@ -49,28 +94,20 @@ Modbus Test Setup Start Neuronx - ${res}= Add Node ${modbus_node} ${PLUGIN-MODBUS-TCP} + ${res}= Add Node ${modbus_node} ${PLUGIN-MODBUS-TCP} Check Response Status ${res} 200 - ${res}= Node Setting ${modbus_node} ${MODBUS_TCP_CONFIG} + ${res}= Node Setting ${modbus_node} ${MODBUS_TCP_CONFIG} Check Response Status ${res} 200 - ${res}= Node Ctl ${modbus_node} ${NODE_CTL_START} + ${res}= Node Ctl ${modbus_node} ${NODE_CTL_START} Check Response Status ${res} 200 - ${state} = Get Node State ${modbus_node} - Should Be Equal As Integers ${state}[running] ${NODE_STATE_RUNNING} - Should Be Equal As Integers ${state}[link] ${NODE_LINK_STATE_CONNECTING} + ${state}= Get Node State ${modbus_node} + Should Be Equal As Integers ${state}[running] ${NODE_STATE_RUNNING} + Should Be Equal As Integers ${state}[link] ${NODE_LINK_STATE_CONNECTING} Modbus Test Teardown Del Node ${modbus_node} Stop Neuronx - Terminate All Processes kill=false - - - - - - - - + Terminate All Processes kill=false diff --git a/ft/resource/driver.resource b/ft/resource/driver.resource index 03af3475..1f892c50 100644 --- a/ft/resource/driver.resource +++ b/ft/resource/driver.resource @@ -4,23 +4,299 @@ Resource common.resource Resource error.resource *** Keywords *** -Write and Read a ${tag} named ${tag_name} from ${node}, useing ${check} to check the ${value}, it will be success. - ${res}= Add Group ${node} group 100 +Set a ${node} with right ${node_settings}, it will be success. + [Tags] Driver 1 + + ${res}= Node Setting ${node} ${node_settings} Check Response Status ${res} 200 Check Error Code ${res} ${NEU_ERR_SUCCESS} - ${res}= Add Tags ${node} group ${tag} +Set a ${node} with wrong ${node_settings}, it will be failure. + [Tags] Driver 2 + + ${res}= Node Setting ${node} ${node_settings} + Check Response Status ${res} 2004 + Check Error Code ${res} ${NEU_ERR_NODE_SETTING_INVALID} + +Set a ${tag} with right address, type and attribute from ${node}, it will be success. + [Tags] Driver 3 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERROR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + [Teardown] Del Group ${node} group + +Set a ${tag} with unmatch address, type or attribute from ${node}, it will be failure and return ${resp_status} and ${error_code}. + [Tags] Driver 4 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} ${resp_status} + Check Error Code ${res} ${error_code} + + [Teardown] Del Group ${node} group + +Read a ${tag} named ${tag_name} from ${node}, using ${check} to check the ${value}, it will be success. + [Tags] Driver 5 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} Check Response Status ${res} 200 Check Error Code ${res} ${NEU_ERR_SUCCESS} Sleep 300ms - ${res}= Write Tags ${node} group ${tag_name} ${value} + ${res}= Read Tags ${node} group + Check Response Status ${res} 200 + + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + [Teardown] Del Group ${node} group + +Read some ${tags} from ${node}, it will be success. + [Tags] Driver 6 and 7 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + FOR ${tag} IN @{tags} + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + END + + Sleep 1000ms + ${res}= Read Tags ${node} group + Check Response Status ${res} 200 + + [Teardown] Del Group ${node} group + +Write and Read a ${tag} named ${tag_name} from ${node}, using ${check} to check the ${value}, it will be success. + [Tags] Driver 8 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} Check Response Status ${res} 200 Check Error Code ${res} ${NEU_ERR_SUCCESS} Sleep 300ms - ${res}= Read Tags ${node} group + ${res}= Write Tags ${node} group ${tag_name} ${value} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Read Tags ${node} group Check Response Status ${res} 200 - Run Keyword ${check} ${res}[tags] ${tag_name} ${value} - [Teardown] Del Group ${node} group \ No newline at end of file + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + [Teardown] Del Group ${node} group + +Write and read same ${tag1} ${tag2} named same ${tag_name} but different address in different ${groups} that from ${node}, using ${check} to check the ${value}, it will be success. + [Tags] Driver 9 + + ${res}= Add Group ${node} group-1 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Group ${node} group-2 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group-1 ${tag1} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group-2 ${tag2} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Write Tags ${node} group-1 ${tag_name} ${value} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Read Tags ${node} group-1 + Check Response Status ${res} 200 + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + Sleep 300ms + ${res}= Write Tags ${node} group-2 ${tag_name} ${value} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Read Tags ${node} group-1 + Check Response Status ${res} 200 + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + Del Group ${node} group-1 + Del Group ${node} group-2 + +Write and read same a ${tag} with same ${tag_name} and same address in different ${groups} that from ${node}, using ${check} to check the ${value}, it will be success. + [Tags] Driver 10 + + ${res}= Add Group ${node} group-1 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Group ${node} group-2 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group-1 ${tags} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group-2 ${tags} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Write Tags ${node} group-1 ${tag_name} ${value} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Read Tags ${node} group-1 + Check Response Status ${res} 200 + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + Sleep 300ms + ${res}= Read Tags ${node} group-2 + Check Response Status ${res} 200 + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + Del Group ${node} group-1 + Del Group ${node} group-2 + +Update a ${tag} by ${tag_update} named ${tag_name} that from ${node}, it can read and write, using ${check} to check the ${value}. + [Tags] Driver 12 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Update Tags ${node} group ${tag_update} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Write Tags ${node} group ${tag} ${value} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Read Tags ${node} group + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Run Keyword $[check] ${res}[tags] ${tag_name} ${value} + + [Teardown] Del Group ${node} group + +Update a ${tag} by a ${tag_update} with the unmatch settings from ${node} , it will be failure and return ${resp_status} and ${error_code}. + [Tags] Driver 13 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Sleep 300ms + ${res}= Update Tags ${node} group ${tag_update} + Check Response Status ${res} ${resp_status} + Check Error Code ${res} ${error_code} + + [Teardown] Del Group ${node} group + +Write a ${value} to a tag with named ${tag_name} that don't exist in neuron from ${node}, it will be failure. + [Tags] Driver 14 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Write Tags ${node} group ${tag_name} ${value} + Check Response Status ${res} 2201 + Check Error Code ${res} ${NEU_ERR_TAG_NOT_EXIST} + + [Teardown] Del Group ${node} group + +Read a tag with named ${tag_name} that don't exist in neuron form ${node}, using ${check} to check the ${value}, it will be failure. + [Tags] Driver 15 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Read Tags ${node} group + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + Run Keyword ${check} ${res}[tags] ${tag_name} ${value} + + [Teardown] Del Group ${node} group + +Write a ${value} to a ${tag} named ${tag_name} that without write attribute from ${node}, it will be failure. + [Tags] Driver 16 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Write Tags ${node} group ${tag_name} ${value} + Check Response Status ${res} 2203 + Check Error Code ${res} ${NEU_ERR_TAG_ATTRIBUTE_NOT_SUPPORT} + + [Teardown] Del Group ${node} group + +Write and read a ${value} to a ${tag} named ${tag_name} when the ${node} is stoped, it will be failure. + [Tags] Driver 17 + + ${res}= Add Group ${node} group 100 + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Add Tags ${node} group ${tag} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Node Ctl ${node} ${NODE_CTL_STOP} + Check Response Status ${res} 200 + Check Error Code ${res} ${NEU_ERR_SUCCESS} + + ${res}= Write Tags ${node} group ${tag_name} ${value} + Check Response Status ${res} 2009 + Check Error Code ${res} ${NEU_ERR_NODE_IS_STOPED} + + ${res}= Read Tags ${node} group + Check Response Status ${res} 2009 + Check Error Code {$res} ${NEU_ERR_NODE_IS_STOPED} + + [Teardown] Del Group ${node} group