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

10 роки тому
10 роки тому
10 роки тому
11 роки тому
10 роки тому
11 роки тому
11 роки тому
10 роки тому
11 роки тому
11 роки тому
11 роки тому
12 роки тому
11 роки тому
11 роки тому
10 роки тому
11 роки тому
10 роки тому
11 роки тому
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package worker
  2. import (
  3. "sync"
  4. "testing"
  5. )
  6. var worker *Worker
  7. func init() {
  8. worker = New(Unlimited)
  9. }
  10. func TestWorkerErrNoneAgents(t *testing.T) {
  11. err := worker.Ready()
  12. if err != ErrNoneAgents {
  13. t.Error("ErrNoneAgents expected.")
  14. }
  15. }
  16. func TestWorkerAddServer(t *testing.T) {
  17. t.Log("Add local server 127.0.0.1:4730.")
  18. if err := worker.AddServer(Network, "127.0.0.1:4730"); err != nil {
  19. t.Error(err)
  20. }
  21. if l := len(worker.agents); l != 1 {
  22. t.Log(worker.agents)
  23. t.Error("The length of server list should be 1.")
  24. }
  25. }
  26. func TestWorkerErrNoneFuncs(t *testing.T) {
  27. err := worker.Ready()
  28. if err != ErrNoneFuncs {
  29. t.Error("ErrNoneFuncs expected.")
  30. }
  31. }
  32. func foobar(job Job) ([]byte, error) {
  33. return nil, nil
  34. }
  35. func TestWorkerAddFunction(t *testing.T) {
  36. if err := worker.AddFunc("foobar", foobar, 0); err != nil {
  37. t.Error(err)
  38. }
  39. if err := worker.AddFunc("timeout", foobar, 5); err != nil {
  40. t.Error(err)
  41. }
  42. if l := len(worker.funcs); l != 2 {
  43. t.Log(worker.funcs)
  44. t.Errorf("The length of function map should be %d.", 2)
  45. }
  46. }
  47. func TestWorkerRemoveFunc(t *testing.T) {
  48. if err := worker.RemoveFunc("foobar"); err != nil {
  49. t.Error(err)
  50. }
  51. }
  52. func TestWork(t *testing.T) {
  53. var wg sync.WaitGroup
  54. worker.JobHandler = func(job Job) error {
  55. t.Logf("%s", job.Data())
  56. wg.Done()
  57. return nil
  58. }
  59. if err := worker.Ready(); err != nil {
  60. t.Error(err)
  61. return
  62. }
  63. go worker.Work()
  64. wg.Add(1)
  65. worker.Echo([]byte("Hello"))
  66. wg.Wait()
  67. }
  68. func TestWorkerClose(t *testing.T) {
  69. worker.Close()
  70. }