## 1. API
    1. __construct 错误类型
    2. createConnPool 连接数量参数界限, 未设置地址直接调用
    3. setConfig 对单独client的config支持
    4. on() callback 类型, 闭包, 类方法等
    5. get() timeout 参数
    6. release() defer 兼容回调函数同步调用
    7. release() 放入 new \swoole_xxx 对象, 测试
    // 8. 测试 get & release 不配对
    9. 测试 close 之后调用release接口
    10. 测试destroy 之后 调用get等其他接口
    
    11. setConnectTimeout 测试超时之后行为 
    12. setQueryTimeout 测试超时之后行为
    13. 测试hbConstruct方法返回错误 心跳构造参数
    
    以上测试场景 使用redis \ mysql 客户端再测试一遍 

## 4. 行为
    1. 测试createConnPool, connectTimeout后established连接数量
    2. 测试 RST，对端无响应(连接超时) 情况下重连情况
    3. 连接池空闲连接为空情况下，get方法超时行为
    4. 已经release连接，仍然维护引用，对端关闭连接，防止被连接池析构，测试行为
    5. 从连接池取出连接，外部通过on方法修改其回调参数
    6. 从连接池取出连接，修改其他属性，测试行为
    7. 测试心跳异常情况下，重连行为 hbCheck return false
    8. get 回调内调用destry方法，测试获取到的连接是否可用
    9. 连接池变量引用计数为0，连接池是否会自动销毁
    
    10. 不绑定心跳回调，测试行为


TODO:
测试原来异步接口的超时配置;


TODO:
1. swoole_connpool 去掉errorno
2. tcp_client set_config 支持tcp_client 配置
3. swoole_event_defer 内部开启事件循环
4. 连接池配置支持 setConnectTimeout 与 setQueryTimeout
