From 8bfd6359f5fd7015854502ce61eca41149cc1af5 Mon Sep 17 00:00:00 2001 From: Lyndon-Li Date: Tue, 6 Jun 2023 09:58:58 +0800 Subject: [PATCH] fix main CI failure Signed-off-by: Lyndon-Li --- pkg/podvolume/restorer_test.go | 75 +++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/pkg/podvolume/restorer_test.go b/pkg/podvolume/restorer_test.go index b7c38d60a..ae721ec96 100644 --- a/pkg/podvolume/restorer_test.go +++ b/pkg/podvolume/restorer_test.go @@ -154,6 +154,11 @@ func createPVRObj(fail bool, index int) *velerov1api.PodVolumeRestore { return pvrObj } +type expectError struct { + err string + prefixOnly bool +} + func TestRestorePodVolumes(t *testing.T) { scheme := runtime.NewScheme() velerov1api.AddToScheme(scheme) @@ -177,7 +182,7 @@ func TestRestorePodVolumes(t *testing.T) { pvbs []*velerov1api.PodVolumeBackup restoredPod *corev1api.Pod sourceNamespace string - errs []string + errs []expectError }{ { name: "no volume to restore", @@ -192,8 +197,10 @@ func TestRestorePodVolumes(t *testing.T) { }, restoredPod: createPodObj(false, false, false, 2), sourceNamespace: "fake-ns", - errs: []string{ - "error to check node agent status: daemonset not found", + errs: []expectError{ + { + err: "error to check node agent status: daemonset not found", + }, }, }, { @@ -207,8 +214,11 @@ func TestRestorePodVolumes(t *testing.T) { }, restoredPod: createPodObj(false, false, false, 2), sourceNamespace: "fake-ns", - errs: []string{ - "multiple repository type in one backup, current type restic, differential one [type kopia, snapshot ID fake-snapshot-id-2, uploader kopia]", + errs: []expectError{ + { + err: "multiple repository type in one backup", + prefixOnly: true, + }, }, }, { @@ -223,8 +233,10 @@ func TestRestorePodVolumes(t *testing.T) { restoredPod: createPodObj(false, false, false, 2), sourceNamespace: "fake-ns", runtimeScheme: scheme, - errs: []string{ - "wrong parameters, namespace \"fake-ns\", backup storage location \"\", repository type \"kopia\"", + errs: []expectError{ + { + err: "wrong parameters, namespace \"fake-ns\", backup storage location \"\", repository type \"kopia\"", + }, }, }, { @@ -243,9 +255,13 @@ func TestRestorePodVolumes(t *testing.T) { sourceNamespace: "fake-ns", bsl: "fake-bsl", runtimeScheme: scheme, - errs: []string{ - "error getting persistent volume claim for volume: persistentvolumeclaims \"fake-pvc-1\" not found", - "error getting persistent volume claim for volume: persistentvolumeclaims \"fake-pvc-2\" not found", + errs: []expectError{ + { + err: "error getting persistent volume claim for volume: persistentvolumeclaims \"fake-pvc-1\" not found", + }, + { + err: "error getting persistent volume claim for volume: persistentvolumeclaims \"fake-pvc-2\" not found", + }, }, }, { @@ -275,9 +291,13 @@ func TestRestorePodVolumes(t *testing.T) { sourceNamespace: "fake-ns", bsl: "fake-bsl", runtimeScheme: scheme, - errs: []string{ - "fake-create-error", - "fake-create-error", + errs: []expectError{ + { + err: "fake-create-error", + }, + { + err: "fake-create-error", + }, }, }, { @@ -297,8 +317,10 @@ func TestRestorePodVolumes(t *testing.T) { sourceNamespace: "fake-ns", bsl: "fake-bsl", runtimeScheme: scheme, - errs: []string{ - "timed out waiting for all PodVolumeRestores to complete", + errs: []expectError{ + { + err: "timed out waiting for all PodVolumeRestores to complete", + }, }, }, { @@ -320,8 +342,10 @@ func TestRestorePodVolumes(t *testing.T) { retPVRs: []*velerov1api.PodVolumeRestore{ failedPVR, }, - errs: []string{ - "pod volume restore failed: fake-message", + errs: []expectError{ + { + err: "pod volume restore failed: fake-message", + }, }, }, { @@ -341,8 +365,10 @@ func TestRestorePodVolumes(t *testing.T) { sourceNamespace: "fake-ns", bsl: "fake-bsl", runtimeScheme: scheme, - errs: []string{ - "node-agent pod is not running in node fake-node-name: daemonset pod not found in running state in node fake-node-name", + errs: []expectError{ + { + err: "node-agent pod is not running in node fake-node-name: daemonset pod not found in running state in node fake-node-name", + }, }, }, { @@ -426,7 +452,16 @@ func TestRestorePodVolumes(t *testing.T) { assert.Nil(t, test.errs) } else { for i := 0; i < len(errs); i++ { - assert.EqualError(t, errs[i], test.errs[i]) + if test.errs[i].prefixOnly { + errMsg := errs[i].Error() + if len(errMsg) >= len(test.errs[i].err) { + errMsg = errMsg[0:len(test.errs[i].err)] + } + + assert.Equal(t, test.errs[i].err, errMsg) + } else { + assert.EqualError(t, errs[i], test.errs[i].err) + } } } })