From bc85a0115036267b72cb593d9cbb0234c7cb8066 Mon Sep 17 00:00:00 2001 From: karremil Date: Mon, 20 Apr 2026 15:31:09 +0530 Subject: [PATCH 1/2] fix potential nil pointer dereference errors --- .../qos_basic_test/qos_basic_test.go | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go b/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go index 3346b1d2906..d98ec5f7efc 100644 --- a/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go +++ b/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go @@ -441,28 +441,32 @@ func TestBasicConfigWithTraffic(t *testing.T) { if !deviations.QosGetStatePathUnsupported(dut) { for _, data := range trafficFlows { count, ok := gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).TransmitPkts().State(), timeout, isPresent).Await(t) - if !ok { - t.Errorf("TransmitPkts count for queue %q on interface %q not available within %v", dp3.Name(), data.queue, timeout) + if !ok || count == nil { + t.Errorf("TransmitPkts count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) + } else { + counters["dutQosPktsBeforeTraffic"][data.queue], _ = count.Val() } - counters["dutQosPktsBeforeTraffic"][data.queue], _ = count.Val() count, ok = gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).TransmitOctets().State(), timeout, isPresent).Await(t) - if !ok { - t.Errorf("TransmitOctets count for queue %q on interface %q not available within %v", dp3.Name(), data.queue, timeout) + if !ok || count == nil { + t.Errorf("TransmitOctets count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) + } else { + counters["dutQosOctetsBeforeTraffic"][data.queue], _ = count.Val() } - counters["dutQosOctetsBeforeTraffic"][data.queue], _ = count.Val() count, ok = gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).DroppedPkts().State(), timeout, isPresent).Await(t) - if !ok { - t.Errorf("DroppedPkts count for queue %q on interface %q not available within %v", dp3.Name(), data.queue, timeout) + if !ok || count == nil { + t.Errorf("DroppedPkts count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) + } else { + counters["dutQosDroppedPktsBeforeTraffic"][data.queue], _ = count.Val() } - counters["dutQosDroppedPktsBeforeTraffic"][data.queue], _ = count.Val() count, ok = gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).DroppedOctets().State(), timeout, isPresent).Await(t) - if !ok { - t.Errorf("DroppedOctets count for queue %q on interface %q not available within %v", dp3.Name(), data.queue, timeout) + if !ok || count == nil { + t.Errorf("DroppedOctets count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) + } else { + counters["dutQosDroppedOctetsBeforeTraffic"][data.queue], _ = count.Val() } - counters["dutQosDroppedOctetsBeforeTraffic"][data.queue], _ = count.Val() } } From cde1999f9fe003614cb004f56d5d83ad2319fb8b Mon Sep 17 00:00:00 2001 From: karremil Date: Mon, 20 Apr 2026 20:05:42 +0530 Subject: [PATCH 2/2] gemini comments --- .../qos_basic_test/qos_basic_test.go | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go b/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go index d98ec5f7efc..764e5fb3b45 100644 --- a/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go +++ b/feature/qos/otg_tests/qos_basic_test/qos_basic_test.go @@ -441,32 +441,28 @@ func TestBasicConfigWithTraffic(t *testing.T) { if !deviations.QosGetStatePathUnsupported(dut) { for _, data := range trafficFlows { count, ok := gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).TransmitPkts().State(), timeout, isPresent).Await(t) - if !ok || count == nil { - t.Errorf("TransmitPkts count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) - } else { - counters["dutQosPktsBeforeTraffic"][data.queue], _ = count.Val() + if !ok { + t.Fatalf("TransmitPkts count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) } + counters["dutQosPktsBeforeTraffic"][data.queue], _ = count.Val() count, ok = gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).TransmitOctets().State(), timeout, isPresent).Await(t) - if !ok || count == nil { + if !ok { t.Errorf("TransmitOctets count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) - } else { - counters["dutQosOctetsBeforeTraffic"][data.queue], _ = count.Val() } + counters["dutQosOctetsBeforeTraffic"][data.queue], _ = count.Val() count, ok = gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).DroppedPkts().State(), timeout, isPresent).Await(t) - if !ok || count == nil { + if !ok { t.Errorf("DroppedPkts count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) - } else { - counters["dutQosDroppedPktsBeforeTraffic"][data.queue], _ = count.Val() } + counters["dutQosDroppedPktsBeforeTraffic"][data.queue], _ = count.Val() count, ok = gnmi.Watch(t, dut.GNMIOpts().WithYGNMIOpts(opts...), gnmi.OC().Qos().Interface(dp3.Name()).Output().Queue(data.queue).DroppedOctets().State(), timeout, isPresent).Await(t) - if !ok || count == nil { + if !ok { t.Errorf("DroppedOctets count for queue %q on interface %q not available within %v", data.queue, dp3.Name(), timeout) - } else { - counters["dutQosDroppedOctetsBeforeTraffic"][data.queue], _ = count.Val() } + counters["dutQosDroppedOctetsBeforeTraffic"][data.queue], _ = count.Val() } }