Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fortio for openSUSE:Factory checked in at 2024-01-17 22:19:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fortio (Old) and /work/SRC/openSUSE:Factory/.fortio.new.16006 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fortio" Wed Jan 17 22:19:05 2024 rev:57 rq:1139510 version:1.63.2 Changes: -------- --- /work/SRC/openSUSE:Factory/fortio/fortio.changes 2023-12-21 23:39:44.997027334 +0100 +++ /work/SRC/openSUSE:Factory/.fortio.new.16006/fortio.changes 2024-01-17 22:19:37.964548374 +0100 @@ -1,0 +2,8 @@ +Wed Jan 17 07:23:47 UTC 2024 - opensuse_buildserv...@ojkastl.de + +- Update to version 1.63.2: + * re-enable ifElseChain in go critic (#881) + * go 1.21.6 (#880) + * Bump golang.org/x/net from 0.19.0 to 0.20.0 (#878) + +------------------------------------------------------------------- Old: ---- fortio-1.63.1.obscpio New: ---- fortio-1.63.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fortio.spec ++++++ --- /var/tmp/diff_new_pack.xT6Ee8/_old 2024-01-17 22:19:39.296597320 +0100 +++ /var/tmp/diff_new_pack.xT6Ee8/_new 2024-01-17 22:19:39.300597467 +0100 @@ -1,7 +1,7 @@ # # spec file for package fortio # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,14 +19,14 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: fortio -Version: 1.63.1 +Version: 1.63.2 Release: 0 Summary: Load testing library, command line tool, advanced echo server and web UI License: Apache-2.0 URL: https://github.com/fortio/fortio Source: fortio-%{version}.tar.gz Source1: vendor.tar.gz -BuildRequires: go >= 1.20 +BuildRequires: go >= 1.21 %description Fortio (ΦοÏÏίο) started as, and is, Istio's load testing tool and now graduated to be its own project. ++++++ _service ++++++ --- /var/tmp/diff_new_pack.xT6Ee8/_old 2024-01-17 22:19:39.324598349 +0100 +++ /var/tmp/diff_new_pack.xT6Ee8/_new 2024-01-17 22:19:39.328598496 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/fortio/fortio</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.63.1</param> + <param name="revision">v1.63.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.xT6Ee8/_old 2024-01-17 22:19:39.348599230 +0100 +++ /var/tmp/diff_new_pack.xT6Ee8/_new 2024-01-17 22:19:39.352599378 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/fortio/fortio</param> - <param name="changesrevision">63083144350d8b9acabd2908a51b2953c9f83262</param></service></servicedata> + <param name="changesrevision">a9a6b4e2e89f813e7f18a0f15270b02e6d3f26af</param></service></servicedata> (No newline at EOF) ++++++ fortio-1.63.1.obscpio -> fortio-1.63.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/.circleci/config.yml new/fortio-1.63.2/.circleci/config.yml --- old/fortio-1.63.1/.circleci/config.yml 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/.circleci/config.yml 2024-01-15 22:53:07.000000000 +0100 @@ -8,7 +8,7 @@ &defaultEnv docker: # specify the version - - image: docker.io/fortio/fortio.build:v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 + - image: docker.io/fortio/fortio.build:v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a working_directory: /build/fortio jobs: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/.github/workflows/codecov.yml new/fortio-1.63.2/.github/workflows/codecov.yml --- old/fortio-1.63.1/.github/workflows/codecov.yml 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/.github/workflows/codecov.yml 2024-01-15 22:53:07.000000000 +0100 @@ -17,7 +17,7 @@ - name: Set up Go uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # pin@v4 with: - go-version: '1.20' + go-version: '1.21' check-latest: true - name: Run coverage run: make coverage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/.golangci.yml new/fortio-1.63.2/.golangci.yml --- old/fortio-1.63.1/.golangci.yml 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/.golangci.yml 2024-01-15 22:53:07.000000000 +0100 @@ -4,9 +4,6 @@ # all available settings of specific linters linters-settings: - gocritic: - disabled-checks: - - ifElseChain dupl: # tokens count to trigger issue, 150 by default threshold: 100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/Dockerfile new/fortio-1.63.2/Dockerfile --- old/fortio-1.63.1/Dockerfile 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/Dockerfile 2024-01-15 22:53:07.000000000 +0100 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 as build +FROM docker.io/fortio/fortio.build:v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a as build WORKDIR /build COPY --chown=build:build . fortio ARG MODE=install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/Dockerfile.build new/fortio-1.63.2/Dockerfile.build --- old/fortio-1.63.1/Dockerfile.build 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/Dockerfile.build 2024-01-15 22:53:07.000000000 +0100 @@ -1,5 +1,5 @@ # Dependencies and linters for build: -FROM golang:1.21.5@sha256:58e14a93348a3515c2becc54ebd35302128225169d166b7c6802451ab336c907 +FROM golang:1.21.6@sha256:6fbd2d3398db924f8d708cf6e94bd3a436bb468195daa6a96e80504e0a9615f2 # Need gcc for -race test (and some linters though those work with CGO_ENABLED=0) RUN apt-get -y update && \ apt-get --no-install-recommends -y upgrade && \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/Dockerfile.echosrv new/fortio-1.63.2/Dockerfile.echosrv --- old/fortio-1.63.1/Dockerfile.echosrv 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/Dockerfile.echosrv 2024-01-15 22:53:07.000000000 +0100 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 as build +FROM docker.io/fortio/fortio.build:v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a as build WORKDIR /build COPY . fortio RUN make -C fortio official-build-version BUILD_DIR=/build OFFICIAL_TARGET=fortio.org/fortio/echosrv diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/Dockerfile.fcurl new/fortio-1.63.2/Dockerfile.fcurl --- old/fortio-1.63.1/Dockerfile.fcurl 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/Dockerfile.fcurl 2024-01-15 22:53:07.000000000 +0100 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 as build +FROM docker.io/fortio/fortio.build:v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a as build WORKDIR /build COPY . fortio RUN make -C fortio official-build-version BUILD_DIR=/build OFFICIAL_TARGET=fortio.org/fortio/fcurl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/Makefile new/fortio-1.63.2/Makefile --- old/fortio-1.63.1/Makefile 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/Makefile 2024-01-15 22:53:07.000000000 +0100 @@ -7,7 +7,7 @@ IMAGES=echosrv fcurl # plus the combo image / Dockerfile without ext. DOCKER_PREFIX := docker.io/fortio/fortio -BUILD_IMAGE_TAG := v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 +BUILD_IMAGE_TAG := v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a BUILDX_PLATFORMS := linux/amd64,linux/arm64,linux/ppc64le,linux/s390x BUILDX_POSTFIX := ifeq '$(shell echo $(BUILDX_PLATFORMS) | awk -F "," "{print NF-1}")' '0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/README.md new/fortio-1.63.2/README.md --- old/fortio-1.63.1/README.md 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/README.md 2024-01-15 22:53:07.000000000 +0100 @@ -1,4 +1,4 @@ -<!-- 1.63.1 --> +<!-- 1.63.2 --> # Fortio [](https://github.com/avelino/awesome-go#networking) @@ -60,13 +60,13 @@ The [releases](https://github.com/fortio/fortio/releases) page has binaries for many OS/architecture combinations (see assets): ```shell -curl -L https://github.com/fortio/fortio/releases/download/v1.63.1/fortio-linux_amd64-1.63.1.tgz \ +curl -L https://github.com/fortio/fortio/releases/download/v1.63.2/fortio-linux_amd64-1.63.2.tgz \ | sudo tar -C / -xvzpf - # or the debian package -wget https://github.com/fortio/fortio/releases/download/v1.63.1/fortio_1.63.1_amd64.deb -dpkg -i fortio_1.63.1_amd64.deb +wget https://github.com/fortio/fortio/releases/download/v1.63.2/fortio_1.63.2_amd64.deb +dpkg -i fortio_1.63.2_amd64.deb # or the rpm -rpm -i https://github.com/fortio/fortio/releases/download/v1.63.1/fortio-1.63.1-1.x86_64.rpm +rpm -i https://github.com/fortio/fortio/releases/download/v1.63.2/fortio-1.63.2-1.x86_64.rpm # and more, see assets in release page ``` @@ -76,7 +76,7 @@ brew install fortio ``` -On Windows, download https://github.com/fortio/fortio/releases/download/v1.63.1/fortio_win_1.63.1.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: +On Windows, download https://github.com/fortio/fortio/releases/download/v1.63.2/fortio_win_1.63.2.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: ``` fortio.exe server ``` @@ -130,7 +130,7 @@ <!-- use release/updateFlags.sh to update this section --> <pre> <!-- USAGE_START --> -ΦοÏÏίο 1.63.1 usage: +ΦοÏÏίο 1.63.2 usage: fortio command [flags] target where command is one of: load (load testing), server (starts ui, rest api, http-echo, redirect, proxies, tcp-echo, udp-echo and grpc ping servers), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/Webtest.sh new/fortio-1.63.2/Webtest.sh --- old/fortio-1.63.1/Webtest.sh 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/Webtest.sh 2024-01-15 22:53:07.000000000 +0100 @@ -140,7 +140,7 @@ PPROF_URL="$BASE_URL/debug/pprof/heap?debug=1" $CURL "$PPROF_URL" | grep -i TotalAlloc # should find this in memory profile # creating dummy container to hold a volume for test certs due to remote docker bind mount limitation. -DOCKERCURLID=$(docker run -d -v $TEST_CERT_VOL --net host --name $DOCKERSECVOLNAME docker.io/fortio/fortio.build:v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 sleep 120) +DOCKERCURLID=$(docker run -d -v $TEST_CERT_VOL --net host --name $DOCKERSECVOLNAME docker.io/fortio/fortio.build:v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a sleep 120) # while we have something with actual curl binary do # Test for h2c upgrade (#562) docker exec $DOCKERSECVOLNAME /usr/bin/curl -v --http2 -m 10 -d foo42 http://localhost:8080/debug | tee >(cat 1>&2) | grep foo42 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/cli/fortio_main.go new/fortio-1.63.2/cli/fortio_main.go --- old/fortio-1.63.1/cli/fortio_main.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/cli/fortio_main.go 2024-01-15 22:53:07.000000000 +0100 @@ -362,7 +362,7 @@ } } -//nolint:funlen, gocognit // maybe refactor/shorten later. +//nolint:funlen // maybe refactor/shorten later. func fortioLoad(justCurl bool, percList []float64, hook bincommon.FortioHook) { if len(flag.Args()) != 1 { cli.ErrUsage("Error: fortio load/curl needs a url or destination") @@ -440,7 +440,8 @@ if hook != nil { hook(httpOpts, &ro) } - if *grpcFlag { + switch { + case *grpcFlag: o := fgrpc.GRPCRunnerOptions{ RunnerOptions: ro, Destination: url, @@ -456,7 +457,7 @@ } o.TLSOptions = httpOpts.TLSOptions res, err = fgrpc.RunGRPCTest(&o) - } else if strings.HasPrefix(url, tcprunner.TCPURLPrefix) { + case strings.HasPrefix(url, tcprunner.TCPURLPrefix): o := tcprunner.RunnerOptions{ RunnerOptions: ro, } @@ -464,7 +465,7 @@ o.Destination = url o.Payload = httpOpts.Payload res, err = tcprunner.RunTCPTest(&o) - } else if strings.HasPrefix(url, udprunner.UDPURLPrefix) { + case strings.HasPrefix(url, udprunner.UDPURLPrefix): o := udprunner.RunnerOptions{ RunnerOptions: ro, } @@ -472,7 +473,7 @@ o.Destination = url o.Payload = httpOpts.Payload res, err = udprunner.RunUDPTest(&o) - } else { + default: o := fhttp.HTTPRunnerOptions{ HTTPOptions: *httpOpts, RunnerOptions: ro, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/fhttp/http_client.go new/fortio-1.63.2/fhttp/http_client.go --- old/fortio-1.63.1/fhttp/http_client.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/fhttp/http_client.go 2024-01-15 22:53:07.000000000 +0100 @@ -1214,7 +1214,8 @@ if chunkedMode { // Next chunk: dataStart, nextChunkLen := ParseChunkSize(c.buffer[max:c.size]) - if nextChunkLen == -1 { + switch nextChunkLen { + case -1: if c.size == max { log.Debugf("[%d] Couldn't find next chunk size, reading more %d %d", c.id, max, c.size) } else { @@ -1223,7 +1224,7 @@ log.Attr("thread", c.id), log.Attr("run", c.runID)) } continue - } else if nextChunkLen == 0 { + case 0: log.Debugf("[%d] Found last chunk %d %d", c.id, max+dataStart, c.size) if c.size != max+dataStart+2 || string(c.buffer[c.size-2:c.size]) != "\r\n" { log.S(log.Error, "Unexpected mismatch at the end", @@ -1231,7 +1232,7 @@ log.Attr("end-of_buffer", c.buffer[max:c.size]), log.Attr("thread", c.id), log.Attr("run", c.runID)) } - } else { + default: max += dataStart + nextChunkLen + 2 // extra CR LF log.Debugf("[%d] One more chunk %d -> new max %d", c.id, nextChunkLen, max) if max > int64(len(c.buffer)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/fhttp/http_utils.go new/fortio-1.63.2/fhttp/http_utils.go --- old/fortio-1.63.1/fhttp/http_utils.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/fhttp/http_utils.go 2024-01-15 22:53:07.000000000 +0100 @@ -202,11 +202,12 @@ if inDigits { //nolint:nestif b := toUpper(inp[off]) var digit int64 - if b >= 'A' && b <= 'F' { + switch { + case b >= 'A' && b <= 'F': digit = 10 + int64(b-'A') - } else if b >= '0' && b <= '9' { + case b >= '0' && b <= '9': digit = int64(b - '0') - } else { + default: inDigits = false if res == -1 { log.Errf("Didn't find hex number %q", inp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/go.mod new/fortio-1.63.2/go.mod --- old/fortio-1.63.1/go.mod 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/go.mod 2024-01-15 22:53:07.000000000 +0100 @@ -13,7 +13,7 @@ fortio.org/version v1.0.3 github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.5.0 - golang.org/x/net v0.19.0 + golang.org/x/net v0.20.0 google.golang.org/grpc v1.60.1 ) @@ -31,7 +31,7 @@ fortio.org/struct2env v0.4.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.16.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231127180814-3a041ad873d4 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/go.sum new/fortio-1.63.2/go.sum --- old/fortio-1.63.1/go.sum 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/go.sum 2024-01-15 22:53:07.000000000 +0100 @@ -27,10 +27,10 @@ github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/jrpc/jrpcClient.go new/fortio-1.63.2/jrpc/jrpcClient.go --- old/fortio-1.63.1/jrpc/jrpcClient.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/jrpc/jrpcClient.go 2024-01-15 22:53:07.000000000 +0100 @@ -250,13 +250,14 @@ SetHeaderIfMissing(req.Header, "Accept", "application/json") SetHeaderIfMissing(req.Header, UserAgentHeader, UserAgent) var client *http.Client - if dest.Client != nil { + switch { + case dest.Client != nil: client = dest.Client - } else if dest.TLSConfig != nil { + case dest.TLSConfig != nil: transport := http.DefaultTransport.(*http.Transport).Clone() // Let it crash/panic if somehow DefaultTransport is not a Transport transport.TLSClientConfig = dest.TLSConfig client = &http.Client{Transport: transport} - } else { + default: client = http.DefaultClient } var resp *http.Response diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/periodic/periodic.go new/fortio-1.63.2/periodic/periodic.go --- old/fortio-1.63.1/periodic/periodic.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/periodic/periodic.go 2024-01-15 22:53:07.000000000 +0100 @@ -683,11 +683,12 @@ func NewFileAccessLogger(filePath, format string) (AccessLogger, error) { var t AccessLoggerType fl := strings.ToLower(format) - if fl == "json" { + switch fl { + case "json": t = AccessJSON - } else if fl == "influx" { + case "influx": t = AccessInflux - } else { + default: err := fmt.Errorf("invalid format %q, should be \"json\" or \"influx\"", format) log.Errf("%v", err) return nil, err diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/periodic/periodic_test.go new/fortio-1.63.2/periodic/periodic_test.go --- old/fortio-1.63.1/periodic/periodic_test.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/periodic/periodic_test.go 2024-01-15 22:53:07.000000000 +0100 @@ -306,6 +306,20 @@ r.Options().ReleaseRunners() } +func TestAccessLogFileInvalidFormat(t *testing.T) { + o := RunnerOptions{} + + err := o.AddAccessLogger("foo.log", "unknown") + if err == nil { + t.Fatalf("expected error for unknown format") + } + expected := `invalid format "unknown", should be "json" or "influx"` + actual := err.Error() + if actual != expected { + t.Errorf("unexpected error message: %q vs %q", actual, expected) + } +} + func TestAccessLogFile(t *testing.T) { var count int64 var lock sync.Mutex diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/rapi/restHandler.go new/fortio-1.63.2/rapi/restHandler.go --- old/fortio-1.63.1/rapi/restHandler.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/rapi/restHandler.go 2024-01-15 22:53:07.000000000 +0100 @@ -364,7 +364,8 @@ if hook != nil { hook(httpopts, ro) } - if runner == ModeGRPC { //nolint:nestif + switch { + case runner == ModeGRPC: grpcSecure := (FormValue(r, jd, "grpc-secure") == "on") grpcPing := (FormValue(r, jd, "ping") == "on") grpcPingDelay, _ := time.ParseDuration(FormValue(r, jd, "grpc-ping-delay")) @@ -382,7 +383,7 @@ aborter = UpdateRun(&o.RunnerOptions) // TODO: ReqTimeout: timeout res, err = fgrpc.RunGRPCTest(&o) - } else if strings.HasPrefix(url, tcprunner.TCPURLPrefix) { + case strings.HasPrefix(url, tcprunner.TCPURLPrefix): // TODO: copy pasta from fortio_main o := tcprunner.RunnerOptions{ RunnerOptions: *ro, @@ -392,7 +393,7 @@ o.Payload = httpopts.Payload aborter = UpdateRun(&o.RunnerOptions) res, err = tcprunner.RunTCPTest(&o) - } else if strings.HasPrefix(url, udprunner.UDPURLPrefix) { + case strings.HasPrefix(url, udprunner.UDPURLPrefix): // TODO: copy pasta from fortio_main o := udprunner.RunnerOptions{ RunnerOptions: *ro, @@ -402,7 +403,7 @@ o.Payload = httpopts.Payload aborter = UpdateRun(&o.RunnerOptions) res, err = udprunner.RunUDPTest(&o) - } else { + default: o := fhttp.HTTPRunnerOptions{ HTTPOptions: *httpopts, RunnerOptions: *ro, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/release/Dockerfile.in new/fortio-1.63.2/release/Dockerfile.in --- old/fortio-1.63.1/release/Dockerfile.in 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/release/Dockerfile.in 2024-01-15 22:53:07.000000000 +0100 @@ -1,5 +1,5 @@ # Concatenated after ../Dockerfile to create the tgz -FROM docker.io/fortio/fortio.build:v66@sha256:0e6ae8095ca4442328d99d20de02e3bcba23fb4afcb046fcfbf6284dceaafb80 as stage +FROM docker.io/fortio/fortio.build:v67@sha256:cf1744d102e6aef54e8ca3ef85cfe48c6c44f53740b1535112af8bb95604cf8a as stage ARG archs="amd64 arm64 ppc64le s390x" ENV archs=${archs} # Build image defaults to build user, switch back to root for diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.63.1/stats/stats.go new/fortio-1.63.2/stats/stats.go --- old/fortio-1.63.1/stats/stats.go 2023-12-19 21:07:52.000000000 +0100 +++ new/fortio-1.63.2/stats/stats.go 2024-01-15 22:53:07.000000000 +0100 @@ -46,12 +46,13 @@ func (c *Counter) RecordN(v float64, n int) { isFirst := (c.Count == 0) c.Count += int64(n) - if isFirst { + switch { + case isFirst: c.Min = v c.Max = v - } else if v < c.Min { + case v < c.Min: c.Min = v - } else if v > c.Max { + case v > c.Max: c.Max = v } s := v * float64(n) @@ -277,11 +278,12 @@ // math.Ceil()-1 but that doesn't work... so back to epsilon distance check scaledVal := (v - h.Offset) / h.Divider var idx int - if scaledVal <= firstValue { + switch { + case scaledVal <= firstValue: idx = 0 - } else if scaledVal > lastValue { + case scaledVal > lastValue: idx = numBuckets - 1 // last bucket is for > last value - } else { + default: // else we look it up (with the open interval adjustment) svInt := int(scaledVal) delta := scaledVal - float64(svInt) ++++++ fortio.obsinfo ++++++ --- /var/tmp/diff_new_pack.xT6Ee8/_old 2024-01-17 22:19:39.496604669 +0100 +++ /var/tmp/diff_new_pack.xT6Ee8/_new 2024-01-17 22:19:39.500604816 +0100 @@ -1,5 +1,5 @@ name: fortio -version: 1.63.1 -mtime: 1703016472 -commit: 63083144350d8b9acabd2908a51b2953c9f83262 +version: 1.63.2 +mtime: 1705355587 +commit: a9a6b4e2e89f813e7f18a0f15270b02e6d3f26af ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/mkerrors.sh new/vendor/golang.org/x/sys/unix/mkerrors.sh --- old/vendor/golang.org/x/sys/unix/mkerrors.sh 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/mkerrors.sh 2024-01-17 08:23:48.000000000 +0100 @@ -248,6 +248,7 @@ #include <linux/module.h> #include <linux/mount.h> #include <linux/netfilter/nfnetlink.h> +#include <linux/netfilter/nf_tables.h> #include <linux/netlink.h> #include <linux/net_namespace.h> #include <linux/nfc.h> @@ -283,10 +284,6 @@ #include <asm/termbits.h> #endif -#ifndef MSG_FASTOPEN -#define MSG_FASTOPEN 0x20000000 -#endif - #ifndef PTRACE_GETREGS #define PTRACE_GETREGS 0xc #endif @@ -295,14 +292,6 @@ #define PTRACE_SETREGS 0xd #endif -#ifndef SOL_NETLINK -#define SOL_NETLINK 270 -#endif - -#ifndef SOL_SMC -#define SOL_SMC 286 -#endif - #ifdef SOL_BLUETOOTH // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h // but it is already in bluetooth_linux.go @@ -319,10 +308,23 @@ #undef TIPC_WAIT_FOREVER #define TIPC_WAIT_FOREVER 0xffffffff -// Copied from linux/l2tp.h -// Including linux/l2tp.h here causes conflicts between linux/in.h -// and netinet/in.h included via net/route.h above. -#define IPPROTO_L2TP 115 +// Copied from linux/netfilter/nf_nat.h +// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h +// and netinet/in.h. +#define NF_NAT_RANGE_MAP_IPS (1 << 0) +#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) +#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) +#define NF_NAT_RANGE_PERSISTENT (1 << 3) +#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) +#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) +#define NF_NAT_RANGE_NETMAP (1 << 6) +#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ + (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) +#define NF_NAT_RANGE_MASK \ + (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ + NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ + NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ + NF_NAT_RANGE_NETMAP) // Copied from linux/hid.h. // Keep in sync with the size of the referenced fields. @@ -603,6 +605,9 @@ $2 ~ /^FSOPT_/ || $2 ~ /^WDIO[CFS]_/ || $2 ~ /^NFN/ || + $2 !~ /^NFT_META_IIFTYPE/ && + $2 ~ /^NFT_/ || + $2 ~ /^NF_NAT_/ || $2 ~ /^XDP_/ || $2 ~ /^RWF_/ || $2 ~ /^(HDIO|WIN|SMART)_/ || diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux.go new/vendor/golang.org/x/sys/unix/zerrors_linux.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux.go 2024-01-17 08:23:49.000000000 +0100 @@ -2127,6 +2127,60 @@ NFNL_SUBSYS_QUEUE = 0x3 NFNL_SUBSYS_ULOG = 0x4 NFS_SUPER_MAGIC = 0x6969 + NFT_CHAIN_FLAGS = 0x7 + NFT_CHAIN_MAXNAMELEN = 0x100 + NFT_CT_MAX = 0x17 + NFT_DATA_RESERVED_MASK = 0xffffff00 + NFT_DATA_VALUE_MAXLEN = 0x40 + NFT_EXTHDR_OP_MAX = 0x4 + NFT_FIB_RESULT_MAX = 0x3 + NFT_INNER_MASK = 0xf + NFT_LOGLEVEL_MAX = 0x8 + NFT_NAME_MAXLEN = 0x100 + NFT_NG_MAX = 0x1 + NFT_OBJECT_CONNLIMIT = 0x5 + NFT_OBJECT_COUNTER = 0x1 + NFT_OBJECT_CT_EXPECT = 0x9 + NFT_OBJECT_CT_HELPER = 0x3 + NFT_OBJECT_CT_TIMEOUT = 0x7 + NFT_OBJECT_LIMIT = 0x4 + NFT_OBJECT_MAX = 0xa + NFT_OBJECT_QUOTA = 0x2 + NFT_OBJECT_SECMARK = 0x8 + NFT_OBJECT_SYNPROXY = 0xa + NFT_OBJECT_TUNNEL = 0x6 + NFT_OBJECT_UNSPEC = 0x0 + NFT_OBJ_MAXNAMELEN = 0x100 + NFT_OSF_MAXGENRELEN = 0x10 + NFT_QUEUE_FLAG_BYPASS = 0x1 + NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 + NFT_QUEUE_FLAG_MASK = 0x3 + NFT_REG32_COUNT = 0x10 + NFT_REG32_SIZE = 0x4 + NFT_REG_MAX = 0x4 + NFT_REG_SIZE = 0x10 + NFT_REJECT_ICMPX_MAX = 0x3 + NFT_RT_MAX = 0x4 + NFT_SECMARK_CTX_MAXLEN = 0x100 + NFT_SET_MAXNAMELEN = 0x100 + NFT_SOCKET_MAX = 0x3 + NFT_TABLE_F_MASK = 0x3 + NFT_TABLE_MAXNAMELEN = 0x100 + NFT_TRACETYPE_MAX = 0x3 + NFT_TUNNEL_F_MASK = 0x7 + NFT_TUNNEL_MAX = 0x1 + NFT_TUNNEL_MODE_MAX = 0x2 + NFT_USERDATA_MAXLEN = 0x100 + NFT_XFRM_KEY_MAX = 0x6 + NF_NAT_RANGE_MAP_IPS = 0x1 + NF_NAT_RANGE_MASK = 0x7f + NF_NAT_RANGE_NETMAP = 0x40 + NF_NAT_RANGE_PERSISTENT = 0x8 + NF_NAT_RANGE_PROTO_OFFSET = 0x20 + NF_NAT_RANGE_PROTO_RANDOM = 0x4 + NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 + NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 + NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 NILFS_SUPER_MAGIC = 0x3434 NL0 = 0x0 NL1 = 0x100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go 2024-01-17 08:23:49.000000000 +0100 @@ -2297,5 +2297,3 @@ var libc_unveil_trampoline_addr uintptr //go:cgo_import_dynamic libc_unveil unveil "libc.so" - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go new/vendor/golang.org/x/sys/windows/syscall_windows.go --- old/vendor/golang.org/x/sys/windows/syscall_windows.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/windows/syscall_windows.go 2024-01-17 08:23:49.000000000 +0100 @@ -194,6 +194,7 @@ //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW //sys SetEndOfFile(handle Handle) (err error) +//sys SetFileValidData(handle Handle, validDataLength int64) (err error) //sys GetSystemTimeAsFileTime(time *Filetime) //sys GetSystemTimePreciseAsFileTime(time *Filetime) //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/zsyscall_windows.go new/vendor/golang.org/x/sys/windows/zsyscall_windows.go --- old/vendor/golang.org/x/sys/windows/zsyscall_windows.go 2023-12-20 13:57:33.000000000 +0100 +++ new/vendor/golang.org/x/sys/windows/zsyscall_windows.go 2024-01-17 08:23:49.000000000 +0100 @@ -342,6 +342,7 @@ procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") + procSetFileValidData = modkernel32.NewProc("SetFileValidData") procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") procSetErrorMode = modkernel32.NewProc("SetErrorMode") procSetEvent = modkernel32.NewProc("SetEvent") @@ -2985,6 +2986,14 @@ if r1 == 0 { err = errnoErr(e1) } + return +} + +func SetFileValidData(handle Handle, validDataLength int64) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) + if r1 == 0 { + err = errnoErr(e1) + } return } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2023-12-20 13:57:34.000000000 +0100 +++ new/vendor/modules.txt 2024-01-17 08:23:49.000000000 +0100 @@ -52,7 +52,7 @@ ## explicit; go 1.20 golang.org/x/exp/constraints golang.org/x/exp/slices -# golang.org/x/net v0.19.0 +# golang.org/x/net v0.20.0 ## explicit; go 1.18 golang.org/x/net/context golang.org/x/net/http/httpguts @@ -62,7 +62,7 @@ golang.org/x/net/idna golang.org/x/net/internal/timeseries golang.org/x/net/trace -# golang.org/x/sys v0.15.0 +# golang.org/x/sys v0.16.0 ## explicit; go 1.18 golang.org/x/sys/unix golang.org/x/sys/windows