From 83c344647f563fb3b1d29d7182d9ccc6d73ec287 Mon Sep 17 00:00:00 2001 From: Francesco Romani Date: Mon, 10 Feb 2020 18:12:08 +0100 Subject: [PATCH] e2e: topomgr: better check for AffinityError Add a helper function to check if a Pod failed admission for Topology Affinity Error. So far we only check the Status.Reason. Signed-off-by: Francesco Romani --- test/e2e_node/topology_manager_test.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/e2e_node/topology_manager_test.go b/test/e2e_node/topology_manager_test.go index 6d5882ce86e..38c10dae602 100644 --- a/test/e2e_node/topology_manager_test.go +++ b/test/e2e_node/topology_manager_test.go @@ -46,8 +46,7 @@ import ( ) const ( - numalignCmd = `export CPULIST_ALLOWED=$( awk -F":\t*" '/Cpus_allowed_list/ { print $2 }' /proc/self/status); env; sleep 1d` - topologyError = "Topology Affinity Error" // XXX do we have a proper constant? + numalignCmd = `export CPULIST_ALLOWED=$( awk -F":\t*" '/Cpus_allowed_list/ { print $2 }' /proc/self/status); env; sleep 1d` ) // Helper for makeTopologyManagerPod(). @@ -570,13 +569,18 @@ func runTopologyManagerNegativeTest(f *framework.Framework, numaNodes, numPods i if pod.Status.Phase != v1.PodFailed { framework.Failf("pod %s not failed: %v", pod.Name, pod.Status) } - if pod.Status.Reason != topologyError { - framework.Failf("pod %s failed for wrong reason: %v", pod.Name, pod.Status) + if !isTopologyAffinityError(pod) { + framework.Failf("pod %s failed for wrong reason: %q", pod.Name, pod.Status.Reason) } deletePods(f, []string{pod.Name}) } +func isTopologyAffinityError(pod *v1.Pod) bool { + re := regexp.MustCompile(`Topology.*Affinity.*Error`) + return re.MatchString(pod.Status.Reason) +} + func getSRIOVDevicePluginConfigMap(cmFile string) *v1.ConfigMap { cmData := testfiles.ReadOrDie(SRIOVDevicePluginCMYAML) var err error