1. 写测试
1) 单次写入的数据超过了buf的长度
预期结果: 程序返回EINVAL
测试结果:
2) 单次写入的数据小于buf的长度
预期结果: 成功写入数据, 返回写入数据的长度
测试结果:
3) 单次写入的数据小于free size, 但是写入多次后超过了buf长度
预期结果: 当最后写入的数据buf已经没有足够的free空间来存放时, 会返回EBUFFULL
测试结果:
4)单次写入的长度小于free size, 但是需要wrap, 因为已经写到了buf的最后了
预期结果:程序会将部分data写入buf的最后, 部分data写到buf的开始
2. 读测试
1. 单次希望读入的数据长度超过了buf的长度
预期结果: 成功读到数据, 返回可读的数据
测试结果:
2. buf里没有数据可读
预期结果: 返回0
测试结果:
3. buf里有数据, 读取的长度没有那么长
预期结果: 返回0
测试结果:
4. buf里有数据,长度比有效数据长
预期结果: 返回真实的数据
测试结果:
5. buffer里有数据, 读取时需要读buf最后的一部分, 以及前面的一部分
3. 释放测试
1. buffer里写了一笔数据
1) 剩余的长度不够写入新的数据
预期结果: 释放这笔数据, 整个buffer变为free, 从该笔数据的最后开始写
测试结果:
2) 整个buffer里都没有关键str
预期结果: 释放整个buffer
测试结果:
2. buffer里写了多笔数据, free空间在buffer最后
1) 剩余的长度不够写入新的数据
预期结果:
测试结果:
2) 整个buffer里都没有关键str
预期结果: 释放整个buffer
测试结果:
3. buffer里写了多笔数据, free的空间在buffer的中间
1) 剩余的长度不够写入新的数据
预期结果: 释放这笔数据, 如果还是不够接着free, 直到free到空间够用
测试结果:
2) 整个buffer里都没有关键str
预期结果: 释放整个buffer
测试结果:
4. buffer里写了多笔数据,\r在buffer的最后, \n咋buffer的开始
1) 剩余的长度不够写入新的数据
预期结果:
测试结果:
2) 整个buffer里都没有关键str
预期结果:
测试结果
5. buffer是满的, 没有free size
1) 剩余的长度不够写入新的数据
2) 整个buffer里都没有str