Вы не можете выбрать более 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. }