From 8bfdb729fb356405bb20e53616eb9523bbc33b92 Mon Sep 17 00:00:00 2001 From: Diptanu Choudhury Date: Tue, 5 Jul 2016 13:55:11 -0700 Subject: [PATCH] Added test for job summary restore --- nomad/fsm_test.go | 26 ++++++++++++++++++++++++++ nomad/state/state_store_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/nomad/fsm_test.go b/nomad/fsm_test.go index 122da7312..897a975de 100644 --- a/nomad/fsm_test.go +++ b/nomad/fsm_test.go @@ -938,3 +938,29 @@ func TestFSM_SnapshotRestore_PeriodicLaunches(t *testing.T) { t.Fatalf("bad: \n%#v\n%#v", out2, job2) } } + +func TestFSM_SnapshotRestore_JobSummary(t *testing.T) { + // Add some state + fsm := testFSM(t) + state := fsm.State() + + job1 := mock.Job() + state.UpsertJob(1000, job1) + js1, _ := state.JobSummaryByID(job1.ID) + + job2 := mock.Job() + state.UpsertJob(1001, job2) + js2, _ := state.JobSummaryByID(job2.ID) + + // Verify the contents + fsm2 := testSnapshotRestore(t, fsm) + state2 := fsm2.State() + out1, _ := state2.JobSummaryByID(job1.ID) + out2, _ := state2.JobSummaryByID(job2.ID) + if !reflect.DeepEqual(js1, out1) { + t.Fatalf("bad: \n%#v\n%#v", js1, job1) + } + if !reflect.DeepEqual(js2, out2) { + t.Fatalf("bad: \n%#v\n%#v", js2, job2) + } +} diff --git a/nomad/state/state_store_test.go b/nomad/state/state_store_test.go index af72fcae1..1d8ddba10 100644 --- a/nomad/state/state_store_test.go +++ b/nomad/state/state_store_test.go @@ -1076,6 +1076,38 @@ func TestStateStore_RestorePeriodicLaunch(t *testing.T) { notify.verify(t) } +func TestStateStore_RestoreJobSummary(t *testing.T) { + state := testStateStore(t) + job := mock.Job() + jobSummary := &structs.JobSummary{ + JobID: job.ID, + Summary: map[string]structs.TaskGroupSummary{ + "web": structs.TaskGroupSummary{ + Queued: 10, + }, + }, + } + restore, err := state.Restore() + if err != nil { + t.Fatalf("err: %v", err) + } + + err = restore.JobSummaryRestore(jobSummary) + if err != nil { + t.Fatalf("err: %v", err) + } + restore.Commit() + + out, err := state.JobSummaryByID(job.ID) + if err != nil { + t.Fatalf("err: %v", err) + } + + if !reflect.DeepEqual(out, jobSummary) { + t.Fatalf("Bad: %#v %#v", out, jobSummary) + } +} + func TestStateStore_Indexes(t *testing.T) { state := testStateStore(t) node := mock.Node()