You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 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. }