003zbuff.lua 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. local buff = zbuff.create(15,6)
  2. for i=0,14 do
  3. log.info("read byte",i,buff[i])
  4. assert(buff[i] == 6,"init error")
  5. end
  6. local writeLen = buff:write("abcde")
  7. log.info("writeLen string",writeLen)
  8. assert(writeLen == 5,"string write length error")
  9. writeLen = buff:write(0x31,0x32,0x33,0x34,0x35)
  10. log.info("writeLen numbers",writeLen)
  11. assert(writeLen == 5,"numbers write length error")
  12. buff:seek(0)
  13. local readData = buff:read(5)
  14. log.info("readData1",readData)
  15. assert(readData == "abcde","read data1 error")
  16. readData = buff:read(5)
  17. log.info("readData2",readData)
  18. assert(readData == "12345","read data2 error")
  19. log.info("write bytes")
  20. for i=0,9 do
  21. buff[i] = i * 2
  22. end
  23. for i=0,9 do
  24. log.info("read byte",i,buff[i])
  25. assert(buff[i] == i * 2,"read byte error")
  26. end
  27. buff:seek(0)
  28. writeLen = buff:pack(">bbbIAIII",1,2,3,4,"abc",666,2,3)
  29. log.info("pack write length",writeLen)
  30. assert(writeLen == 15,"pack write length error")
  31. buff:seek(0)
  32. local len,b1,b2,b3,b4,s,i1 = buff:unpack(">bbbIA3III")
  33. log.info("unpack read",len,b1,b2,b3,b4,s,i1)
  34. assert(len == 14,"pack read length error")
  35. assert(b1 == 1,"pack read b1 error")
  36. assert(b2 == 2,"pack read b2 error")
  37. assert(b3 == 3,"pack read b3 error")
  38. assert(b4 == 4,"pack read b4 error")
  39. assert(s == "abc","pack read s error")
  40. assert(i1 == 666,"pack read I error")
  41. local buff = zbuff.create(30,0)
  42. buff:del()
  43. assert(buff:used() == 0,"del error")
  44. buff:resize(1024)
  45. assert(buff:len() == 1024,"resize error")
  46. buff:copy(nil, "123")
  47. assert(buff:used() == 3,"copy error")
  48. assert(buff:query() == "123","query error")
  49. buff:set(1,0x30,1)
  50. assert(buff:query() == "103","set error")
  51. buff:set(0,0x30,3)
  52. assert(buff:query() == "000","set error")
  53. buff:copy(0, 0x12,0x34,0x56,0x78)
  54. assert(buff:used() == 4,"copy error")
  55. assert(buff:query(0, 4, true) == 0x12345678,"query error")
  56. assert(buff:query(0, 2, true) == 0x1234,"query error")
  57. assert(buff[2] == 0x56,"copy error")
  58. local buff2 = zbuff.create(16)
  59. buff2:set(0, 0xaa)
  60. buff2:seek(0,zbuff.SEEK_END)
  61. buff:copy(2, buff2)
  62. assert(buff:used() == 18,"copy error")
  63. assert(buff[3] == 0xaa,"copy error")
  64. buff:del(-1)
  65. assert(buff:used() == 17,"del error")