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 година
пре 11 година
пре 10 година
пре 11 година
пре 11 година
пре 10 година
пре 11 година
пре 11 година
пре 11 година
пре 12 година
пре 11 година
пре 11 година
пре 10 година
пре 11 година
пре 10 година
пре 11 година
пре 11 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. }
  71. func TestWorkWithoutReady(t * testing.T){
  72. other_worker := New(Unlimited)
  73. var wg sync.WaitGroup
  74. if err := other_worker.AddServer(Network, "127.0.0.1:4730"); err != nil {
  75. t.Error(err)
  76. }
  77. if err := other_worker.AddFunc("foobar", foobar, 0); err != nil {
  78. t.Error(err)
  79. }
  80. other_worker.JobHandler = func( j Job ) error {
  81. if( ! other_worker.ready ){
  82. t.Error("Worker not ready as expected");
  83. }
  84. wg.Done()
  85. return nil
  86. }
  87. go other_worker.Work();
  88. wg.Add(1)
  89. worker.Echo([]byte("Hello"))
  90. wg.Wait();
  91. }