Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package google-osconfig-agent for 
openSUSE:Factory checked in at 2026-07-07 21:05:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/google-osconfig-agent (Old)
 and      /work/SRC/openSUSE:Factory/.google-osconfig-agent.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "google-osconfig-agent"

Tue Jul  7 21:05:41 2026 rev:56 rq:1364265 version:20260625.00

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/google-osconfig-agent/google-osconfig-agent.changes  
    2026-06-27 18:06:25.496636801 +0200
+++ 
/work/SRC/openSUSE:Factory/.google-osconfig-agent.new.1982/google-osconfig-agent.changes
    2026-07-07 21:08:06.984492215 +0200
@@ -1,0 +2,6 @@
+Mon Jun 29 14:19:50 UTC 2026 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to version 20260625.00
+  * Add tests & bugfix for packages/trace.go (#939)
+
+-------------------------------------------------------------------

Old:
----
  osconfig-20260624.01.tar.gz

New:
----
  osconfig-20260625.00.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ google-osconfig-agent.spec ++++++
--- /var/tmp/diff_new_pack.xcwdj2/_old  2026-07-07 21:08:08.840556363 +0200
+++ /var/tmp/diff_new_pack.xcwdj2/_new  2026-07-07 21:08:08.844556501 +0200
@@ -19,7 +19,7 @@
 %define shortname osconfig
 
 Name:           google-osconfig-agent
-Version:        20260624.01
+Version:        20260625.00
 Release:        0
 Summary:        Google Cloud Guest Agent
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.xcwdj2/_old  2026-07-07 21:08:08.896558299 +0200
+++ /var/tmp/diff_new_pack.xcwdj2/_new  2026-07-07 21:08:08.904558575 +0200
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/GoogleCloudPlatform/osconfig</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="versionformat">20260624.01</param>
-    <param name="revision">20260624.01</param>
+    <param name="versionformat">20260625.00</param>
+    <param name="revision">20260625.00</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="recompress" mode="disabled">
@@ -15,7 +15,7 @@
     <param name="basename">osconfig</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">osconfig-20260624.01.tar.gz</param>
+    <param name="archive">osconfig-20260625.00.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.xcwdj2/_old  2026-07-07 21:08:08.936559681 +0200
+++ /var/tmp/diff_new_pack.xcwdj2/_new  2026-07-07 21:08:08.948560096 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/GoogleCloudPlatform/osconfig</param>
-              <param 
name="changesrevision">ba0531cd3c14cb3fee9b40bde6ce8203c3abade3</param></service></servicedata>
+              <param 
name="changesrevision">66ece98bab1d62c2366c52bbc8058ef5463db58c</param></service></servicedata>
 (No newline at EOF)
 

++++++ osconfig-20260624.01.tar.gz -> osconfig-20260625.00.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osconfig-20260624.01/packages/trace.go 
new/osconfig-20260625.00/packages/trace.go
--- old/osconfig-20260624.01/packages/trace.go  2026-06-24 17:10:57.000000000 
+0200
+++ new/osconfig-20260625.00/packages/trace.go  2026-06-25 16:31:39.000000000 
+0200
@@ -20,6 +20,11 @@
 }
 
 func (p tracingInstalledPackagesProvider) GetInstalledPackages(ctx 
context.Context) (Packages, error) {
+       osinfo, err := p.osInfoProvider.GetOSInfo(ctx)
+       if err != nil {
+               clog.Errorf(ctx, "GetOSInfo() error: %v", err)
+       }
+
        ctx, cancel := context.WithCancel(ctx)
        resultChannel := make(chan utiltrace.TraceMemoryResult)
        go utiltrace.TraceMemory(ctx, 100*time.Millisecond, resultChannel)
@@ -31,10 +36,6 @@
        cancel()
        result := <-resultChannel
 
-       osinfo, err := p.osInfoProvider.GetOSInfo(ctx)
-       if err != nil {
-               clog.Errorf(ctx, "GetOSInfo() error: %v", err)
-       }
        logTraceResult(ctx, result, duration, osinfo)
 
        return pkgs, err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osconfig-20260624.01/packages/trace_test.go 
new/osconfig-20260625.00/packages/trace_test.go
--- old/osconfig-20260624.01/packages/trace_test.go     1970-01-01 
01:00:00.000000000 +0100
+++ new/osconfig-20260625.00/packages/trace_test.go     2026-06-25 
16:31:39.000000000 +0200
@@ -0,0 +1,154 @@
+//  Copyright 2026 Google Inc. All Rights Reserved.
+//
+//  Licensed under the Apache License, Version 2.0 (the "License");
+//  you may not use this file except in compliance with the License.
+//  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+
+package packages
+
+import (
+       "context"
+       "errors"
+       "reflect"
+       "testing"
+       "time"
+
+       "github.com/GoogleCloudPlatform/osconfig/osinfo"
+       "github.com/GoogleCloudPlatform/osconfig/util/utiltest"
+       "github.com/golang/mock/gomock"
+)
+
+// mockInstalledPackagesProvider is a gomock implementation of 
InstalledPackagesProvider.
+type mockInstalledPackagesProvider struct {
+       ctrl     *gomock.Controller
+       recorder *mockInstalledPackagesProviderMockRecorder
+}
+
+type mockInstalledPackagesProviderMockRecorder struct {
+       mock *mockInstalledPackagesProvider
+}
+
+func newMockInstalledPackagesProvider(ctrl *gomock.Controller) 
*mockInstalledPackagesProvider {
+       mock := &mockInstalledPackagesProvider{ctrl: ctrl}
+       mock.recorder = &mockInstalledPackagesProviderMockRecorder{mock}
+       return mock
+}
+
+func (m *mockInstalledPackagesProvider) EXPECT() 
*mockInstalledPackagesProviderMockRecorder {
+       return m.recorder
+}
+
+func (m *mockInstalledPackagesProvider) GetInstalledPackages(ctx 
context.Context) (Packages, error) {
+       m.ctrl.T.Helper()
+       ret := m.ctrl.Call(m, "GetInstalledPackages", ctx)
+       ret0, _ := ret[0].(Packages)
+       ret1, _ := ret[1].(error)
+       return ret0, ret1
+}
+
+func (mr *mockInstalledPackagesProviderMockRecorder) GetInstalledPackages(ctx 
interface{}) *gomock.Call {
+       mr.mock.ctrl.T.Helper()
+       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, 
"GetInstalledPackages", 
reflect.TypeOf((*mockInstalledPackagesProvider)(nil).GetInstalledPackages), ctx)
+}
+
+// mockOSInfoProvider is a gomock implementation of osinfo.Provider.
+type mockOSInfoProvider struct {
+       ctrl     *gomock.Controller
+       recorder *mockOSInfoProviderMockRecorder
+}
+
+type mockOSInfoProviderMockRecorder struct {
+       mock *mockOSInfoProvider
+}
+
+func newMockOSInfoProvider(ctrl *gomock.Controller) *mockOSInfoProvider {
+       mock := &mockOSInfoProvider{ctrl: ctrl}
+       mock.recorder = &mockOSInfoProviderMockRecorder{mock}
+       return mock
+}
+
+func (m *mockOSInfoProvider) EXPECT() *mockOSInfoProviderMockRecorder {
+       return m.recorder
+}
+
+func (m *mockOSInfoProvider) GetOSInfo(ctx context.Context) (osinfo.OSInfo, 
error) {
+       m.ctrl.T.Helper()
+       ret := m.ctrl.Call(m, "GetOSInfo", ctx)
+       ret0, _ := ret[0].(osinfo.OSInfo)
+       ret1, _ := ret[1].(error)
+       return ret0, ret1
+}
+
+func (mr *mockOSInfoProviderMockRecorder) GetOSInfo(ctx interface{}) 
*gomock.Call {
+       mr.mock.ctrl.T.Helper()
+       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetOSInfo", 
reflect.TypeOf((*mockOSInfoProvider)(nil).GetOSInfo), ctx)
+}
+
+func runGetInstalledPackages(ctx context.Context, tp 
*mockInstalledPackagesProvider, op *mockOSInfoProvider, testInfo osinfo.OSInfo, 
wantPkgs Packages, tracedErr, osInfoErr error) (Packages, error) {
+       call := op.EXPECT().GetOSInfo(gomock.Any()).Return(testInfo, 
osInfoErr).Times(1)
+       
tp.EXPECT().GetInstalledPackages(gomock.Any()).After(call).DoAndReturn(func(ctx 
context.Context) (Packages, error) {
+               // Wait at least 110ms to ensure TraceMemory (100ms interval) 
samples at least once.
+               time.Sleep(110 * time.Millisecond)
+               return wantPkgs, tracedErr
+       }).Times(1)
+
+       return TracingInstalledPackagesProvider(tp, 
op).GetInstalledPackages(ctx)
+}
+
+// TestTracingInstalledPackagesProvider verifies that the tracing decorator
+// correctly handles results and errors from the underlying providers.
+func TestTracingInstalledPackagesProvider(t *testing.T) {
+       testPkgs := Packages{Yum: []*PkgInfo{{Name: "pkg1"}}}
+       testInfo := osinfo.OSInfo{Hostname: "test-host"}
+       mockCtrl := gomock.NewController(t)
+       defer mockCtrl.Finish()
+       tp := newMockInstalledPackagesProvider(mockCtrl)
+       op := newMockOSInfoProvider(mockCtrl)
+
+       tests := []struct {
+               name      string
+               tracedErr error
+               osInfoErr error
+               wantPkgs  Packages
+               wantErr   error
+       }{
+               {
+                       name:      "no errors from providers, want nil error",
+                       tracedErr: nil,
+                       osInfoErr: nil,
+                       wantPkgs:  testPkgs,
+                       wantErr:   nil,
+               },
+               {
+                       name:      "traced provider error, want traced provider 
error",
+                       tracedErr: errors.New("traced provider error"),
+                       osInfoErr: nil,
+                       wantPkgs:  Packages{},
+                       wantErr:   errors.New("traced provider error"),
+               },
+               {
+                       name:      "osinfo provider error, want nil error",
+                       tracedErr: nil,
+                       osInfoErr: errors.New("osinfo error"),
+                       wantPkgs:  testPkgs,
+                       wantErr:   nil,
+               },
+       }
+
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       gotPkgs, gotErr := 
runGetInstalledPackages(context.Background(), tp, op, testInfo, tt.wantPkgs, 
tt.tracedErr, tt.osInfoErr)
+
+                       utiltest.AssertEquals(t, gotPkgs, tt.wantPkgs)
+                       utiltest.AssertErrorMatch(t, gotErr, tt.wantErr)
+               })
+       }
+}

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/google-osconfig-agent/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.google-osconfig-agent.new.1982/vendor.tar.gz 
differ: char 123, line 1

Reply via email to