Checking ctrl types... ctrl type 0 is (unknown) -> 0 OK ctrl type 1 is GET -> 1 OK ctrl type 2 is SET -> 2 OK ctrl type 3 is GET_REPLY -> 3 OK ctrl type 4 is SET_REPLY -> 4 OK ctrl type 5 is TRAP -> 5 OK ctrl type 6 is ERROR -> 6 OK ctrl type 64 is unknown 0x40 [PARSE FAILED] test: 'GET 1 variable' parsing: type = 'GET' id = '1' variable = 'variable' value = '(null)' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'GET 1 variable\n' parsing: type = 'GET' id = '1' variable = 'variable' value = '(null)' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'GET 1 var\ni\nable' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET with trailing characters' handling: replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 var\ti\table' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET variable contains invalid characters' handling: replied: 'ERROR 1 GET variable contains invalid characters' ok test: 'GET 1 var\ri\rable' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET variable contains invalid characters' handling: replied: 'ERROR 1 GET variable contains invalid characters' ok test: 'GET 1 variable value' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET with trailing characters' handling: replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 variable value\n' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET with trailing characters' handling: replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 variable multiple value tokens' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET with trailing characters' handling: replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 variable multiple value tokens\n' parsing: type = 'ERROR' (parse failure) id = '1' reply = 'GET with trailing characters' handling: replied: 'ERROR 1 GET with trailing characters' ok test: 'SET 1 variable value' parsing: type = 'SET' id = '1' variable = 'variable' value = 'value' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'SET 1 variable value\n' parsing: type = 'SET' id = '1' variable = 'variable' value = 'value' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'SET weird_id variable value' parsing: type = 'ERROR' (parse failure) id = 'err' reply = 'Invalid message ID number' handling: replied: 'ERROR err Invalid message ID number' ok test: 'SET weird_id variable value\n' parsing: type = 'ERROR' (parse failure) id = 'err' reply = 'Invalid message ID number' handling: replied: 'ERROR err Invalid message ID number' ok test: 'SET 1 variable multiple value tokens' parsing: type = 'SET' id = '1' variable = 'variable' value = 'multiple value tokens' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'SET 1 variable multiple value tokens\n' parsing: type = 'SET' id = '1' variable = 'variable' value = 'multiple value tokens' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'SET 1 variable value_with_trailing_spaces ' parsing: type = 'SET' id = '1' variable = 'variable' value = 'value_with_trailing_spaces ' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'SET 1 variable value_with_trailing_spaces \n' parsing: type = 'SET' id = '1' variable = 'variable' value = 'value_with_trailing_spaces ' reply = '(null)' handling: replied: 'ERROR 1 Command not found' ok test: 'SET \n special_char_id value' parsing: type = 'ERROR' (parse failure) id = 'err' reply = 'Invalid message ID number' handling: replied: 'ERROR err Invalid message ID number' ok test: 'SET \t special_char_id value' parsing: type = 'ERROR' (parse failure) id = 'err' reply = 'Invalid message ID number' handling: replied: 'ERROR err Invalid message ID number' ok test: 'GET_REPLY 1 variable OK' parsing: type = 'GET_REPLY' id = '1' variable = 'variable' value = '(null)' reply = 'OK' handling: ok test: 'SET_REPLY 1 variable OK' parsing: type = 'SET_REPLY' id = '1' variable = 'variable' value = '(null)' reply = 'OK' handling: ok test: 'ERROR 1 some error message' parsing: type = 'ERROR' (error received) id = '1' reply = 'some error message' handling: ok test: 'ERROR err some error message' parsing: type = 'ERROR' (error received) id = 'err' reply = 'some error message' handling: ok test_deferred_cmd get_test_defer called ctrl_handle_msg() returned 0 invoking ctrl_test_defer_cb() asynchronously ctrl_test_defer_cb called success