github.com/openshift/source-to-image@v1.4.1-0.20240516041539-bf52fc02204e/pkg/util/status/build_status_test.go (about) 1 package status 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/openshift/source-to-image/pkg/api" 8 ) 9 10 func TestNewFailureReason(t *testing.T) { 11 failureReason := NewFailureReason(ReasonAssembleFailed, ReasonMessageAssembleFailed) 12 13 if failureReason.Reason != ReasonAssembleFailed { 14 t.Errorf("Expected reason to be: %s, got %s", ReasonAssembleFailed, failureReason.Reason) 15 } 16 17 if failureReason.Message != ReasonMessageAssembleFailed { 18 t.Errorf("Expected message reason to be: %s, got %s", ReasonMessageAssembleFailed, failureReason.Message) 19 } 20 } 21 22 func TestAddNewStage(t *testing.T) { 23 buildInfo := new(api.BuildInfo) 24 25 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StagePullImages, api.StepPullPreviousImage, time.Now(), time.Now()) 26 27 if len(buildInfo.Stages) != 1 { 28 t.Errorf("Stage not added wanted 1, got %#v", len(buildInfo.Stages)) 29 } 30 } 31 32 func TestAddNewStages(t *testing.T) { 33 buildInfo := new(api.BuildInfo) 34 35 if len(buildInfo.Stages) > 0 { 36 t.Errorf("Stages should be 0 but was %v instead.", len(buildInfo.Stages)) 37 } 38 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StagePullImages, api.StepPullBuilderImage, time.Now(), time.Now()) 39 40 if len(buildInfo.Stages) != 1 { 41 t.Errorf("Stages should be 1 but was %v instead.", len(buildInfo.Stages)) 42 } 43 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StageBuild, api.StepBuildDockerImage, time.Now(), time.Now()) 44 if len(buildInfo.Stages) != 2 { 45 t.Errorf("Stages should be 2 but was %v instead.", len(buildInfo.Stages)) 46 } 47 } 48 49 func TestAddNewStepToStage(t *testing.T) { 50 buildInfo := new(api.BuildInfo) 51 52 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StagePullImages, api.StepPullPreviousImage, time.Now(), time.Now()) 53 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StagePullImages, api.StepPullBuilderImage, time.Now(), time.Now()) 54 55 if len(buildInfo.Stages[0].Steps) != 2 { 56 t.Errorf("Step not added in Stage, wanted 2, got %#v", len(buildInfo.Stages[0].Steps)) 57 } 58 } 59 60 func TestUpdateStageDuration(t *testing.T) { 61 buildInfo := new(api.BuildInfo) 62 63 startTime := time.Now() 64 65 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StagePullImages, api.StepPullPreviousImage, startTime, time.Now()) 66 67 addDuration, _ := time.ParseDuration("5m") 68 69 endTime := time.Now().Add(addDuration) 70 71 buildInfo.Stages = api.RecordStageAndStepInfo(buildInfo.Stages, api.StagePullImages, api.StepPullBuilderImage, time.Now(), endTime) 72 73 if buildInfo.Stages[0].DurationMilliseconds != (endTime.Sub(startTime).Nanoseconds() / int64(time.Millisecond)) { 74 t.Errorf("Stage Duration was not updated, expected %#v, got %#v", endTime.Sub(startTime).Nanoseconds()/int64(time.Millisecond), buildInfo.Stages[0].DurationMilliseconds) 75 } 76 77 }