diff options
| author | moteus <mimir@newmail.ru> | 2013-05-29 14:33:27 +0400 |
|---|---|---|
| committer | moteus <mimir@newmail.ru> | 2013-05-29 14:33:27 +0400 |
| commit | 1de617e3550366076737e804f1e28891605db89c (patch) | |
| tree | 2a5db457e38cdf3de1f29df4d0217999c5cd306d /test | |
| parent | b84a5f3d08b1dc9d1003506bbca53e11264e8693 (diff) | |
| download | luasocket-1de617e3550366076737e804f1e28891605db89c.tar.gz luasocket-1de617e3550366076737e804f1e28891605db89c.tar.bz2 luasocket-1de617e3550366076737e804f1e28891605db89c.zip | |
Add. Allow get `error` option to socket.
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_socket_error.lua | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test_socket_error.lua b/test/test_socket_error.lua new file mode 100644 index 0000000..9bd0bc7 --- /dev/null +++ b/test/test_socket_error.lua | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | local socket = require "socket" | ||
| 2 | |||
| 3 | local host, port = "127.0.0.1", "5462" | ||
| 4 | |||
| 5 | assert(socket.bind(host, port)):close() | ||
| 6 | |||
| 7 | local sock = socket.tcp() | ||
| 8 | sock:settimeout(0) | ||
| 9 | |||
| 10 | local ok, err = sock:connect(host, port) | ||
| 11 | assert(not ok) | ||
| 12 | assert('timeout' == err) | ||
| 13 | |||
| 14 | for i = 1, 10 do | ||
| 15 | -- select pass even if socket has error | ||
| 16 | local _, rec, err = socket.select(nil, {sock}, 1) | ||
| 17 | assert('timeout' == err) | ||
| 18 | assert(not next(rec)) | ||
| 19 | err = sock:getoption("error") -- i get 'connection refused' on WinXP | ||
| 20 | if err then | ||
| 21 | print("Passed! Error is '" .. err .. "'.") | ||
| 22 | os.exit(0) | ||
| 23 | end | ||
| 24 | end | ||
| 25 | |||
| 26 | print("Fail! No error detected!") | ||
| 27 | os.exit(1) | ||
