func TestBuildRunitServices(t *testing.T) { fakeSB := runit.FakeServiceBuilder() defer fakeSB.Cleanup() serviceBuilder := &fakeSB.ServiceBuilder pod := Pod{ P2Exec: "/usr/bin/p2-exec", Id: "testPod", home: "/data/pods/testPod", ServiceBuilder: serviceBuilder, LogExec: runit.DefaultLogExec(), FinishExec: DefaultFinishExec, } hl, sb := hoist.FakeHoistLaunchableForDir("multiple_script_test_hoist_launchable") defer hoist.CleanupFakeLaunchable(hl, sb) hl.RunAs = "testPod" executables, err := hl.Executables(serviceBuilder) outFilePath := filepath.Join(serviceBuilder.ConfigRoot, "testPod.yaml") Assert(t).IsNil(err, "Got an unexpected error when attempting to start runit services") testManifest := manifest.NewBuilder() testManifest.SetRestartPolicy(runit.RestartPolicyAlways) testLaunchable := hl.If() pod.buildRunitServices([]launch.Launchable{testLaunchable}, testManifest.GetManifest()) f, err := os.Open(outFilePath) defer f.Close() bytes, err := ioutil.ReadAll(f) Assert(t).IsNil(err, "Got an unexpected error reading the servicebuilder yaml file") expectedMap := map[string]runit.ServiceTemplate{ executables[0].Service.Name: { Run: executables[0].Exec, Log: runit.DefaultLogExec(), Finish: pod.FinishExecForLaunchable(testLaunchable), }, executables[1].Service.Name: { Run: executables[1].Exec, Log: runit.DefaultLogExec(), Finish: pod.FinishExecForLaunchable(testLaunchable), }, } expected, err := yaml.Marshal(expectedMap) Assert(t).IsNil(err, "Got error marshalling expected map to yaml") Assert(t).AreEqual(string(bytes), string(expected), "Servicebuilder yaml file didn't have expected contents") }
func TestBuildRunitServices(t *testing.T) { fakeSB := runit.FakeServiceBuilder() defer fakeSB.Cleanup() serviceBuilder := &fakeSB.ServiceBuilder pod := Pod{ Id: "testPod", path: "/data/pods/testPod", ServiceBuilder: serviceBuilder, } hl, sb := hoist.FakeHoistLaunchableForDir("multiple_script_test_hoist_launchable") defer hoist.CleanupFakeLaunchable(hl, sb) hl.RunAs = "testPod" executables, err := hl.Executables(serviceBuilder) outFilePath := filepath.Join(serviceBuilder.ConfigRoot, "testPod.yaml") Assert(t).IsNil(err, "Got an unexpected error when attempting to start runit services") pod.buildRunitServices([]launch.Launchable{hl.If()}, runit.RestartPolicyAlways) f, err := os.Open(outFilePath) defer f.Close() bytes, err := ioutil.ReadAll(f) Assert(t).IsNil(err, "Got an unexpected error reading the servicebuilder yaml file") expectedMap := map[string]interface{}{ executables[0].Service.Name: map[string]interface{}{ "run": executables[0].Exec, }, executables[1].Service.Name: map[string]interface{}{ "run": executables[1].Exec, }, } expected, err := yaml.Marshal(expectedMap) Assert(t).IsNil(err, "Got error marshalling expected map to yaml") Assert(t).AreEqual(string(bytes), string(expected), "Servicebuilder yaml file didn't have expected contents") }