env_test.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package engine
  2. import (
  3. "testing"
  4. )
  5. func TestNewJob(t *testing.T) {
  6. job := mkJob(t, "dummy", "--level=awesome")
  7. if job.Name != "dummy" {
  8. t.Fatalf("Wrong job name: %s", job.Name)
  9. }
  10. if len(job.Args) != 1 {
  11. t.Fatalf("Wrong number of job arguments: %d", len(job.Args))
  12. }
  13. if job.Args[0] != "--level=awesome" {
  14. t.Fatalf("Wrong job arguments: %s", job.Args[0])
  15. }
  16. }
  17. func TestSetenv(t *testing.T) {
  18. job := mkJob(t, "dummy")
  19. job.Setenv("foo", "bar")
  20. if val := job.Getenv("foo"); val != "bar" {
  21. t.Fatalf("Getenv returns incorrect value: %s", val)
  22. }
  23. job.Setenv("bar", "")
  24. if val := job.Getenv("bar"); val != "" {
  25. t.Fatalf("Getenv returns incorrect value: %s", val)
  26. }
  27. if val := job.Getenv("nonexistent"); val != "" {
  28. t.Fatalf("Getenv returns incorrect value: %s", val)
  29. }
  30. }
  31. func TestSetenvBool(t *testing.T) {
  32. job := mkJob(t, "dummy")
  33. job.SetenvBool("foo", true)
  34. if val := job.GetenvBool("foo"); !val {
  35. t.Fatalf("GetenvBool returns incorrect value: %t", val)
  36. }
  37. job.SetenvBool("bar", false)
  38. if val := job.GetenvBool("bar"); val {
  39. t.Fatalf("GetenvBool returns incorrect value: %t", val)
  40. }
  41. if val := job.GetenvBool("nonexistent"); val {
  42. t.Fatalf("GetenvBool returns incorrect value: %t", val)
  43. }
  44. }
  45. func TestSetenvInt(t *testing.T) {
  46. job := mkJob(t, "dummy")
  47. job.SetenvInt("foo", -42)
  48. if val := job.GetenvInt("foo"); val != -42 {
  49. t.Fatalf("GetenvInt returns incorrect value: %d", val)
  50. }
  51. job.SetenvInt("bar", 42)
  52. if val := job.GetenvInt("bar"); val != 42 {
  53. t.Fatalf("GetenvInt returns incorrect value: %d", val)
  54. }
  55. if val := job.GetenvInt("nonexistent"); val != -1 {
  56. t.Fatalf("GetenvInt returns incorrect value: %d", val)
  57. }
  58. }
  59. func TestSetenvList(t *testing.T) {
  60. job := mkJob(t, "dummy")
  61. job.SetenvList("foo", []string{"bar"})
  62. if val := job.GetenvList("foo"); len(val) != 1 || val[0] != "bar" {
  63. t.Fatalf("GetenvList returns incorrect value: %v", val)
  64. }
  65. job.SetenvList("bar", nil)
  66. if val := job.GetenvList("bar"); val != nil {
  67. t.Fatalf("GetenvList returns incorrect value: %v", val)
  68. }
  69. if val := job.GetenvList("nonexistent"); val != nil {
  70. t.Fatalf("GetenvList returns incorrect value: %v", val)
  71. }
  72. }
  73. func TestImportEnv(t *testing.T) {
  74. type dummy struct {
  75. DummyInt int
  76. DummyStringArray []string
  77. }
  78. job := mkJob(t, "dummy")
  79. if err := job.ImportEnv(&dummy{42, []string{"foo", "bar"}}); err != nil {
  80. t.Fatal(err)
  81. }
  82. dmy := dummy{}
  83. if err := job.ExportEnv(&dmy); err != nil {
  84. t.Fatal(err)
  85. }
  86. if dmy.DummyInt != 42 {
  87. t.Fatalf("Expected 42, got %d", dmy.DummyInt)
  88. }
  89. if len(dmy.DummyStringArray) != 2 || dmy.DummyStringArray[0] != "foo" || dmy.DummyStringArray[1] != "bar" {
  90. t.Fatalf("Expected {foo, bar}, got %v", dmy.DummyStringArray)
  91. }
  92. }
  93. func TestEnviron(t *testing.T) {
  94. job := mkJob(t, "dummy")
  95. job.Setenv("foo", "bar")
  96. val, exists := job.Environ()["foo"]
  97. if !exists {
  98. t.Fatalf("foo not found in the environ")
  99. }
  100. if val != "bar" {
  101. t.Fatalf("bar not found in the environ")
  102. }
  103. }