diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2017-09-26 14:21:44 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-12-20 15:50:24 +0000 |
commit | 3da9aa6b6792407d57816ec4a4cdfd0b4b3434b8 (patch) | |
tree | 1bcb71940b90c2f3a1e27e0aab5a777c0f52489e /tests/ctrl/ctrl_test.ok | |
parent | 6cb9e7d8981e127161f14f22ad9271252c531aec (diff) |
ctrl: tighten CTRL input parsing
Validate that incoming CTRL commands...
- have decimal IDs,
- return error on trailing characters,
- have invalid characters in variable identifiers,
- send detailed error messages as reply to the requestor.
Adjust ctrl_test.{c,ok}, which best show the change in behavior.
Message handling causes log messages on stderr; previously, stderr was empty.
Add '[ignore]' in testsuite.at so that the nonempty stderr doesn't cause test
failures.
Change-Id: I96a9b6b6a3a5e0b80513aa9eaa727ae8c9c7d7a1
Diffstat (limited to 'tests/ctrl/ctrl_test.ok')
-rw-r--r-- | tests/ctrl/ctrl_test.ok | 76 |
1 files changed, 27 insertions, 49 deletions
diff --git a/tests/ctrl/ctrl_test.ok b/tests/ctrl/ctrl_test.ok index 4a3a1696..087ebbc2 100644 --- a/tests/ctrl/ctrl_test.ok +++ b/tests/ctrl/ctrl_test.ok @@ -19,7 +19,7 @@ ok test: 'GET 1 variable\n' parsing: id = '1' -variable = 'variable\n' +variable = 'variable' value = '(null)' reply = '(null)' handling: @@ -28,65 +28,51 @@ ok test: 'GET 1 var\ni\nable' parsing: id = '1' -variable = 'var\ni\nable' -value = '(null)' -reply = '(null)' +reply = 'GET with trailing characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 var\ti\table' parsing: id = '1' -variable = 'var\ti\table' -value = '(null)' -reply = '(null)' +reply = 'GET variable contains invalid characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET variable contains invalid characters' ok test: 'GET 1 var\ri\rable' parsing: id = '1' -variable = 'var\ri\rable' -value = '(null)' -reply = '(null)' +reply = 'GET variable contains invalid characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET variable contains invalid characters' ok test: 'GET 1 variable value' parsing: id = '1' -variable = 'variable' -value = '(null)' -reply = '(null)' +reply = 'GET with trailing characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 variable value\n' parsing: id = '1' -variable = 'variable' -value = '(null)' -reply = '(null)' +reply = 'GET with trailing characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 variable multiple value tokens' parsing: id = '1' -variable = 'variable' -value = '(null)' -reply = '(null)' +reply = 'GET with trailing characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET with trailing characters' ok test: 'GET 1 variable multiple value tokens\n' parsing: id = '1' -variable = 'variable' -value = '(null)' -reply = '(null)' +reply = 'GET with trailing characters' handling: -replied: 'ERROR 1 Command not found' +replied: 'ERROR 1 GET with trailing characters' ok test: 'SET 1 variable value' parsing: @@ -108,21 +94,17 @@ replied: 'ERROR 1 Command not found' ok test: 'SET weird_id variable value' parsing: -id = 'weird_id' -variable = 'variable' -value = 'value' -reply = '(null)' +id = 'err' +reply = 'Invalid message ID number' handling: -replied: 'ERROR weird_id Command not found' +replied: 'ERROR err Invalid message ID number' ok test: 'SET weird_id variable value\n' parsing: -id = 'weird_id' -variable = 'variable' -value = 'value' -reply = '(null)' +id = 'err' +reply = 'Invalid message ID number' handling: -replied: 'ERROR weird_id Command not found' +replied: 'ERROR err Invalid message ID number' ok test: 'SET 1 variable multiple value tokens' parsing: @@ -162,21 +144,17 @@ replied: 'ERROR 1 Command not found' ok test: 'SET \n special_char_id value' parsing: -id = '\n' -variable = 'special_char_id' -value = 'value' -reply = '(null)' +id = 'err' +reply = 'Invalid message ID number' handling: -replied: 'ERROR \n Command not found' +replied: 'ERROR err Invalid message ID number' ok test: 'SET \t special_char_id value' parsing: -id = '\t' -variable = 'special_char_id' -value = 'value' -reply = '(null)' +id = 'err' +reply = 'Invalid message ID number' handling: -replied: 'ERROR \t Command not found' +replied: 'ERROR err Invalid message ID number' ok test: 'GET_REPLY 1 variable OK' parsing: |