Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package golang-github-linuxdeepin-go-lib for openSUSE:Factory checked in at 2022-01-31 22:56:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/golang-github-linuxdeepin-go-lib (Old) and /work/SRC/openSUSE:Factory/.golang-github-linuxdeepin-go-lib.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-github-linuxdeepin-go-lib" Mon Jan 31 22:56:51 2022 rev:4 rq:950177 version:5.7.35 Changes: -------- --- /work/SRC/openSUSE:Factory/golang-github-linuxdeepin-go-lib/golang-github-linuxdeepin-go-lib.changes 2021-08-16 10:14:19.562899623 +0200 +++ /work/SRC/openSUSE:Factory/.golang-github-linuxdeepin-go-lib.new.1898/golang-github-linuxdeepin-go-lib.changes 2022-01-31 22:57:15.249608946 +0100 @@ -1,0 +2,19 @@ +Thu Dec 16 04:14:30 UTC 2021 - Hillwood Yang <hillw...@opensuse.org> + +- Update version to 5.7.35 + * Fix bugs + +------------------------------------------------------------------- +Wed Oct 27 13:31:26 UTC 2021 - Hillwood Yang <hillw...@opensuse.org> + +- Fix build on Leap 15.4+ + +------------------------------------------------------------------- +Sun Oct 24 03:05:29 UTC 2021 - Hillwood Yang <hillw...@opensuse.org> + +- Update version to 5.7.15 + * Add SyncWriteFile + * Add BindTextdomainCodeset + * Fix Mock + +------------------------------------------------------------------- Old: ---- go-lib-5.7.10.tar.gz New: ---- go-lib-5.7.35.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ golang-github-linuxdeepin-go-lib.spec ++++++ --- /var/tmp/diff_new_pack.pB77bU/_old 2022-01-31 22:57:15.797605257 +0100 +++ /var/tmp/diff_new_pack.pB77bU/_new 2022-01-31 22:57:15.801605230 +0100 @@ -20,7 +20,7 @@ %define import_path pkg.deepin.io/lib Name: golang-github-linuxdeepin-go-lib -Version: 5.7.10 +Version: 5.7.35 Release: 0 Summary: Go bindings for Deepin Desktop Environment development License: GPL-3.0-or-later @@ -39,7 +39,7 @@ BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(x11) -%if 0%{?suse_version} > 1500 +%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300 BuildRequires: golang(API) = 1.15 %endif BuildArch: noarch ++++++ go-lib-5.7.10.tar.gz -> go-lib-5.7.35.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/dbusutil/proxy/object_mock.go new/go-lib-5.7.35/dbusutil/proxy/object_mock.go --- old/go-lib-5.7.10/dbusutil/proxy/object_mock.go 1970-01-01 01:00:00.000000000 +0100 +++ new/go-lib-5.7.35/dbusutil/proxy/object_mock.go 2021-09-09 03:49:55.000000000 +0200 @@ -0,0 +1,55 @@ +package proxy + +import ( + "fmt" + + "github.com/godbus/dbus" + "github.com/stretchr/testify/mock" + "pkg.deepin.io/lib/dbusutil" +) + +type MockObject struct { + mock.Mock +} + +func (o *MockObject) Path_() dbus.ObjectPath { + mockArgs := o.Called() + + ret, ok := mockArgs.Get(0).(dbus.ObjectPath) + if !ok { + panic(fmt.Sprintf("assert: arguments: 0 failed because object wasn't correct type: %v", mockArgs.Get(0))) + } + + return ret +} + +func (o *MockObject) ServiceName_() string { + mockArgs := o.Called() + + return mockArgs.String(0) +} + +func (o *MockObject) InitSignalExt(sigLoop *dbusutil.SignalLoop, ruleAuto bool) { + o.Called(sigLoop, ruleAuto) +} + +func (o *MockObject) RemoveAllHandlers() { + o.Called() +} + +func (o *MockObject) RemoveHandler(handlerId dbusutil.SignalHandlerId) { + o.Called(handlerId) +} + +func (o *MockObject) ConnectPropertiesChanged( + cb func(interfaceName string, changedProperties map[string]dbus.Variant, + invalidatedProperties []string)) (dbusutil.SignalHandlerId, error) { + mockArgs := o.Called(cb) + + ret0, ok := mockArgs.Get(0).(dbusutil.SignalHandlerId) + if !ok { + panic(fmt.Sprintf("assert: arguments: 0 failed because object wasn't correct type: %v", mockArgs.Get(0))) + } + + return ret0, mockArgs.Error(1) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/gen_test_report.sh new/go-lib-5.7.35/gen_test_report.sh --- old/go-lib-5.7.10/gen_test_report.sh 2021-06-01 04:22:55.000000000 +0200 +++ new/go-lib-5.7.35/gen_test_report.sh 2021-09-09 03:49:55.000000000 +0200 @@ -4,15 +4,30 @@ #gThirdpartPath="vendor" gThirdpartPath="gopath" #gThirdpartPath="gobuild" -# ?????????????????????????????????????????????????????? +# ?????????????????????????????????????????????????????????????????? gIgnorePaths=("gobuild" "gopath" "vendor") -gHTMLFile=./cover_report/index.html + +# ??????????????????????????? +gReportDir=./cover_report +gHTMLFile=${gReportDir}/index.html +gDeleteCoverageData=1 # 1 - ????????????????????????????????????????????????, 0 - ????????? + + +#################################################################################### + +if [ $# == 1 ] && [ "$1" == "clean" ]; then + rm ${gReportDir} -rf + echo "clean" + exit +fi gFuncHit=0 gFuncTotal=0 gRowHit=0 gRowTotal=0 +gTestCaseNumTotal=0 +gTestCaseNumFailed=0 function getGOPath() { echo "$(pwd):$(pwd)/${gThirdpartPath}:${GOPATH}" @@ -36,6 +51,7 @@ echo ${ret//"_"$currentDirectory/.} } +# ????????????????????????????????????????????????????????????????????? function getGoDirect() { arrDirGo=() @@ -69,7 +85,152 @@ done } +# ??????????????????????????? +function TestCasesNum() { + # ??????gotest + gTestCaseNumTotal=$(grep -c '^=== RUN[^\/]*$' ${gReportDir}/test.log) + gTestCaseNumFailed=$(grep -c '^--- FAIL[^\/]*$' ${gReportDir}/test.log) + + # ????????????????????? + TestCasesNumByGoCheck + TestCasesNumByGoConvey + + if [ ${gDeleteCoverageData} == 1 ]; then + rm ${gReportDir}/test.log -f + fi +} + +# ??????????????????????????? - ????????????gocheck(gopkg.in/check) +function TestCasesNumByGoCheck() { + while read -r line + do + # OK: 5 passed, 2 skipped + # OOPS: 3 passed, 1 FAILED + # skipped???????????????????????????????????????????????????????????????OOPS + if [ "$line" == "" ]; then + continue + fi + success=$(echo $line | grep -Eo ' [^ ]* passed' | tr -cd "(0-9)") + if [ "$success" != "" ]; then + gTestCaseNumTotal=$((gTestCaseNumTotal+success)) + fi + failed=$(echo $line | grep -Eo ' [^ ]* FAILED' | tr -cd "(0-9)") + if [ "$failed" != "" ]; then + gTestCaseNumTotal=$((gTestCaseNumTotal+failed)) + gTestCaseNumFailed=$((gTestCaseNumFailed+failed)) + # ????????????Suite??????????????????testing.T???????????????????????????????????????????????????1 + ((gTestCaseNumFailed--)) + fi + # ????????????????????????????????????Suite?????????Suite????????????testing.T?????????testing.T????????????????????????????????????????????????1 + ((gTestCaseNumTotal--)) + done <<< $(grep '^O[KO][P:][S ].*' ${gReportDir}/test.log) +} + +# ??????????????????????????? - ????????????goconvey(github.com/smartystreets/goconvey) +function TestCasesNumByGoConvey() { + isInTest=0 # ???????????????????????????????????????gotest???testing.T + failedNum=0 + isConvey=0 # ???????????????testing.T??????goconvey + isConveyFailed=0 # ????????????goconvey???????????????????????? + echo "" >> ${gReportDir}/test.log + while read -r line + do + # === RUN TestReader + # Test Reader ?????? + # Get Pid ???????????? + # ReadAll ?????? + # 8 total assertions + # Test ReadAll error ??? + # Failures: + # * /home/feng08/code/go/src/go-lib/encoding/kv/reader_test.go + # 9 total assertions + # Test Read shell vars ???????????????????????? + # 17 total assertions + # --- FAIL: TestReader (0.00s) + if [ "$line" == "" ]; then + continue + fi + startHit=$(echo $line | grep -c '^=== RUN[^\/]*$') + if [ $startHit == 1 ]; then + isInTest=1 + continue + fi + endHit=$(echo $line | grep -c '^--- [^\/]*$') + if [ $endHit == 1 ]; then + isInTest=0 + if [ $isConvey == 1 ]; then + # testing.T???????????????????????????????????????????????? + ((gTestCaseNumTotal--)) + isConvey=0 + fi + if [ $isConveyFailed == 1 ]; then + # testing.T??????????????????????????????????????? + ((gTestCaseNumFailed--)) + isConveyFailed=0 + fi + continue + fi + if [ $isInTest == 0 ]; then + continue + fi + failedHit=$(echo $line | grep -c '???') + if [ $failedHit == 1 ]; then + ((failedNum++)) + continue + fi + conveyHit=$(echo $line | grep -c '^[0-9]* total assertions$') + if [ $conveyHit == 1 ]; then + # ????????????????????????goconvey?????? + isConvey=1 + ((gTestCaseNumTotal++)) + if [ $failedNum != 0 ]; then + isConveyFailed=1 + ((gTestCaseNumFailed++)) + fi + failedNum=0 + continue + fi + done < ${gReportDir}/test.log +} + +# ??????????????????????????? +function TestCasesNumByTestFile() { + gTestCaseNumTotal=0 + while read -r file + do + GoConveyNum=0 + GoCheckNum=0 + GoTestNum=0 + while read -r line + do + # ?????????????????????????????? + trimLine=$(awk '{sub(/^[\t ]*/,"");print}' <<< $line) + if [ "${trimLine:0:2}" == "//" ] || [ "${trimLine:0:2}" == "/*" ]; then + # ??????????????? + continue + fi + GoConveyHit=$(echo $line | grep -c '^Convey(.*func(.*$') + GoConveyNum=$((GoConveyNum+GoConveyHit)) + GoCheckHit=$(echo $line | grep -c '^func (.*\*C\.C).*$') + GoCheckNum=$((GoCheckNum+GoCheckHit)) + GoTestHit=$(echo $line | grep -c '^func .*\*testing\.T.*$') + GoTestNum=$((GoTestNum+GoTestHit)) + done < $file + if [ $GoConveyNum != 0 ] || [ $GoCheckNum != 0 ]; then + # ???gocheck??????goconvey???????????????gotest?????????????????????????????????????????? + GoTestNum=0 + fi + gTestCaseNumTotal=$((gTestCaseNumTotal+GoCheckNum+GoConveyNum+GoTestNum)) + done <<< $(find ./ -type f -name "*_test.goo") + + echo $gTestCaseNumTotal + echo $gTestCaseNumFailed +} + +# ?????????????????? function makeTest() { + mkdir -pv $gReportDir + arrSupplementDir=() while read -r line do @@ -82,16 +243,19 @@ do supplementFile=${supplementDir}"/auto_generate_temp_go_test.go" name=$(grep "^package .*" "${supplementDir}"/*.go | head -n 1 | cut -d ":" -f 2) - echo "supplement:""${supplementDir}"" - ""${name}" + # echo "supplement:""${supplementDir}"" - ""${name}" echo "${name}" >> "$supplementFile" done #exit echo "gotest dir:$(getTestPath)" - env GOPATH="$(getGOPath)" go test $(getTestPath) -cover -coverprofile=coverage.data - env GOPATH="$(getGOPath)" go tool cover -func=coverage.data -o coverage.txt - # ???????????????????????????????????????????????????html?????? - #env GOPATH=$(getGOPath) go tool cover -html=coverage.data -o coverage.html + env GOPATH="$(getGOPath)" go test $(getTestPath) -v -cover -coverprofile=${gReportDir}/coverage.data | tee ${gReportDir}/test.log + env GOPATH="$(getGOPath)" go tool cover -func=${gReportDir}/coverage.data -o ${gReportDir}/coverage.txt + + if [ ${gDeleteCoverageData} == 0 ]; then + # ???????????????????????????????????????????????????html?????? + env GOPATH=$(getGOPath) go tool cover -html=${gReportDir}/coverage.data -o ${gReportDir}/coverage.html + fi find ./ -type f -name "auto_generate_temp_go_test.go" -exec rm -rf {} \; @@ -106,8 +270,10 @@ if [ "${arrData[1]}" != "0" ] && [ "${arrData[2]}" != "0" ]; then gRowHit=$((gRowHit+arrData[1])) fi - done < coverage.data - rm coverage.data -f + done < ${gReportDir}/coverage.data + if [ ${gDeleteCoverageData} == 1 ]; then + rm ${gReportDir}/coverage.data -f + fi while read -r line do @@ -115,15 +281,16 @@ ((gFuncHit++)) fi ((gFuncTotal++)) - done < coverage.txt + done < ${gReportDir}/coverage.txt # ???????????????????????? ((gFuncHit--)) ((gFuncTotal--)) + + TestCasesNum } +# ??????html???????????? function genHtml() { - - mkdir -pv ./cover_report echo "generate html report." curdir=$(pwd) dirName=${curdir##*/} @@ -135,6 +302,17 @@ echo "<body><h2>$dirName code coverage report - gotest[$datetime]</h2>" >> $gHTMLFile echo "<hr/>" >> $gHTMLFile + testCaseNumSuccess=$((gTestCaseNumTotal-gTestCaseNumFailed)) + testCaseFailedCoverage=0 + if [ $gTestCaseNumTotal -ne 0 ];then + testCaseFailedCoverage=$(awk -v v1=$gTestCaseNumFailed -v v2=$gTestCaseNumTotal 'BEGIN{printf "%.2f",v1*100/v2}') + fi + echo "<p style=\"font-size:18px\">??????????????????:</p>" >> $gHTMLFile + echo "<table border=\"1\" bordercolor=\"#000000\" width=\"1000\" style=\"BORDER-COLLAPSE: collapse\" >" >> $gHTMLFile + echo "<tr style=\"color:White\" bgColor=#0066CC><th>??????????????????</th><th>???????????????</th><th>???????????????</th><th>?????????</th></tr>" >> $gHTMLFile + echo "<tr align=\"center\" ><td>${gTestCaseNumTotal}</td><td>${gTestCaseNumFailed}</td><td>${testCaseNumSuccess}</td><td>$testCaseFailedCoverage%</td></tr>" >> $gHTMLFile + echo "</table>" >> $gHTMLFile + rowCoverage=0 if [ $gRowTotal -ne 0 ];then rowCoverage=$(awk -v v1=$gRowHit -v v2=$gRowTotal 'BEGIN{printf "%.2f",v1*100/v2}') @@ -143,15 +321,14 @@ if [ $gFuncTotal -ne 0 ];then funcCoverage=$(awk -v v1=$gFuncHit -v v2=$gFuncTotal 'BEGIN{printf "%.2f",v1*100/v2}') fi - - echo "<p>total:</p>" >> $gHTMLFile + echo "<p style=\"font-size:18px\">???????????????:</p>" >> $gHTMLFile echo "<table border=\"1\" bordercolor=\"#000000\" width=\"1000\" style=\"BORDER-COLLAPSE: collapse\" >" >> $gHTMLFile echo "<tr style=\"color:White\" bgColor=#0066CC><th></th><th>Hit</th><th>Total</th><th>Coverage</th></tr>" >> $gHTMLFile echo "<tr align=\"center\" ><td>Lines</td><td>$gRowHit</td><td>$gRowTotal</td><td>$rowCoverage%</td></tr>" >> $gHTMLFile echo "<tr align=\"center\" ><td>Functions</td><td>$gFuncHit</td><td>$gFuncTotal</td><td>$funcCoverage%</td></tr>" >> $gHTMLFile echo "</table>" >> $gHTMLFile - echo "<p>per function:</p>" >> $gHTMLFile + echo "<p style=\"font-size:18px\">????????????????????????:</p>" >> $gHTMLFile echo "<table border=\"1\" bordercolor=\"#000000\" width=\"1000\" style=\"BORDER-COLLAPSE: collapse\" >" >> $gHTMLFile echo "<tr style=\"color:White\" bgColor=#0066CC><th>go??????</th><th>??????</th><th>?????????</th></tr>" >> $gHTMLFile while read line || [[ -n ${line} ]] @@ -160,11 +337,17 @@ if [ "${arrLine[0]}" == "total:" ];then continue fi - echo "<tr align=\"center\" ><td>$dirName${arrLine[0]#*$dirName}</td><td>${arrLine[1]}</td><td>${arrLine[2]}</td></tr>" >> $gHTMLFile - done < coverage.txt + filePath=${arrLine[0]#*$dirName} + if [ "${filePath:0:1}" != "/" ]; then + filePath="/$filePath" + fi + echo "<tr align=\"center\" ><td>$dirName$filePath</td><td>${arrLine[1]}</td><td>${arrLine[2]}</td></tr>" >> $gHTMLFile + done < ${gReportDir}/coverage.txt echo "</table></body></html>" >> $gHTMLFile - rm coverage.txt + if [ ${gDeleteCoverageData} == 1 ]; then + rm ${gReportDir}/coverage.txt -f + fi } makeTest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/gettext/gettext.go new/go-lib-5.7.35/gettext/gettext.go --- old/go-lib-5.7.10/gettext/gettext.go 2021-06-01 04:22:55.000000000 +0200 +++ new/go-lib-5.7.35/gettext/gettext.go 2021-09-09 03:49:55.000000000 +0200 @@ -97,6 +97,14 @@ return C.GoString(C.bindtextdomain(_domain, _dirname)) } +func BindTextdomainCodeset(domain, codeset string) string { + _domain := C.CString(domain) + _codeset := C.CString(codeset) + defer C.free(unsafe.Pointer(_domain)) + defer C.free(unsafe.Pointer(_codeset)) + return C.GoString(C.bind_textdomain_codeset(_domain, _codeset)) +} + func NTr(msgid, plural string, n int) string { cMsgid := C.CString(msgid) defer C.free(unsafe.Pointer(cMsgid)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/mime/mime.go new/go-lib-5.7.35/mime/mime.go --- old/go-lib-5.7.10/mime/mime.go 2021-06-01 04:22:55.000000000 +0200 +++ new/go-lib-5.7.35/mime/mime.go 2021-09-09 03:49:55.000000000 +0200 @@ -21,7 +21,10 @@ import ( "fmt" - "pkg.deepin.io/gir/gio-2.0" + "os" + "path/filepath" + + gio "pkg.deepin.io/gir/gio-2.0" dutils "pkg.deepin.io/lib/utils" ) @@ -29,6 +32,8 @@ MimeTypeGtk = "application/x-gtk-theme" MimeTypeIcon = "application/x-icon-theme" MimeTypeCursor = "application/x-cursor-theme" + + MimeUserConfig = ".config/mimeapps.list" ) // Query query file mime type @@ -48,7 +53,8 @@ // // desktopId: the basename of the desktop file func SetDefaultApp(mime, desktopId string) error { - cur, _ := GetDefaultApp(mime, false) + // If the default app is in /usr/share/applications/, still go to set + cur := GetUserDefaultApp(mime) if cur == desktopId { return nil } @@ -63,8 +69,24 @@ return err } +// get default from ~/.config/mimeapps.list +func GetUserDefaultApp(ty string) string { + v, exist := dutils.ReadKeyFromKeyFile(filepath.Join(os.Getenv("HOME"), MimeUserConfig), + "Default Applications", ty, "") + if !exist { + return "" + } + + ret, ok := v.(string) + if !ok { + return "" + } + + return ret +} + // Get default app for 'mime' -// +// gio.AppInfoGetDefaultForType can get default from ~/.config/mimeapps.list ??? /usr/share/applications/mimeinfo.cache , /usr/share/applications/mimeapps.list // ret0: desktopId func GetDefaultApp(mime string, mustSupportURIs bool) (string, error) { app := gio.AppInfoGetDefaultForType(mime, false) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/pinyin/pinyin_test.go new/go-lib-5.7.35/pinyin/pinyin_test.go --- old/go-lib-5.7.10/pinyin/pinyin_test.go 1970-01-01 01:00:00.000000000 +0100 +++ new/go-lib-5.7.35/pinyin/pinyin_test.go 2021-09-09 03:49:55.000000000 +0200 @@ -0,0 +1,17 @@ +package pinyin + +import ( + "github.com/stretchr/testify/assert" + "testing" +) + +func Test_HansToPinyin(t *testing.T) { + pinyinMap := make(map[int]string) + array := HansToPinyin("????????????") + for i, a := range array { + pinyinMap[i] = a + } + assert.Len(t, pinyinMap, 2) + assert.Equal(t, pinyinMap[0], "tongxinruanjian") + assert.Equal(t, pinyinMap[1], "tongshenruanjian") +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/sound/utils_test.go new/go-lib-5.7.35/sound/utils_test.go --- old/go-lib-5.7.10/sound/utils_test.go 1970-01-01 01:00:00.000000000 +0100 +++ new/go-lib-5.7.35/sound/utils_test.go 2021-09-09 03:49:55.000000000 +0200 @@ -0,0 +1,16 @@ +package sound + +import ( + "fmt" + "github.com/stretchr/testify/assert" + "testing" +) + +func Test_findThemeFile(t *testing.T) { + file, err := findThemeFile("freedesktop", "service-login") + if err != nil { + assert.Equal(t, err, fmt.Errorf("invalid theme event")) + } else { + assert.Equal(t, file, "/usr/share/sounds/freedesktop/stereo/service-login.oga") + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-lib-5.7.10/utils/file.go new/go-lib-5.7.35/utils/file.go --- old/go-lib-5.7.10/utils/file.go 2021-06-01 04:22:55.000000000 +0200 +++ new/go-lib-5.7.35/utils/file.go 2021-09-09 03:49:55.000000000 +0200 @@ -177,6 +177,19 @@ return files, nil } +// ?????????????????? +func SyncWriteFile(filename string, data []byte, perm os.FileMode) error { + f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_TRUNC, perm) + if err != nil { + return err + } + _, err = f.Write(data) + if err1 := f.Close(); err == nil { + err = err1 + } + return err +} + func iterCopyDir(src, dest string, mode os.FileMode) error { sr, err := os.Open(src) if err != nil {