Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package worker
  2. import (
  3. "bytes"
  4. "testing"
  5. )
  6. var (
  7. outpackcases = map[uint32]map[string]string{
  8. dtCanDo: map[string]string{
  9. "src": "\x00REQ\x00\x00\x00\x01\x00\x00\x00\x01a",
  10. "data": "a",
  11. },
  12. dtCanDoTimeout: map[string]string{
  13. "src": "\x00REQ\x00\x00\x00\x17\x00\x00\x00\x06a\x00\x00\x00\x00\x01",
  14. "data": "a\x00\x00\x00\x00\x01",
  15. },
  16. dtCantDo: map[string]string{
  17. "src": "\x00REQ\x00\x00\x00\x02\x00\x00\x00\x01a",
  18. "data": "a",
  19. },
  20. dtResetAbilities: map[string]string{
  21. "src": "\x00REQ\x00\x00\x00\x03\x00\x00\x00\x00",
  22. },
  23. dtPreSleep: map[string]string{
  24. "src": "\x00REQ\x00\x00\x00\x04\x00\x00\x00\x00",
  25. },
  26. dtGrabJob: map[string]string{
  27. "src": "\x00REQ\x00\x00\x00\x09\x00\x00\x00\x00",
  28. },
  29. dtGrabJobUniq: map[string]string{
  30. "src": "\x00REQ\x00\x00\x00\x1E\x00\x00\x00\x00",
  31. },
  32. dtWorkData: map[string]string{
  33. "src": "\x00REQ\x00\x00\x00\x1C\x00\x00\x00\x03a\x00b",
  34. "data": "a\x00b",
  35. },
  36. dtWorkWarning: map[string]string{
  37. "src": "\x00REQ\x00\x00\x00\x1D\x00\x00\x00\x03a\x00b",
  38. "data": "a\x00b",
  39. },
  40. dtWorkStatus: map[string]string{
  41. "src": "\x00REQ\x00\x00\x00\x0C\x00\x00\x00\x08a\x0050\x00100",
  42. "data": "a\x0050\x00100",
  43. },
  44. dtWorkComplete: map[string]string{
  45. "src": "\x00REQ\x00\x00\x00\x0D\x00\x00\x00\x03a\x00b",
  46. "data": "a\x00b",
  47. },
  48. dtWorkFail: map[string]string{
  49. "src": "\x00REQ\x00\x00\x00\x0E\x00\x00\x00\x01a",
  50. "handle": "a",
  51. },
  52. dtWorkException: map[string]string{
  53. "src": "\x00REQ\x00\x00\x00\x19\x00\x00\x00\x03a\x00b",
  54. "data": "a\x00b",
  55. },
  56. dtSetClientId: map[string]string{
  57. "src": "\x00REQ\x00\x00\x00\x16\x00\x00\x00\x01a",
  58. "data": "a",
  59. },
  60. dtAllYours: map[string]string{
  61. "src": "\x00REQ\x00\x00\x00\x18\x00\x00\x00\x00",
  62. },
  63. }
  64. )
  65. func TestOutPack(t *testing.T) {
  66. for k, v := range outpackcases {
  67. outpack := getOutPack()
  68. outpack.dataType = k
  69. if handle, ok := v["handle"]; ok {
  70. outpack.handle = handle
  71. }
  72. if data, ok := v["data"]; ok {
  73. outpack.data = []byte(data)
  74. }
  75. data := outpack.Encode()
  76. if bytes.Compare([]byte(v["src"]), data) != 0 {
  77. t.Errorf("%d: %X expected, %X got.", k, v["src"], data)
  78. }
  79. }
  80. }
  81. func BenchmarkEncode(b *testing.B) {
  82. for i := 0; i < b.N; i++ {
  83. for k, v := range outpackcases {
  84. outpack := getOutPack()
  85. outpack.dataType = k
  86. if handle, ok := v["handle"]; ok {
  87. outpack.handle = handle
  88. }
  89. if data, ok := v["data"]; ok {
  90. outpack.data = []byte(data)
  91. }
  92. outpack.Encode()
  93. }
  94. }
  95. }