Diff of the two buildlogs: -- --- b1/build.log 2024-01-10 12:28:59.846995437 +0000 +++ b2/build.log 2024-01-10 12:59:19.240588251 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jan 10 00:19:20 -12 2024 -I: pbuilder-time-stamp: 1704889160 +I: Current time: Thu Jan 11 02:29:18 +14 2024 +I: pbuilder-time-stamp: 1704889758 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -28,49 +28,81 @@ dpkg-source: info: applying fix-ftbfs.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/31911/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/D01_modify_environment starting +debug: Running on cbxi4b. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jan 10 12:31 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='364bf985d331479eb2dd0708377c3b40' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='31911' - PS1='# ' - PS2='> ' + INVOCATION_ID=8bf893c1729b4a01b745e4de7d796eee + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2653 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.eNTuua1n/pbuilderrc_ieYn --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.eNTuua1n/b1 --logfile b1/build.log golang-github-tideland-golib_4.24.2-1.dsc' - SUDO_GID='114' - SUDO_UID='108' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.eNTuua1n/pbuilderrc_21HU --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.eNTuua1n/b2 --logfile b2/build.log golang-github-tideland-golib_4.24.2-1.dsc' + SUDO_GID=116 + SUDO_UID=112 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt64a 6.1.0-17-arm64 #1 SMP Debian 6.1.69-1 (2023-12-30) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-17-armmp #1 SMP Debian 6.1.69-1 (2023-12-30) armv7l GNU/Linux I: ls -l /bin total 4964 -rwxr-xr-x 1 root root 838488 Apr 23 2023 bash @@ -130,7 +162,7 @@ -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir -rwxr-xr-x 1 root root 14152 Jul 28 23:46 run-parts -rwxr-xr-x 1 root root 133372 Jan 5 2023 sed - lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash + lrwxrwxrwx 1 root root 9 Jan 10 12:31 sh -> /bin/bash -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty -rwsr-xr-x 1 root root 50800 Mar 23 2023 su @@ -156,7 +188,7 @@ -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew -I: user script /srv/workspace/pbuilder/31911/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -232,7 +264,7 @@ Get: 34 http://deb.debian.org/debian bookworm/main armhf golang-src all 2:1.19~1 [5756 B] Get: 35 http://deb.debian.org/debian bookworm/main armhf golang-go armhf 2:1.19~1 [45.0 kB] Get: 36 http://deb.debian.org/debian bookworm/main armhf golang-any armhf 2:1.19~1 [5876 B] -Fetched 93.3 MB in 17s (5617 kB/s) +Fetched 93.3 MB in 29s (3247 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sensible-utils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 17881 files and directories currently installed.) @@ -396,7 +428,11 @@ fakeroot is already the newest version (1.31-1.2). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/golang-github-tideland-golib-4.24.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../golang-github-tideland-golib_4.24.2-1_source.changes +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bookworm +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/golang-github-tideland-golib-4.24.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../golang-github-tideland-golib_4.24.2-1_source.changes dpkg-buildpackage: info: source package golang-github-tideland-golib dpkg-buildpackage: info: source version 4.24.2-1 dpkg-buildpackage: info: source distribution unstable @@ -414,28 +450,27 @@ dh_autoreconf -O--buildsystem=golang dh_auto_configure -O--buildsystem=golang dh_auto_build -O--buildsystem=golang - cd obj-arm-linux-gnueabihf && go install -trimpath -v -p 3 github.com/tideland/golib/audit github.com/tideland/golib/cache github.com/tideland/golib/collections github.com/tideland/golib/errors github.com/tideland/golib/etc github.com/tideland/golib/feed/atom github.com/tideland/golib/feed/rss github.com/tideland/golib/feed/utils github.com/tideland/golib/gjp github.com/tideland/golib/identifier github.com/tideland/golib/logger github.com/tideland/golib/loop github.com/tideland/golib/mapreduce github.com/tideland/golib/monitoring github.com/tideland/golib/numerics github.com/tideland/golib/redis github.com/tideland/golib/scene github.com/tideland/golib/scroller github.com/tideland/golib/sml github.com/tideland/golib/sort github.com/tideland/golib/stringex github.com/tideland/golib/timex github.com/tideland/golib/version -internal/goarch + cd obj-arm-linux-gnueabihf && go install -trimpath -v -p 4 github.com/tideland/golib/audit github.com/tideland/golib/cache github.com/tideland/golib/collections github.com/tideland/golib/errors github.com/tideland/golib/etc github.com/tideland/golib/feed/atom github.com/tideland/golib/feed/rss github.com/tideland/golib/feed/utils github.com/tideland/golib/gjp github.com/tideland/golib/identifier github.com/tideland/golib/logger github.com/tideland/golib/loop github.com/tideland/golib/mapreduce github.com/tideland/golib/monitoring github.com/tideland/golib/numerics github.com/tideland/golib/redis github.com/tideland/golib/scene github.com/tideland/golib/scroller github.com/tideland/golib/sml github.com/tideland/golib/sort github.com/tideland/golib/stringex github.com/tideland/golib/timex github.com/tideland/golib/version internal/unsafeheader -internal/cpu -internal/abi internal/goexperiment +internal/goarch internal/goos +runtime/internal/syscall +internal/cpu +internal/abi runtime/internal/math runtime/internal/sys -runtime/internal/syscall internal/race -internal/bytealg -runtime/internal/atomic sync/atomic unicode unicode/utf8 +internal/bytealg +runtime/internal/atomic math/bits -runtime -math crypto/internal/subtle crypto/subtle internal/itoa +math crypto/internal/boring/sig internal/nettrace encoding @@ -443,87 +478,88 @@ unicode/utf16 vendor/golang.org/x/crypto/cryptobyte/asn1 vendor/golang.org/x/crypto/internal/subtle +runtime internal/reflectlite sync +internal/singleflight internal/testlog math/rand -internal/singleflight runtime/cgo errors sort io strconv -bytes -hash -crypto/internal/randutil internal/oserror syscall -crypto +bytes +hash reflect -internal/syscall/unix -time -internal/poll -encoding/binary -crypto/cipher -internal/fmtsort +crypto +crypto/internal/randutil internal/safefilepath -crypto/internal/boring -internal/syscall/execenv path strings +internal/syscall/unix +time +internal/syscall/execenv +regexp/syntax +vendor/golang.org/x/net/dns/dnsmessage +internal/poll io/fs +regexp os -regexp/syntax +encoding/binary +internal/fmtsort +context +bufio +crypto/cipher +crypto/md5 +html fmt +crypto/internal/boring path/filepath -regexp -math/big -github.com/tideland/golib/errors -crypto/md5 crypto/sha1 -encoding/hex -context -vendor/golang.org/x/net/dns/dnsmessage -crypto/rand internal/godebug -github.com/tideland/golib/audit +io/ioutil internal/intern +hash/crc32 net/netip +crypto/aes +crypto/des +crypto/sha512 +crypto/internal/nistec/fiat +crypto/internal/edwards25519/field +math/big +github.com/tideland/golib/errors +encoding/hex +net log -io/ioutil github.com/tideland/golib/collections -bufio encoding/xml -html -github.com/tideland/golib/sml -github.com/tideland/golib/feed/utils +crypto/rand compress/flate -hash/crc32 -crypto/aes -crypto/des -crypto/internal/nistec/fiat +github.com/tideland/golib/audit compress/gzip -net +github.com/tideland/golib/sml +github.com/tideland/golib/feed/utils +crypto/internal/nistec crypto/internal/boring/bbig -crypto/sha512 encoding/asn1 -vendor/golang.org/x/crypto/cryptobyte -crypto/internal/edwards25519/field crypto/internal/edwards25519 -crypto/internal/nistec crypto/ed25519 +crypto/elliptic +vendor/golang.org/x/crypto/cryptobyte crypto/hmac crypto/rc4 crypto/rsa -crypto/elliptic crypto/sha256 -crypto/dsa crypto/ecdsa +crypto/dsa crypto/x509/pkix encoding/base64 net/url -encoding/pem vendor/golang.org/x/crypto/chacha20 +encoding/pem vendor/golang.org/x/crypto/internal/poly1305 vendor/golang.org/x/crypto/curve25519/internal/field vendor/golang.org/x/crypto/chacha20poly1305 @@ -531,47 +567,47 @@ vendor/golang.org/x/crypto/curve25519 vendor/golang.org/x/text/transform vendor/golang.org/x/text/unicode/bidi -vendor/golang.org/x/text/unicode/norm -vendor/golang.org/x/text/secure/bidirule vendor/golang.org/x/net/http2/hpack -mime github.com/tideland/golib/identifier +vendor/golang.org/x/text/unicode/norm log/syslog -github.com/tideland/golib/logger crypto/x509 -vendor/golang.org/x/net/idna +github.com/tideland/golib/logger +vendor/golang.org/x/text/secure/bidirule +net/textproto github.com/tideland/golib/loop github.com/tideland/golib/cache github.com/tideland/golib/stringex -net/textproto -vendor/golang.org/x/net/http/httpguts -vendor/golang.org/x/net/http/httpproxy -crypto/tls -mime/quotedprintable -mime/multipart github.com/tideland/golib/etc +mime +vendor/golang.org/x/net/idna +mime/quotedprintable net/http/internal +crypto/tls +mime/multipart net/http/internal/ascii encoding/json hash/adler32 github.com/tideland/golib/mapreduce -net/http/httptrace github.com/tideland/golib/monitoring -net/http +vendor/golang.org/x/net/http/httpguts github.com/tideland/golib/numerics -github.com/tideland/golib/gjp -github.com/tideland/golib/scene +vendor/golang.org/x/net/http/httpproxy github.com/tideland/golib/redis +github.com/tideland/golib/scene +github.com/tideland/golib/gjp github.com/tideland/golib/scroller github.com/tideland/golib/sort github.com/tideland/golib/timex github.com/tideland/golib/version +net/http/httptrace +net/http github.com/tideland/golib/feed/atom github.com/tideland/golib/feed/rss debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/golang-github-tideland-golib-4.24.2' dh_auto_test -- -short - cd obj-arm-linux-gnueabihf && go test -vet=off -v -p 3 -short github.com/tideland/golib/audit github.com/tideland/golib/cache github.com/tideland/golib/collections github.com/tideland/golib/errors github.com/tideland/golib/etc github.com/tideland/golib/feed/atom github.com/tideland/golib/feed/rss github.com/tideland/golib/feed/utils github.com/tideland/golib/gjp github.com/tideland/golib/identifier github.com/tideland/golib/logger github.com/tideland/golib/loop github.com/tideland/golib/mapreduce github.com/tideland/golib/monitoring github.com/tideland/golib/numerics github.com/tideland/golib/redis github.com/tideland/golib/scene github.com/tideland/golib/scroller github.com/tideland/golib/sml github.com/tideland/golib/sort github.com/tideland/golib/stringex github.com/tideland/golib/timex github.com/tideland/golib/version + cd obj-arm-linux-gnueabihf && go test -vet=off -v -p 4 -short github.com/tideland/golib/audit github.com/tideland/golib/cache github.com/tideland/golib/collections github.com/tideland/golib/errors github.com/tideland/golib/etc github.com/tideland/golib/feed/atom github.com/tideland/golib/feed/rss github.com/tideland/golib/feed/utils github.com/tideland/golib/gjp github.com/tideland/golib/identifier github.com/tideland/golib/logger github.com/tideland/golib/loop github.com/tideland/golib/mapreduce github.com/tideland/golib/monitoring github.com/tideland/golib/numerics github.com/tideland/golib/redis github.com/tideland/golib/scene github.com/tideland/golib/scroller github.com/tideland/golib/sml github.com/tideland/golib/sort github.com/tideland/golib/stringex github.com/tideland/golib/timex github.com/tideland/golib/version === RUN TestAssertTrue asserts_test.go:485: testing assert "true" failed: 'false' (bool) <> 'true' (bool) [should fail and be logged] --- PASS: TestAssertTrue (0.00s) @@ -587,7 +623,7 @@ === RUN TestAssertEqual asserts_test.go:485: testing assert "equal" failed: 'one' (string) <> '1' (int) [should fail and be logged] asserts_test.go:485: testing assert "equal" failed: 'two' (string) <> '2' (string) [should fail and be logged] ---- PASS: TestAssertEqual (0.00s) +--- PASS: TestAssertEqual (0.02s) === RUN TestAssertDifferent asserts_test.go:485: testing assert "different" failed: 'one' (string) <> 'one' (string) [should fail and be logged] asserts_test.go:485: testing assert "different" failed: '2' (int) <> '2' (int) [should fail and be logged] @@ -595,19 +631,19 @@ === RUN TestAssertAbout asserts_test.go:485: testing assert "about" failed: '0.8' (float64) <> '1' (float64) [different, out of bounds of extent] asserts_test.go:485: testing assert "about" failed: '1.2' (float64) <> '1' (float64) [different, out of bounds of extent] ---- PASS: TestAssertAbout (0.00s) +--- PASS: TestAssertAbout (0.03s) === RUN TestAssertRange asserts_test.go:485: testing assert "range" failed: '1' (uint8) <> '&{10 20}' (ptr to audit.lowHigh) [byte out of range] asserts_test.go:485: testing assert "range" failed: '1' (int) <> '&{10 20}' (ptr to audit.lowHigh) [int out of range] asserts_test.go:485: testing assert "range" failed: '1' (float64) <> '&{10 20}' (ptr to audit.lowHigh) [float64 out of range] asserts_test.go:485: testing assert "range" failed: '97' (int32) <> '&{120 122}' (ptr to audit.lowHigh) [rune out of range] asserts_test.go:485: testing assert "range" failed: 'aaa' (string) <> '&{uuuuu zzzzz}' (ptr to audit.lowHigh) [string out of range] - asserts_test.go:485: testing assert "range" failed: '2024-01-10 12:27:46.251744006 +0000 UTC m=+0.002238131' (struct Time) <> '&{{13934068250833932038 60002238131 0x25b1d0} {13934072051879988998 3600002238131 0x25b1d0}}' (ptr to audit.lowHigh) [time out of range] + asserts_test.go:485: testing assert "range" failed: '2024-01-10 12:50:49.249829742 +0000 UTC m=+0.076900118' (struct Time) <> '&{{13934069735816960366 60076900118 0x25b1d0} {13934073536863017326 3600076900118 0x25b1d0}}' (ptr to audit.lowHigh) [time out of range] asserts_test.go:485: testing assert "range" failed: '1s' (int64) <> '&{60000000000 3600000000000}' (ptr to audit.lowHigh) [duration in range] asserts_test.go:485: testing assert "range" failed: '[1 2 3]' (slice of int) <> '&{5 10}' (ptr to audit.lowHigh) [slice length out of range] asserts_test.go:485: testing assert "range" failed: '[1 2 3]' (array of int) <> '&{5 10}' (ptr to audit.lowHigh) [array length out of range] asserts_test.go:485: testing assert "range" failed: 'map[1:3 2:2 3:1]' (map of int) <> '&{5 10}' (ptr to audit.lowHigh) [map length out of range] ---- PASS: TestAssertRange (0.00s) +--- PASS: TestAssertRange (0.07s) === RUN TestAssertContents asserts_test.go:485: testing assert "contents" failed: '4711' (int) <> 'foo' (string) asserts_test.go:485: testing assert "contents" failed: '4711' (int) <> '[1 2 3 4711 5 6 7 8 9]' (slice of interface {}) @@ -647,7 +683,7 @@ === RUN TestAssertCase asserts_test.go:485: testing assert "case" failed: 'Foo' (string) <> 'FOO' (string) [is mixed case] asserts_test.go:485: testing assert "case" failed: 'Foo' (string) <> 'foo' (string) [is mixed case] ---- PASS: TestAssertCase (0.00s) +--- PASS: TestAssertCase (0.14s) === RUN TestAssertMatch asserts_test.go:485: testing assert "match" failed: 'this is assert test' (string) <> 'foo' (string) [should fail and be logged] asserts_test.go:485: testing assert "match" failed: 'this is assert test' (string) <> 'this*test' (string) [should fail and be logged] @@ -679,24 +715,24 @@ asserts_test.go:485: testing assert "length" failed: '9' (int) <> '0' (int) [should fail and be logged] asserts_test.go:485: testing assert "length" failed: '3' (int) <> '10' (int) [should also fail and be logged] asserts_test.go:485: testing assert "length" failed: 'bool' (string) <> '1' (int) [obtained bool is no array, chan, map, slice, string or understands Len()] ---- PASS: TestAssertLength (0.00s) +--- PASS: TestAssertLength (0.09s) === RUN TestAssertPanics asserts_test.go:485: testing assert "panics" failed: 'func ()' (string) <> '' (invalid) [should not panic] --- PASS: TestAssertPanics (0.00s) === RUN TestAssertPathExists asserts_test.go:485: testing assert "path exists" failed: '/this/path/will/hopefully/not/exist' (string) <> 'true' (bool) [illegal path] ---- PASS: TestAssertPathExists (0.00s) +--- PASS: TestAssertPathExists (0.01s) === RUN TestAssertWait asserts_test.go:485: testing assert "wait" failed: 'false' (bool) <> 'true' (bool) [should be false] asserts_test.go:485: testing assert "wait" failed: 'timeout 100ms' (string) <> 'signal true' (string) [should timeout] ---- PASS: TestAssertWait (0.20s) +--- PASS: TestAssertWait (0.21s) === RUN TestAssertWaitTested asserts_test.go:485: testing assert "nil" failed: 'illegal value' (ptr to errors.errorString) <> '' (invalid) [should be false] asserts_test.go:485: testing assert "wait" failed: 'timeout 100ms' (string) <> 'signal true' (string) [should timeout] ---- PASS: TestAssertWaitTested (0.20s) +--- PASS: TestAssertWaitTested (0.21s) === RUN TestAssertRetry - asserts_test.go:485: testing assert "retry" failed: 'timeout after 102.606525ms and 10 retries' (string) <> 'successful call' (string) [should fail] ---- PASS: TestAssertRetry (0.14s) + asserts_test.go:485: testing assert "retry" failed: 'timeout after 136.257552ms and 10 retries' (string) <> 'successful call' (string) [should fail] +--- PASS: TestAssertRetry (0.18s) === RUN TestAssertFail asserts_test.go:485: testing assert "fail" failed: '' (invalid) <> '' (invalid) [this should fail] --- PASS: TestAssertFail (0.00s) @@ -743,87 +779,79 @@ --- PASS: TestSetFailable/success (0.00s) --- PASS: TestSetFailable/fail (0.00s) === RUN TestTempDirCreate ---- PASS: TestTempDirCreate (0.00s) +--- PASS: TestTempDirCreate (0.05s) === RUN TestTempDirRestore ---- PASS: TestTempDirRestore (0.00s) +--- PASS: TestTempDirRestore (0.01s) === RUN TestEnvVarsSet --- PASS: TestEnvVarsSet (0.00s) === RUN TestEnvVarsRestore --- PASS: TestEnvVarsRestore (0.00s) === RUN TestBuildDate ---- PASS: TestBuildDate (0.00s) +--- PASS: TestBuildDate (0.01s) === RUN TestInts ---- PASS: TestInts (0.01s) +--- PASS: TestInts (0.13s) === RUN TestOneOf ---- PASS: TestOneOf (0.01s) +--- PASS: TestOneOf (0.09s) === RUN TestWords ---- PASS: TestWords (0.02s) +--- PASS: TestWords (0.31s) === RUN TestPattern --- PASS: TestPattern (0.00s) === RUN TestText ---- PASS: TestText (0.56s) +--- PASS: TestText (11.85s) === RUN TestName ---- PASS: TestName (3.37s) +--- PASS: TestName (35.45s) === RUN TestDomain ---- PASS: TestDomain (0.01s) +--- PASS: TestDomain (0.05s) === RUN TestURL ---- PASS: TestURL (1.81s) +--- PASS: TestURL (13.40s) === RUN TestEMail ---- PASS: TestEMail (1.11s) +--- PASS: TestEMail (8.97s) === RUN TestTimes ---- PASS: TestTimes (4.24s) +--- PASS: TestTimes (5.39s) PASS -ok github.com/tideland/golib/audit 11.708s +ok github.com/tideland/golib/audit 77.162s === RUN TestNoLoader --- PASS: TestNoLoader (0.00s) === RUN TestLoader -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loader" starts -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loader" stopped +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loader" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loader" stopped --- PASS: TestLoader (0.00s) === RUN TestLoading -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loading" starts -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loading" stopped ---- PASS: TestLoading (0.06s) +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loading" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::loading" stopped +--- PASS: TestLoading (0.07s) === RUN TestConcurrentLoading -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::concurrent-loading" starts -cache_test.go:118 func1(): Goroutine 44 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 11 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 9 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 10 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 17 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 12 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 13 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 14 loaded "/concurrent" +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::concurrent-loading" starts +cache_test.go:118 func1(): Goroutine 98 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 15 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 16 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 27 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 62 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 18 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 19 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 20 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 21 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 65 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 22 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 23 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 24 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 25 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 40 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 71 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 26 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 45 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 28 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 74 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 29 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 30 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 31 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 77 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 32 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 33 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 34 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 35 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 80 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 36 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 37 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 38 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 99 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 9 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 92 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 39 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 40 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 96 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 97 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 11 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 12 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 13 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 14 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 41 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 42 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 43 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 99 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 44 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 45 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 46 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 47 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 48 loaded "/concurrent" @@ -840,26 +868,36 @@ cache_test.go:118 func1(): Goroutine 59 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 60 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 61 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 62 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 63 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 16 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 17 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 81 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 64 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 65 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 19 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 20 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 21 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 66 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 67 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 68 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 69 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 70 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 71 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 23 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 24 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 25 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 72 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 73 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 74 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 27 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 63 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 28 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 75 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 76 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 77 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 30 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 31 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 78 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 79 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 80 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 81 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 33 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 34 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 35 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 90 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 82 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 83 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 84 loaded "/concurrent" @@ -868,52 +906,50 @@ cache_test.go:118 func1(): Goroutine 87 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 88 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 89 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 90 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 94 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 91 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 92 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 10 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 37 loaded "/concurrent" +cache_test.go:118 func1(): Goroutine 38 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 93 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 94 loaded "/concurrent" cache_test.go:118 func1(): Goroutine 95 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 96 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 97 loaded "/concurrent" -cache_test.go:118 func1(): Goroutine 98 loaded "/concurrent" -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::concurrent-loading" stopped ---- PASS: TestConcurrentLoading (0.06s) +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::concurrent-loading" stopped +--- PASS: TestConcurrentLoading (0.07s) === RUN TestOutdatingFail -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-fail" starts -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-fail" stopped ---- PASS: TestOutdatingFail (0.05s) +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-fail" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-fail" stopped +--- PASS: TestOutdatingFail (0.06s) === RUN TestOutdatingReload -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload" starts -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload" stopped +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload" stopped --- PASS: TestOutdatingReload (0.10s) === RUN TestOutdatingReloadError -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload-error" starts -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload-error" stopped ---- PASS: TestOutdatingReloadError (0.10s) +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload-error" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::outdating-reload-error" stopped +--- PASS: TestOutdatingReloadError (0.11s) === RUN TestDiscarding -2024-01-10 12:28:03 Z [INFO] [github.com/tideland/golib/loop] loop "cache::discarding" starts -2024-01-10 12:28:04 Z [INFO] [github.com/tideland/golib/loop] loop "cache::discarding" stopped +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::discarding" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::discarding" stopped --- PASS: TestDiscarding (0.21s) === RUN TestCleanup -2024-01-10 12:28:04 Z [INFO] [github.com/tideland/golib/loop] loop "cache::cleanup" starts +2024-01-10 12:52:46 Z [INFO] [github.com/tideland/golib/loop] loop "cache::cleanup" starts cache_test.go:247 TestCleanup(): 1st: 7 > 2nd: 0 -2024-01-10 12:28:07 Z [INFO] [github.com/tideland/golib/loop] loop "cache::cleanup" stopped ---- PASS: TestCleanup (3.10s) +2024-01-10 12:52:50 Z [INFO] [github.com/tideland/golib/loop] loop "cache::cleanup" stopped +--- PASS: TestCleanup (3.12s) === RUN TestClear -2024-01-10 12:28:07 Z [INFO] [github.com/tideland/golib/loop] loop "cache::clear" starts +2024-01-10 12:52:50 Z [INFO] [github.com/tideland/golib/loop] loop "cache::clear" starts cache_test.go:271 TestClear(): 1st: 50 > 2nd: 0 -2024-01-10 12:28:09 Z [INFO] [github.com/tideland/golib/loop] loop "cache::clear" stopped ---- PASS: TestClear (2.58s) +2024-01-10 12:52:52 Z [INFO] [github.com/tideland/golib/loop] loop "cache::clear" stopped +--- PASS: TestClear (2.60s) === RUN TestFileLoader loader_test.go:57 TestFileLoader(): test #0: fa with size 1 mb loader_test.go:57 TestFileLoader(): test #1: fb with size 2 mb loader_test.go:57 TestFileLoader(): test #2: fc with size 3 mb loader_test.go:57 TestFileLoader(): test #3: fd with size 4 mb loader_test.go:57 TestFileLoader(): test #4: fe with size 5 mb ---- PASS: TestFileLoader (0.85s) +--- PASS: TestFileLoader (17.91s) PASS -ok github.com/tideland/golib/cache 7.133s +ok github.com/tideland/golib/cache 24.474s === RUN TestRingBufferPush --- PASS: TestRingBufferPush (0.00s) === RUN TestRingBufferPop @@ -951,7 +987,7 @@ === RUN TestTreeCopy --- PASS: TestTreeCopy (0.00s) === RUN TestStringTreeCreate ---- PASS: TestStringTreeCreate (0.00s) +--- PASS: TestStringTreeCreate (0.03s) === RUN TestStringTreeRemove --- PASS: TestStringTreeRemove (0.00s) === RUN TestStringTreeSetValue @@ -967,13 +1003,13 @@ === RUN TestKeyValueTreeRemove --- PASS: TestKeyValueTreeRemove (0.00s) === RUN TestKeyValueTreeSetKey ---- PASS: TestKeyValueTreeSetKey (0.00s) +--- PASS: TestKeyValueTreeSetKey (0.03s) === RUN TestKeyValueTreeSetValue --- PASS: TestKeyValueTreeSetValue (0.00s) === RUN TestKeyValueTreeFind --- PASS: TestKeyValueTreeFind (0.00s) === RUN TestKeyValueTreeDo ---- PASS: TestKeyValueTreeDo (0.00s) +--- PASS: TestKeyValueTreeDo (0.03s) === RUN TestKeyValueTreeCopy --- PASS: TestKeyValueTreeCopy (0.00s) === RUN TestKeyStringValueTreeCreate @@ -987,11 +1023,11 @@ === RUN TestKeyStringValueTreeFind --- PASS: TestKeyStringValueTreeFind (0.00s) === RUN TestKeyStringValueTreeDo ---- PASS: TestKeyStringValueTreeDo (0.00s) +--- PASS: TestKeyStringValueTreeDo (0.02s) === RUN TestKeyStringValueTreeCopy --- PASS: TestKeyStringValueTreeCopy (0.00s) PASS -ok github.com/tideland/golib/collections 0.014s +ok github.com/tideland/golib/collections 0.336s === RUN TestIsError --- PASS: TestIsError (0.00s) === RUN TestValidation @@ -1003,25 +1039,25 @@ === RUN TestDoAll --- PASS: TestDoAll (0.00s) PASS -ok github.com/tideland/golib/errors 0.005s +ok github.com/tideland/golib/errors 0.072s === RUN TestRead ---- PASS: TestRead (0.00s) +--- PASS: TestRead (0.03s) === RUN TestReadFile ---- PASS: TestReadFile (0.00s) +--- PASS: TestReadFile (0.05s) === RUN TestWrite ---- PASS: TestWrite (0.00s) +--- PASS: TestWrite (0.04s) === RUN TestTemplates ---- PASS: TestTemplates (0.00s) +--- PASS: TestTemplates (0.09s) === RUN TestHasPath --- PASS: TestHasPath (0.00s) === RUN TestDo --- PASS: TestDo (0.00s) === RUN TestValueSuccess ---- PASS: TestValueSuccess (0.00s) +--- PASS: TestValueSuccess (0.02s) === RUN TestGetFail --- PASS: TestGetFail (0.00s) === RUN TestSplit ---- PASS: TestSplit (0.00s) +--- PASS: TestSplit (0.02s) === RUN TestDump --- PASS: TestDump (0.00s) === RUN TestApply @@ -1029,49 +1065,49 @@ === RUN TestContext --- PASS: TestContext (0.00s) PASS -ok github.com/tideland/golib/etc 0.019s +ok github.com/tideland/golib/etc 0.425s === RUN TestParseComposeTime --- PASS: TestParseComposeTime (0.00s) === RUN TestEncodeDecode ---- PASS: TestEncodeDecode (0.00s) +--- PASS: TestEncodeDecode (0.02s) === RUN TestGet atom_test.go:77: Network test skipped in short mode --- SKIP: TestGet (0.00s) PASS -ok github.com/tideland/golib/feed/atom 0.025s +ok github.com/tideland/golib/feed/atom 0.532s === RUN TestParseComposeTime --- PASS: TestParseComposeTime (0.00s) === RUN TestEncodeDecode ---- PASS: TestEncodeDecode (0.00s) +--- PASS: TestEncodeDecode (0.02s) === RUN TestValidate --- PASS: TestValidate (0.00s) === RUN TestGet rss_test.go:123: Network test skipped in short mode --- SKIP: TestGet (0.00s) PASS -ok github.com/tideland/golib/feed/rss 0.018s +ok github.com/tideland/golib/feed/rss 0.192s === RUN TestStripTags ---- PASS: TestStripTags (0.00s) +--- PASS: TestStripTags (0.02s) PASS -ok github.com/tideland/golib/feed/utils 0.020s +ok github.com/tideland/golib/feed/utils 0.168s === RUN TestParseError --- PASS: TestParseError (0.00s) === RUN TestClear ---- PASS: TestClear (0.00s) +--- PASS: TestClear (0.01s) === RUN TestLength --- PASS: TestLength (0.00s) === RUN TestProcessing gjp_test.go:82 func1(): path 01 => "/A" = "Level One" -gjp_test.go:82 func1(): path 02 => "/B/0/B" = "100" -gjp_test.go:82 func1(): path 03 => "/B/0/C" = "true" -gjp_test.go:82 func1(): path 04 => "/B/0/D/A" = "Level Three - 0" -gjp_test.go:82 func1(): path 05 => "/B/0/D/B" = "10.1" -gjp_test.go:82 func1(): path 06 => "/B/0/S/0" = "red" -gjp_test.go:82 func1(): path 07 => "/B/0/S/1" = "green" -gjp_test.go:82 func1(): path 08 => "/B/0/S/2" = "1" -gjp_test.go:82 func1(): path 09 => "/B/0/S/3" = "2.2" -gjp_test.go:82 func1(): path 10 => "/B/0/S/4" = "true" -gjp_test.go:82 func1(): path 11 => "/B/0/A" = "Level Two - 0" +gjp_test.go:82 func1(): path 02 => "/B/0/A" = "Level Two - 0" +gjp_test.go:82 func1(): path 03 => "/B/0/B" = "100" +gjp_test.go:82 func1(): path 04 => "/B/0/C" = "true" +gjp_test.go:82 func1(): path 05 => "/B/0/D/A" = "Level Three - 0" +gjp_test.go:82 func1(): path 06 => "/B/0/D/B" = "10.1" +gjp_test.go:82 func1(): path 07 => "/B/0/S/0" = "red" +gjp_test.go:82 func1(): path 08 => "/B/0/S/1" = "green" +gjp_test.go:82 func1(): path 09 => "/B/0/S/2" = "1" +gjp_test.go:82 func1(): path 10 => "/B/0/S/3" = "2.2" +gjp_test.go:82 func1(): path 11 => "/B/0/S/4" = "true" gjp_test.go:82 func1(): path 12 => "/B/1/A" = "Level Two - 1" gjp_test.go:82 func1(): path 13 => "/B/1/B" = "200" gjp_test.go:82 func1(): path 14 => "/B/1/C" = "false" @@ -1080,35 +1116,35 @@ gjp_test.go:82 func1(): path 17 => "/B/1/S/0" = "orange" gjp_test.go:82 func1(): path 18 => "/B/1/S/1" = "blue" gjp_test.go:82 func1(): path 19 => "/B/1/S/2" = "white" -gjp_test.go:82 func1(): path 20 => "/B/2/C" = "true" -gjp_test.go:82 func1(): path 21 => "/B/2/D/A" = "Level Three - 2" -gjp_test.go:82 func1(): path 22 => "/B/2/D/B" = "30.3" -gjp_test.go:82 func1(): path 23 => "/B/2/S" = "" -gjp_test.go:82 func1(): path 24 => "/B/2/A" = "Level Two - 2" -gjp_test.go:82 func1(): path 25 => "/B/2/B" = "300" +gjp_test.go:82 func1(): path 20 => "/B/2/B" = "300" +gjp_test.go:82 func1(): path 21 => "/B/2/C" = "true" +gjp_test.go:82 func1(): path 22 => "/B/2/D/A" = "Level Three - 2" +gjp_test.go:82 func1(): path 23 => "/B/2/D/B" = "30.3" +gjp_test.go:82 func1(): path 24 => "/B/2/S" = "" +gjp_test.go:82 func1(): path 25 => "/B/2/A" = "Level Two - 2" gjp_test.go:82 func1(): path 26 => "/D" = "5000000000" gjp_test.go:82 func1(): path 27 => "/T" = "2017-04-29T20:30:00Z" ---- PASS: TestProcessing (0.00s) +--- PASS: TestProcessing (0.01s) === RUN TestSeparator ---- PASS: TestSeparator (0.00s) +--- PASS: TestSeparator (0.01s) === RUN TestCompare ---- PASS: TestCompare (0.00s) +--- PASS: TestCompare (0.02s) === RUN TestString --- PASS: TestString (0.00s) === RUN TestInt --- PASS: TestInt (0.00s) === RUN TestFloat64 ---- PASS: TestFloat64 (0.00s) +--- PASS: TestFloat64 (0.01s) === RUN TestBool --- PASS: TestBool (0.00s) === RUN TestQuery ---- PASS: TestQuery (0.00s) +--- PASS: TestQuery (0.01s) === RUN TestBuilding ---- PASS: TestBuilding (0.00s) +--- PASS: TestBuilding (0.01s) === RUN TestMarshalJSON ---- PASS: TestMarshalJSON (0.01s) +--- PASS: TestMarshalJSON (0.00s) PASS -ok github.com/tideland/golib/gjp 0.052s +ok github.com/tideland/golib/gjp 0.209s === RUN TestTypeAsIdentifierPart --- PASS: TestTypeAsIdentifierPart (0.00s) === RUN TestIdentifier @@ -1116,17 +1152,17 @@ === RUN TestSepIdentifier --- PASS: TestSepIdentifier (0.00s) === RUN TestStandardUUID ---- PASS: TestStandardUUID (10.04s) +--- PASS: TestStandardUUID (101.27s) === RUN TestUUIDVersions -uuid_test.go:62 TestUUIDVersions(): UUID V1: f83d36bc-b3af-1e01-8702-273929f721f9 +uuid_test.go:62 TestUUIDVersions(): UUID V1: fb83f861-b7af-1e01-8635-33f26c0a6a38 uuid_test.go:67 TestUUIDVersions(): UUID V3: c4d91d8a-0d3e-3e3f-8dd6-924b8cc71909 -uuid_test.go:72 TestUUIDVersions(): UUID V4: fbcf0962-f554-4fbc-80e8-2b011ea956bc +uuid_test.go:72 TestUUIDVersions(): UUID V4: 3a51d339-b940-40c4-814c-d8f2266bd7fa uuid_test.go:77 TestUUIDVersions(): UUID V5: 479b560a-cc70-5da7-9009-dcda1e772b01 --- PASS: TestUUIDVersions (0.00s) === RUN TestUUIDByHex --- PASS: TestUUIDByHex (0.00s) PASS -ok github.com/tideland/golib/identifier 10.081s +ok github.com/tideland/golib/identifier 101.897s === RUN TestGetSetLevel --- PASS: TestGetSetLevel (0.00s) === RUN TestGetSetLevelString @@ -1134,247 +1170,247 @@ === RUN TestFiltering --- PASS: TestFiltering (0.00s) === RUN TestGoLogger -2024/01/10 12:28:13 [DEBUG] [github.com/tideland/golib/logger_test] (logger_test.go:TestGoLogger:146) Debug. -2024/01/10 12:28:13 [INFO] [github.com/tideland/golib/logger_test] Info. -2024/01/10 12:28:13 [WARNING] [github.com/tideland/golib/logger_test] Warning. -2024/01/10 12:28:13 [ERROR] [github.com/tideland/golib/logger_test] Error. -2024/01/10 12:28:13 [CRITICAL] [github.com/tideland/golib/logger_test] (logger_test.go:TestGoLogger:150) Critical. ---- PASS: TestGoLogger (0.00s) +2024/01/10 12:53:26 [DEBUG] [github.com/tideland/golib/logger_test] (logger_test.go:TestGoLogger:146) Debug. +2024/01/10 12:53:26 [INFO] [github.com/tideland/golib/logger_test] Info. +2024/01/10 12:53:26 [WARNING] [github.com/tideland/golib/logger_test] Warning. +2024/01/10 12:53:26 [ERROR] [github.com/tideland/golib/logger_test] Error. +2024/01/10 12:53:26 [CRITICAL] [github.com/tideland/golib/logger_test] (logger_test.go:TestGoLogger:150) Critical. +--- PASS: TestGoLogger (0.01s) === RUN TestSysLogger logger_test.go:156: Network test skipped in short mode ---- SKIP: TestSysLogger (0.00s) +--- SKIP: TestSysLogger (0.01s) === RUN TestFatalExit --- PASS: TestFatalExit (0.00s) PASS -ok github.com/tideland/golib/logger 0.028s +ok github.com/tideland/golib/logger 0.164s === RUN TestSimpleStop -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-stop" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-stop" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-stop" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-stop" stopped --- PASS: TestSimpleStop (0.00s) === RUN TestLogging ---- PASS: TestLogging (0.00s) +--- PASS: TestLogging (0.03s) === RUN TestSimpleRestart -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" stopped -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" restarts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" restarts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-restart" stopped --- PASS: TestSimpleRestart (0.00s) === RUN TestSimpleKill -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-kill" starts -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "simple-kill" stopped with error: ouch +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-kill" starts +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "simple-kill" stopped with error: ouch --- PASS: TestSimpleKill (0.00s) === RUN TestError -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "error" starts -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "error" stopped with error: internal loop error +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "error" starts +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "error" stopped with error: internal loop error --- PASS: TestError (0.00s) === RUN TestDeferredError -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "deferred-error" starts -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "deferred-error" stopped with error: deferred error +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "deferred-error" starts +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "deferred-error" stopped with error: deferred error --- PASS: TestDeferredError (0.00s) === RUN TestStopRecoverings -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "stop-recoverings" starts -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "stop-recoverings" tries to recover -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "stop-recoverings" recovered -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "stop-recoverings" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "stop-recoverings" starts +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "stop-recoverings" tries to recover +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "stop-recoverings" recovered +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "stop-recoverings" stopped --- PASS: TestStopRecoverings (0.00s) === RUN TestEndRecoverings -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "end-recoverings" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "end-recoverings" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "end-recoverings" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "end-recoverings" stopped --- PASS: TestEndRecoverings (0.00s) === RUN TestRecoveringsPanic -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" starts -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" stopped with error: too many panics ---- PASS: TestRecoveringsPanic (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" starts +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-panic" recovered +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" tries to recover +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-panic" stopped with error: too many panics +--- PASS: TestRecoveringsPanic (0.08s) === RUN TestRecoveringsError -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-error" starts -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-error" tries to recover -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-error" stopped with error: error +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "recoverings-error" starts +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-error" tries to recover +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "recoverings-error" stopped with error: error --- PASS: TestRecoveringsError (0.00s) === RUN TestDescription -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "one" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "two::three::four" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "two::three::four" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "one" stops observable "" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "one" stops observable "two::three::four" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "one" stopped ---- PASS: TestDescription (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "one" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "two::three::four" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "two::three::four" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "one" stops observable "two::three::four" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "one" stops observable "" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "one" stopped +--- PASS: TestDescription (0.04s) === RUN TestSimpleSentinel -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-sentinel" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "simple-sentinel" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "simple-sentinel" stops observable "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "simple-sentinel" stops observable "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "simple-sentinel" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-sentinel" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "simple-sentinel" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "simple-sentinel" stops observable "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "simple-sentinel" stops observable "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "simple-sentinel" stopped --- PASS: TestSimpleSentinel (0.00s) === RUN TestSentinelStoppingLoop -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-stopping-loop" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" stopped -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-stopping-loop" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-stopping-loop" stops observable "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-stopping-loop" stopped ---- PASS: TestSentinelStoppingLoop (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-stopping-loop" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-stopping-loop" stops observable "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-stopping-loop" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-stopping-loop" stopped +--- PASS: TestSentinelStoppingLoop (0.10s) === RUN TestSentineForget -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-forget" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::d" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::d" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-forget" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-forget" stops observable "loop::d" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-forget" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-forget" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::d" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::d" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-forget" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-forget" stops observable "loop::d" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-forget" stopped --- PASS: TestSentineForget (0.00s) === RUN TestSentinelKillingLoopNoHandler -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-no-handler" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] sentinel "sentinel-killing-loop-no-handler" kills all observables after error: bang! -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::a" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::b" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::c" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-no-handler" stopped with error: [LOOP:002] error handling for "loop::b" failed: bang! +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-no-handler" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] sentinel "sentinel-killing-loop-no-handler" kills all observables after error: bang! +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::b" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::c" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::a" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-no-handler" stopped with error: [LOOP:002] error handling for "loop::b" failed: bang! --- PASS: TestSentinelKillingLoopNoHandler (0.00s) === RUN TestSentinelKillingLoopHandlerRestarts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-handler-restarts" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" restarts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-handler-restarts" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-handler-restarts" stops observable "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-handler-restarts" stops observable "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-handler-restarts" stopped ---- PASS: TestSentinelKillingLoopHandlerRestarts (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-handler-restarts" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" restarts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-handler-restarts" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-handler-restarts" stops observable "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-handler-restarts" stops observable "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-handler-restarts" stopped +--- PASS: TestSentinelKillingLoopHandlerRestarts (0.08s) === RUN TestSentinelKillingLoopHandlerStops -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-with-stops" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] sentinel "sentinel-killing-loop-with-stops" kills all observables after error: oh no! -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::a" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::b" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::c" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-with-stops" stopped with error: [LOOP:002] error handling for "loop::b" failed: oh no! ---- PASS: TestSentinelKillingLoopHandlerStops (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-with-stops" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] sentinel "sentinel-killing-loop-with-stops" kills all observables after error: oh no! +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::c" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::a" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop.(*sentinel).backendLoop] killing "loop::b" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-with-stops" stopped with error: [LOOP:002] error handling for "loop::b" failed: oh no! +--- PASS: TestSentinelKillingLoopHandlerStops (0.01s) === RUN TestSentinelKillingLoopHandlerRestartAll -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-restarting-all" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" restarts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-restarting-all" stops observable "loop::c" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-restarting-all" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-restarting-all" stops observable "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-restarting-all" stopped ---- PASS: TestSentinelKillingLoopHandlerRestartAll (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-restarting-all" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::c" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::c" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "loop::b" stopped with error: bang! +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" restarts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-restarting-all" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-restarting-all" stops observable "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-killing-loop-restarting-all" stops observable "loop::c" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-killing-loop-restarting-all" stopped +--- PASS: TestSentinelKillingLoopHandlerRestartAll (0.03s) === RUN TestNestedSentinelKill -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::top" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::nested" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "nested-sentinel-kill::nested" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "nested-sentinel-kill::nested" stops observable "loop::b" -2024-01-10 12:28:18 Z [ERROR] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::nested" stopped with error: bang! -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] sentinel "nested-sentinel-kill::nested" restarts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::nested" restarts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::b" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" stopped -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "nested-sentinel-kill::top" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "nested-sentinel-kill::top" stops observable "nested-sentinel-kill::nested" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::top" stopped ---- PASS: TestNestedSentinelKill (0.00s) +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::top" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::nested" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "nested-sentinel-kill::nested" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "nested-sentinel-kill::nested" stops observable "loop::b" +2024-01-10 12:53:35 Z [ERROR] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::nested" stopped with error: bang! +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] sentinel "nested-sentinel-kill::nested" restarts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::nested" restarts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::b" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::b" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "nested-sentinel-kill::top" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "nested-sentinel-kill::top" stops observable "nested-sentinel-kill::nested" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "nested-sentinel-kill::top" stopped +--- PASS: TestNestedSentinelKill (0.04s) === RUN TestSentinelSwitch -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::b" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::a" stopped -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-switch::b" stops observable "loop::a" -2024-01-10 12:28:18 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::b" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::b" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "loop::a" starts +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] stopped observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] started observing "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::a" stopped +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop.(*sentinel).backendLoop] sentinel "sentinel-switch::b" stops observable "loop::a" +2024-01-10 12:53:35 Z [INFO] [github.com/tideland/golib/loop] loop "sentinel-switch::b" stopped --- PASS: TestSentinelSwitch (0.00s) PASS -ok github.com/tideland/golib/loop 0.053s +ok github.com/tideland/golib/loop 0.706s === RUN TestMapReduce ---- PASS: TestMapReduce (11.48s) +--- PASS: TestMapReduce (131.27s) PASS -ok github.com/tideland/golib/mapreduce 11.520s +ok github.com/tideland/golib/mapreduce 131.568s === RUN TestETMMonitor -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts ---- PASS: TestETMMonitor (0.14s) +2024-01-10 12:54:01 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts +--- PASS: TestETMMonitor (5.74s) === RUN TestSSIMonitor -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped ---- PASS: TestSSIMonitor (0.01s) +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped +--- PASS: TestSSIMonitor (0.11s) === RUN TestDSRMonitor -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped -2024-01-10 12:28:21 Z [ERROR] [github.com/tideland/golib/loop] loop "monitoring-backend" tries to recover -2024-01-10 12:28:21 Z [WARNING] [github.com/tideland/golib/monitoring] standard monitor recovered: runtime error: integer divide by zero -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" recovered ---- PASS: TestDSRMonitor (0.00s) +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped +2024-01-10 12:54:07 Z [ERROR] [github.com/tideland/golib/loop] loop "monitoring-backend" tries to recover +2024-01-10 12:54:07 Z [WARNING] [github.com/tideland/golib/monitoring] standard monitor recovered: runtime error: integer divide by zero +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" recovered +--- PASS: TestDSRMonitor (0.01s) === RUN TestInternalPanic -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped -2024-01-10 12:28:21 Z [ERROR] [github.com/tideland/golib/loop] loop "monitoring-backend" tries to recover -2024-01-10 12:28:21 Z [WARNING] [github.com/tideland/golib/monitoring] standard monitor recovered: ouch -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" recovered ---- PASS: TestInternalPanic (0.00s) +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped +2024-01-10 12:54:07 Z [ERROR] [github.com/tideland/golib/loop] loop "monitoring-backend" tries to recover +2024-01-10 12:54:07 Z [WARNING] [github.com/tideland/golib/monitoring] standard monitor recovered: ouch +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" recovered +--- PASS: TestInternalPanic (0.01s) === RUN TestBackendSwitch -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped -2024-01-10 12:28:21 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts ---- PASS: TestBackendSwitch (0.05s) +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" stopped +2024-01-10 12:54:07 Z [INFO] [github.com/tideland/golib/loop] loop "monitoring-backend" starts +--- PASS: TestBackendSwitch (0.07s) PASS -ok github.com/tideland/golib/monitoring 0.228s +ok github.com/tideland/golib/monitoring 6.167s === RUN TestSimplePoint --- PASS: TestSimplePoint (0.00s) === RUN TestSimplePointArray @@ -1394,7 +1430,7 @@ === RUN TestLeastSquaresFunction --- PASS: TestLeastSquaresFunction (0.00s) PASS -ok github.com/tideland/golib/numerics 0.167s +ok github.com/tideland/golib/numerics 0.071s === RUN TestSimpleKeyOperations commands_test.go:29: Redis test skipped in short mode --- SKIP: TestSimpleKeyOperations (0.00s) @@ -1421,7 +1457,7 @@ --- SKIP: TestSortedSet (0.00s) === RUN TestZScan commands_test.go:324: Redis test skipped in short mode ---- SKIP: TestZScan (0.00s) +--- SKIP: TestZScan (0.01s) === RUN TestTransactionConnection commands_test.go:367: Redis test skipped in short mode --- SKIP: TestTransactionConnection (0.00s) @@ -1447,105 +1483,105 @@ redis_test.go:87: Redis test skipped in short mode --- SKIP: TestPipelining (0.00s) === RUN TestOptions -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "redis::tmp-redis-sock::0" starts +2024-01-10 12:54:52 Z [INFO] [github.com/tideland/golib/loop] loop "redis::tmp-redis-sock::0" starts --- PASS: TestOptions (0.00s) === RUN TestConcurrency redis_test.go:145: Redis test skipped in short mode --- SKIP: TestConcurrency (0.00s) PASS -ok github.com/tideland/golib/redis 0.019s +ok github.com/tideland/golib/redis 0.198s === RUN TestSimpleNoTimeout -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ec4fc479-d6d8-4b5d-9057-328651745e96" starts -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ec4fc479-d6d8-4b5d-9057-328651745e96" stopped ---- PASS: TestSimpleNoTimeout (0.00s) +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::23cfeb37-cff9-4c16-854e-bcc399260be2" starts +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::23cfeb37-cff9-4c16-854e-bcc399260be2" stopped +--- PASS: TestSimpleNoTimeout (0.06s) === RUN TestAccessAfterStopping -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::0288d687-5092-4aac-88c9-75a3316bc098" starts -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::0288d687-5092-4aac-88c9-75a3316bc098" stopped +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ac78c413-d033-4b4a-912a-b4493ba53241" starts +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ac78c413-d033-4b4a-912a-b4493ba53241" stopped --- PASS: TestAccessAfterStopping (0.00s) === RUN TestCleanupNoError -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::4b2c7221-47d7-48f4-9a27-c2a8ffe085fe" starts -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::4b2c7221-47d7-48f4-9a27-c2a8ffe085fe" stopped +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::98162436-a1ed-4de8-9186-e76ec018b1b8" starts +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::98162436-a1ed-4de8-9186-e76ec018b1b8" stopped --- PASS: TestCleanupNoError (0.00s) === RUN TestCleanupWithErrors -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::7ed4c1f9-28b9-46fa-9f70-4a3462f3d6b6" starts -2024-01-10 12:28:22 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::7ed4c1f9-28b9-46fa-9f70-4a3462f3d6b6" stopped with error: [SCENE:005] cleanup of property "bar" failed: ouch +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::06f89958-a0e3-4aa0-9077-2a5dc16574af" starts +2024-01-10 12:54:53 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::06f89958-a0e3-4aa0-9077-2a5dc16574af" stopped with error: [SCENE:005] cleanup of property "bar" failed: ouch --- PASS: TestCleanupWithErrors (0.00s) === RUN TestSimpleInactivityTimeout -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::41d4b2f2-08e1-48ee-822e-5cabf99e2f60" starts -2024-01-10 12:28:22 Z [ERROR] --- PASS: TestSimpleInactivityTimeout (0.10s) -[github.com/tideland/golib/loop] loop "scene::41d4b2f2-08e1-48ee-822e-5cabf99e2f60" stopped with error: [SCENE:002] scene inactivity timeout reached at 2024-01-10 12:28:22.991014295 +0000 UTC m=+0.132895280 +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::538ea10c-12b4-4c6a-946c-9ea7ac057410" starts +2024-01-10 12:54:53 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::538ea10c-12b4-4c6a-946c-9ea7ac057410" stopped with error: [SCENE:002] scene inactivity timeout reached at 2024-01-10 12:54:53.470471938 +0000 UTC m=+0.256117469 +--- PASS: TestSimpleInactivityTimeout (0.11s) === RUN TestSimpleAbsoluteTimeout -2024-01-10 12:28:22 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ed83f477-be2f-4b21-83dd-35ffde54b1d7" starts -2024-01-10 12:28:23 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::ed83f477-be2f-4b21-83dd-35ffde54b1d7" stopped with error: [SCENE:002] scene absolute timeout reached at 2024-01-10 12:28:23.245349788 +0000 UTC m=+0.387230933 ---- PASS: TestSimpleAbsoluteTimeout (0.25s) +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::4f5bb95a-1dd4-444c-82f2-c3de74c4b39c" starts +2024-01-10 12:54:53 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::4f5bb95a-1dd4-444c-82f2-c3de74c4b39c" stopped with error: [SCENE:002] scene absolute timeout reached at 2024-01-10 12:54:53.723961255 +0000 UTC m=+0.509607119 +--- PASS: TestSimpleAbsoluteTimeout (0.26s) === RUN TestCleanupAfterTimeout -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::a9f5aa5b-bb73-45f3-90af-965775b9149c" starts -2024-01-10 12:28:23 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::a9f5aa5b-bb73-45f3-90af-965775b9149c" stopped with error: [SCENE:002] scene absolute timeout reached at 2024-01-10 12:28:23.349388037 +0000 UTC m=+0.491269082 +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::635252a9-c985-4627-887f-1b467273d5a1" starts +2024-01-10 12:54:53 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::635252a9-c985-4627-887f-1b467273d5a1" stopped with error: [SCENE:002] scene absolute timeout reached at 2024-01-10 12:54:53.833564922 +0000 UTC m=+0.619210453 --- PASS: TestCleanupAfterTimeout (0.25s) === RUN TestAbort -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::d3636a1f-123c-4508-9cd5-ed60418eb45a" starts -2024-01-10 12:28:23 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::d3636a1f-123c-4508-9cd5-ed60418eb45a" stopped with error: aborted +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::67fbc3e5-1b1e-478a-9335-ea77956c7cca" starts +2024-01-10 12:54:53 Z [ERROR] [github.com/tideland/golib/loop] loop "scene::67fbc3e5-1b1e-478a-9335-ea77956c7cca" stopped with error: aborted --- PASS: TestAbort (0.00s) === RUN TestFlagNoTimeout -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::2354a52b-c54a-4dc5-910b-94dcbdbb7fc7" starts -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::2354a52b-c54a-4dc5-910b-94dcbdbb7fc7" stopped ---- PASS: TestFlagNoTimeout (0.35s) +2024-01-10 12:54:53 Z [INFO] [github.com/tideland/golib/loop] loop "scene::e8c5a441-5cca-4907-9c88-53019459eb02" starts +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::e8c5a441-5cca-4907-9c88-53019459eb02" stopped +--- PASS: TestFlagNoTimeout (0.36s) === RUN TestNoFlagDueToStop -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::830c9ece-1c31-4dd7-8a22-654e8e78480c" starts -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::830c9ece-1c31-4dd7-8a22-654e8e78480c" stopped +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::377b1393-2a31-4326-9617-9d62539a6759" starts +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::377b1393-2a31-4326-9617-9d62539a6759" stopped --- PASS: TestNoFlagDueToStop (0.10s) === RUN TestStoreAndFlag -2024-01-10 12:28:23 Z [INFO] [github.com/tideland/golib/loop] loop "scene::3aa159bb-d876-4935-9195-71b281731bd7" starts -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::3aa159bb-d876-4935-9195-71b281731bd7" stopped +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::977e8e1e-ca1d-4289-852d-69b03c7cd248" starts +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::977e8e1e-ca1d-4289-852d-69b03c7cd248" stopped --- PASS: TestStoreAndFlag (0.10s) === RUN TestEarlyFlag -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::06400cdb-53c2-46e9-963a-98e8f1e0909e" starts -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::06400cdb-53c2-46e9-963a-98e8f1e0909e" stopped +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::9f590460-cf3c-4aa0-910a-39421272b7f7" starts +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::9f590460-cf3c-4aa0-910a-39421272b7f7" stopped --- PASS: TestEarlyFlag (0.10s) === RUN TestFlagTimeout -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::f81df0e7-5c4d-443b-8473-b3cff61e9899" starts -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::f81df0e7-5c4d-443b-8473-b3cff61e9899" stopped +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ffe00037-b831-4b27-90f9-11189c794b23" starts +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::ffe00037-b831-4b27-90f9-11189c794b23" stopped --- PASS: TestFlagTimeout (0.10s) === RUN TestFlagUnflag -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::9fbd1fcb-7467-4d33-9376-eb3493f43b87" starts -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scene::9fbd1fcb-7467-4d33-9376-eb3493f43b87" stopped +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::3b690ba7-fcbb-4317-99d9-2a39632a9662" starts +2024-01-10 12:54:54 Z [INFO] [github.com/tideland/golib/loop] loop "scene::3b690ba7-fcbb-4317-99d9-2a39632a9662" stopped --- PASS: TestFlagUnflag (0.05s) PASS -ok github.com/tideland/golib/scene 1.461s +ok github.com/tideland/golib/scene 1.686s === RUN TestScroller scroller_test.go:173 TestScroller(): test #1/10: no lines existing; initially no lines scrolled -2024-01-10 12:28:24 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts -2024-01-10 12:28:27 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped +2024-01-10 12:55:30 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:33 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #2/10: no lines existing; initially five lines scrolled -2024-01-10 12:28:27 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts -2024-01-10 12:28:30 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped +2024-01-10 12:55:33 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:36 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #3/10: ten lines existing; initially no lines scrolled -2024-01-10 12:28:30 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:36 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:38 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #4/10: ten lines existing; initially five lines scrolled -2024-01-10 12:28:32 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped -2024-01-10 12:28:32 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:38 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:39 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #5/10: ten lines existing; initially twenty lines scrolled -2024-01-10 12:28:33 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped -2024-01-10 12:28:33 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts -2024-01-10 12:28:33 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped +2024-01-10 12:55:39 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:40 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #6/10: ten lines existing; initially twenty lines scrolled; buffer smaller than lines -2024-01-10 12:28:33 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:40 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:41 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #7/10: ten lines existing; initially three lines scrolled; filter lines with special prefix -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:41 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:41 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #8/10: ten lines existing; initially five lines scrolled; error after further 25 lines -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts -2024-01-10 12:28:34 Z [ERROR] [github.com/tideland/golib/loop] loop "scroller" stopped with error: ouch +2024-01-10 12:55:41 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:41 Z [ERROR] [github.com/tideland/golib/loop] loop "scroller" stopped with error: ouch scroller_test.go:173 TestScroller(): test #9/10: ten lines existing; initially five lines scrolled; simply stop after 25 lines -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped +2024-01-10 12:55:41 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:42 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped scroller_test.go:173 TestScroller(): test #10/10: unterminated last line is not scrolled -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts -2024-01-10 12:28:34 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped ---- PASS: TestScroller (10.20s) +2024-01-10 12:55:42 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" starts +2024-01-10 12:55:42 Z [INFO] [github.com/tideland/golib/loop] loop "scroller" stopped +--- PASS: TestScroller (12.15s) PASS -ok github.com/tideland/golib/scroller 10.245s +ok github.com/tideland/golib/scroller 12.663s === RUN TestTagValidation --- PASS: TestTagValidation (0.00s) === RUN TestCreating @@ -1598,12 +1634,12 @@ sml_test.go:114 TestPositiveNodeReading(): ===== DONE ===== --- PASS: TestPositiveNodeReading (0.00s) === RUN TestNegativeNodeReading ---- PASS: TestNegativeNodeReading (0.00s) +--- PASS: TestNegativeNodeReading (0.01s) === RUN TestPositiveTreeReading sml_test.go:135 TestPositiveTreeReading(): [config = '' [foo = '1'][bar = '2'][yadda = '' [up = 'down'][down = 'up']]] --- PASS: TestPositiveTreeReading (0.00s) === RUN TestNegativeTreeReading ---- PASS: TestNegativeTreeReading (0.01s) +--- PASS: TestNegativeTreeReading (0.00s) === RUN TestSML2XML sml_test.go:178 TestSML2XML(): ===== XML ===== sml_test.go:179 TestSML2XML(): @@ -1649,38 +1685,38 @@ sml_test.go:180 TestSML2XML(): ===== DONE ===== --- PASS: TestSML2XML (0.00s) PASS -ok github.com/tideland/golib/sml 0.034s +ok github.com/tideland/golib/sml 0.115s === RUN TestPivot --- PASS: TestPivot (0.00s) PASS -ok github.com/tideland/golib/sort 0.029s +ok github.com/tideland/golib/sort 0.081s === RUN TestAsString defaulter_test.go:54 TestAsString(): test Defaulter{AsString} 0: value 'foo' without error and default bar defaulter_test.go:54 TestAsString(): test Defaulter{AsString} 1: value 'foo' with error and default bar -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsString) value returned with error: foo ---- PASS: TestAsString (0.00s) +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsString) value returned with error: foo +--- PASS: TestAsString (0.03s) === RUN TestAsStringSlice defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 0: value 'a/b/c' without error and default [a] defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 1: value 'a/b/c' with error and default [a] -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringSlice) value returned with error: a/b/c +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringSlice) value returned with error: a/b/c defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 2: value 'a/b/c' without error and default [] defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 3: value 'a/b/c' with error and default [] -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringSlice) value returned with error: a/b/c +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringSlice) value returned with error: a/b/c defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 4: value '' without error and default [] defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 5: value '' with error and default [foo] -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringSlice) value returned with error: +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringSlice) value returned with error: defaulter_test.go:80 TestAsStringSlice(): test Defaulter{AsStringSlice} 6: value 'a/b/c' without error and default [a] --- PASS: TestAsStringSlice (0.00s) === RUN TestAsStringMap defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 0: value 'a:1/b:2' without error and default map[a:1] defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 1: value 'a:1/b:2' with error and default map[a:1] -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringMap) value returned with error: a:1/b:2 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringMap) value returned with error: a:1/b:2 defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 2: value 'a:1/b:2' without error and default map[] defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 3: value 'a:1/b:2' with error and default map[] -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringMap) value returned with error: a:1/b:2 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringMap) value returned with error: a:1/b:2 defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 4: value '' without error and default map[] defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 5: value '' with error and default map[a:1] -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringMap) value returned with error: +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsStringMap) value returned with error: defaulter_test.go:107 TestAsStringMap(): test Defaulter{AsStringMap} 6: value 'a:1/b:2' without error and default map[] --- PASS: TestAsStringMap (0.00s) === RUN TestAsBool @@ -1691,9 +1727,9 @@ defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 4: value 'true' without error and default false defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 5: value 'True' without error and default false defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 6: value 'wahr' without error and default true -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value has illegal format for "bool": strconv.ParseBool: parsing "wahr": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value has illegal format for "bool": strconv.ParseBool: parsing "wahr": invalid syntax defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 7: value '' with error and default true -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value returned with error: +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value returned with error: defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 8: value '0' without error and default true defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 9: value 'f' without error and default true defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 10: value 'F' without error and default true @@ -1701,10 +1737,10 @@ defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 12: value 'false' without error and default true defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 13: value 'False' without error and default true defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 14: value 'falsch' without error and default false -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value has illegal format for "bool": strconv.ParseBool: parsing "falsch": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value has illegal format for "bool": strconv.ParseBool: parsing "falsch": invalid syntax defaulter_test.go:141 TestAsBool(): test Defaulter{AsBool} 15: value '' with error and default false -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value returned with error: ---- PASS: TestAsBool (0.00s) +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsBool) value returned with error: +--- PASS: TestAsBool (0.01s) === RUN TestAsInt defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 0: value '0' without error and default 0 defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 1: value '1' without error and default 0 @@ -1712,16 +1748,16 @@ defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 3: value '2147483647' without error and default 0 defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 4: value '-2147483648' without error and default 0 defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 5: value '999999999999999999999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value has illegal format for "int": strconv.ParseInt: parsing "999999999999999999999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value has illegal format for "int": strconv.ParseInt: parsing "999999999999999999999": value out of range defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 6: value '-999999999999999999999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value has illegal format for "int": strconv.ParseInt: parsing "-999999999999999999999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value has illegal format for "int": strconv.ParseInt: parsing "-999999999999999999999": value out of range defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 7: value 'one two three' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value has illegal format for "int": strconv.ParseInt: parsing "one two three": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value has illegal format for "int": strconv.ParseInt: parsing "one two three": invalid syntax defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 8: value '1' with error and default 2 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value returned with error: 1 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value returned with error: 1 defaulter_test.go:171 TestAsInt(): test Defaulter{AsInt} 9: value '-1' with error and default -2 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value returned with error: -1 ---- PASS: TestAsInt (0.00s) +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt) value returned with error: -1 +--- PASS: TestAsInt (0.01s) === RUN TestAsInt64 defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 0: value '0' without error and default 0 defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 1: value '1' without error and default 0 @@ -1729,37 +1765,37 @@ defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 3: value '9223372036854775807' without error and default 0 defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 4: value '-9223372036854775808' without error and default 0 defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 5: value '999999999999999999999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value has illegal format for "int64": strconv.ParseInt: parsing "999999999999999999999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value has illegal format for "int64": strconv.ParseInt: parsing "999999999999999999999": value out of range defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 6: value '-999999999999999999999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value has illegal format for "int64": strconv.ParseInt: parsing "-999999999999999999999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value has illegal format for "int64": strconv.ParseInt: parsing "-999999999999999999999": value out of range defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 7: value 'one two three' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value has illegal format for "int64": strconv.ParseInt: parsing "one two three": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value has illegal format for "int64": strconv.ParseInt: parsing "one two three": invalid syntax defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 8: value '1' with error and default 2 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value returned with error: 1 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value returned with error: 1 defaulter_test.go:201 TestAsInt64(): test Defaulter{AsInt64} 9: value '-1' with error and default -2 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value returned with error: -1 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsInt64) value returned with error: -1 --- PASS: TestAsInt64 (0.00s) === RUN TestAsUint defaulter_test.go:226 TestAsUint(): test Defaulter{AsUint} 0: value '0' without error and default 0 defaulter_test.go:226 TestAsUint(): test Defaulter{AsUint} 1: value '1' without error and default 0 defaulter_test.go:226 TestAsUint(): test Defaulter{AsUint} 2: value '4294967295' without error and default 0 defaulter_test.go:226 TestAsUint(): test Defaulter{AsUint} 3: value '999999999999999999999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsUint) value has illegal format for "uint": strconv.ParseUint: parsing "999999999999999999999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsUint) value has illegal format for "uint": strconv.ParseUint: parsing "999999999999999999999": value out of range defaulter_test.go:226 TestAsUint(): test Defaulter{AsUint} 4: value 'one two three' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsUint) value has illegal format for "uint": strconv.ParseUint: parsing "one two three": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsUint) value has illegal format for "uint": strconv.ParseUint: parsing "one two three": invalid syntax defaulter_test.go:226 TestAsUint(): test Defaulter{AsUint} 5: value '-1' with error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsUint) value returned with error: -1 ---- PASS: TestAsUint (0.00s) +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsUint) value returned with error: -1 +--- PASS: TestAsUint (0.01s) === RUN TestAsUInt64 defaulter_test.go:251 TestAsUInt64(): test Defaulter{AsUInt64} 0: value '0' without error and default 0 defaulter_test.go:251 TestAsUInt64(): test Defaulter{AsUInt64} 1: value '1' without error and default 0 defaulter_test.go:251 TestAsUInt64(): test Defaulter{AsUInt64} 2: value '18446744073709551615' without error and default 0 defaulter_test.go:251 TestAsUInt64(): test Defaulter{AsUInt64} 3: value '999999999999999999999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsUInt64) value has illegal format for "uint64": strconv.ParseUint: parsing "999999999999999999999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsUInt64) value has illegal format for "uint64": strconv.ParseUint: parsing "999999999999999999999": value out of range defaulter_test.go:251 TestAsUInt64(): test Defaulter{AsUInt64} 4: value 'one two three' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsUInt64) value has illegal format for "uint64": strconv.ParseUint: parsing "one two three": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsUInt64) value has illegal format for "uint64": strconv.ParseUint: parsing "one two three": invalid syntax defaulter_test.go:251 TestAsUInt64(): test Defaulter{AsUInt64} 5: value '-1' with error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsUInt64) value returned with error: -1 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsUInt64) value returned with error: -1 --- PASS: TestAsUInt64 (0.00s) === RUN TestAsFloat64 defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 0: value '0.0' without error and default 0 @@ -1768,35 +1804,35 @@ defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 3: value '1.7976931348623157e+308' without error and default 0 defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 4: value '-1.7976931348623157e+308' without error and default 0 defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 5: value '9e+999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value has illegal format for "float64": strconv.ParseFloat: parsing "9e+999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value has illegal format for "float64": strconv.ParseFloat: parsing "9e+999": value out of range defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 6: value '-9e+999' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value has illegal format for "float64": strconv.ParseFloat: parsing "-9e+999": value out of range +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value has illegal format for "float64": strconv.ParseFloat: parsing "-9e+999": value out of range defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 7: value 'one.two' without error and default 1 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value has illegal format for "float64": strconv.ParseFloat: parsing "one.two": invalid syntax +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value has illegal format for "float64": strconv.ParseFloat: parsing "one.two": invalid syntax defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 8: value '1.0' with error and default 2 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value returned with error: 1.0 +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value returned with error: 1.0 defaulter_test.go:281 TestAsFloat64(): test Defaulter{AsFloat4} 9: value '-1.0' with error and default -2 -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value returned with error: -1.0 ---- PASS: TestAsFloat64 (0.00s) +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsFloat4) value returned with error: -1.0 +--- PASS: TestAsFloat64 (0.01s) === RUN TestAsTime -defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 0: value '2024-01-10T12:28:26.556541288Z' without error and default 2000-01-01 00:00:00 +0000 UTC -defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 1: value '2024-01-10T12:28:26.556541288Z' with error and default 2000-01-01 00:00:00 +0000 UTC -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsTime) value returned with error: 2024-01-10T12:28:26.556541288Z -defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 2: value '2024-01-10T12:28:26.556541288Z' without error and default 2000-01-01 00:00:00 +0000 UTC -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsTime) value has illegal format for "time": parsing time "2024-01-10T12:28:26.556541288Z" as "any false layout": cannot parse "2024-01-10T12:28:26.556541288Z" as "any false layout" +defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 0: value '2024-01-10T12:55:51.861564695Z' without error and default 2000-01-01 00:00:00 +0000 UTC +defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 1: value '2024-01-10T12:55:51.861564695Z' with error and default 2000-01-01 00:00:00 +0000 UTC +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsTime) value returned with error: 2024-01-10T12:55:51.861564695Z +defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 2: value '2024-01-10T12:55:51.861564695Z' without error and default 2000-01-01 00:00:00 +0000 UTC +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsTime) value has illegal format for "time": parsing time "2024-01-10T12:55:51.861564695Z" as "any false layout": cannot parse "2024-01-10T12:55:51.861564695Z" as "any false layout" defaulter_test.go:307 TestAsTime(): test Defaulter{AsTime} 3: value '' without error and default 2000-01-01 00:00:00 +0000 UTC -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsTime) value has illegal format for "time": parsing time "" as "2006-01-02T15:04:05.999999999Z07:00": cannot parse "" as "2006" +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsTime) value has illegal format for "time": parsing time "" as "2006-01-02T15:04:05.999999999Z07:00": cannot parse "" as "2006" --- PASS: TestAsTime (0.00s) === RUN TestAsDuration defaulter_test.go:330 TestAsDuration(): test Defaulter{AsDuration} 0: value '1s' without error and default 1s defaulter_test.go:330 TestAsDuration(): test Defaulter{AsDuration} 1: value '1s' with error and default 1m0s -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsDuration) value returned with error: 1s +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsDuration) value returned with error: 1s defaulter_test.go:330 TestAsDuration(): test Defaulter{AsDuration} 2: value '2' without error and default 1m0s -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsDuration) value has illegal format for "duration": time: missing unit in duration "2" +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsDuration) value has illegal format for "duration": time: missing unit in duration "2" defaulter_test.go:330 TestAsDuration(): test Defaulter{AsDuration} 3: value '1 hour' without error and default 1m0s -2024-01-10 12:28:26 Z [ERROR] [github.com/tideland/golib/stringex] (AsDuration) value has illegal format for "duration": time: unknown unit " hour" in duration "1 hour" +2024-01-10 12:55:51 Z [ERROR] [github.com/tideland/golib/stringex] (AsDuration) value has illegal format for "duration": time: unknown unit " hour" in duration "1 hour" defaulter_test.go:330 TestAsDuration(): test Defaulter{AsDuration} 4: value '4711h' without error and default 1m0s ---- PASS: TestAsDuration (0.00s) +--- PASS: TestAsDuration (0.01s) === RUN TestDefaulterString --- PASS: TestDefaulterString (0.00s) === RUN TestWrapping @@ -1819,7 +1855,7 @@ === RUN TestSplitFilter/filter_all_parts === RUN TestSplitFilter/filter_empty_input === RUN TestSplitFilter/filter_not_splitted ---- PASS: TestSplitFilter (0.00s) +--- PASS: TestSplitFilter (0.01s) --- PASS: TestSplitFilter/all_fine (0.00s) --- PASS: TestSplitFilter/filter_empty_parts (0.00s) --- PASS: TestSplitFilter/filter_all_parts (0.00s) @@ -1850,7 +1886,7 @@ === RUN TestMatches/not-matching_pattern_with_char_group_not_ignoring_care === RUN TestMatches/matching_pattern_with_escape === RUN TestMatches/not-matching_pattern_with_escape ---- PASS: TestMatches (0.00s) +--- PASS: TestMatches (0.01s) --- PASS: TestMatches/equal_pattern_and_string_without_wildcards (0.00s) --- PASS: TestMatches/unequal_pattern_and_string_without_wildcards (0.00s) --- PASS: TestMatches/matching_pattern_with_one_question_mark (0.00s) @@ -1864,7 +1900,7 @@ --- PASS: TestMatches/matching_pattern_with_escape (0.00s) --- PASS: TestMatches/not-matching_pattern_with_escape (0.00s) PASS -ok github.com/tideland/golib/stringex 0.019s +ok github.com/tideland/golib/stringex 0.185s === RUN TestTimeContainments --- PASS: TestTimeContainments (0.00s) === RUN TestBeginOf @@ -1872,17 +1908,17 @@ === RUN TestEndOf --- PASS: TestEndOf (0.00s) === RUN TestCrontabKeep -2024-01-10 12:28:28 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::50ms" starts -2024-01-10 12:28:29 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::50ms" stopped +2024-01-10 12:55:54 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::50ms" starts +2024-01-10 12:55:55 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::50ms" stopped --- PASS: TestCrontabKeep (1.00s) === RUN TestCrontabRemove -2024-01-10 12:28:29 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" starts -2024-01-10 12:28:30 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" stopped +2024-01-10 12:55:55 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" starts +2024-01-10 12:55:56 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" stopped --- PASS: TestCrontabRemove (0.50s) === RUN TestCrontabError -2024-01-10 12:28:30 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" starts -2024-01-10 12:28:30 Z [ERROR] [github.com/tideland/golib/timex.(*Crontab).do] job "remove" removed after error: failed -2024-01-10 12:28:30 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" stopped +2024-01-10 12:55:56 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" starts +2024-01-10 12:55:56 Z [ERROR] [github.com/tideland/golib/timex.(*Crontab).do] job "remove" removed after error: failed +2024-01-10 12:55:56 Z [INFO] [github.com/tideland/golib/loop] loop "crontab::10ms" stopped --- PASS: TestCrontabError (0.50s) === RUN TestRetrySuccess --- PASS: TestRetrySuccess (0.21s) @@ -1893,7 +1929,7 @@ === RUN TestRetryTooOften --- PASS: TestRetryTooOften (0.09s) PASS -ok github.com/tideland/golib/timex 2.439s +ok github.com/tideland/golib/timex 2.533s === RUN TestNew version_test.go:98 TestNew(): new test #0: "1.2.3" version_test.go:98 TestNew(): new test #1: "1.0.3" @@ -1920,7 +1956,7 @@ version_test.go:212 TestParse(): parse test #13: "-1" version_test.go:212 TestParse(): parse test #14: "1.-1" version_test.go:212 TestParse(): parse test #15: "+" ---- PASS: TestParse (0.00s) +--- PASS: TestParse (0.01s) === RUN TestCompare version_test.go:320 TestCompare(): compare test #0: "1.2.3" <> "1.2.3" -> 0 / all version_test.go:320 TestCompare(): compare test #1: "1.2.3" <> "1.2.4" -> -1 / patch @@ -1937,7 +1973,7 @@ version_test.go:320 TestCompare(): compare test #12: "1.2.3-alpha+alpha.2" <> "1.2.3-alpha+alpha.1" -> 0 / all version_test.go:320 TestCompare(): compare test #13: "1.2.3-alpha.48+alpha.2" <> "1.2.3-alpha.4711+alpha.1" -> -1 / pre-release version_test.go:320 TestCompare(): compare test #14: "1.2.3-alpha.2" <> "1.2.3-alpha.1b" -> 1 / pre-release ---- PASS: TestCompare (0.00s) +--- PASS: TestCompare (0.01s) === RUN TestLess version_test.go:399 TestLess(): less test #0: "1.2.3" <> "1.2.3" -> false version_test.go:399 TestLess(): less test #1: "1.2.3" <> "1.2.4" -> true @@ -1956,7 +1992,7 @@ version_test.go:399 TestLess(): less test #14: "1.2.3-alpha.2" <> "1.2.3-alpha.1b" -> false --- PASS: TestLess (0.00s) PASS -ok github.com/tideland/golib/version 0.022s +ok github.com/tideland/golib/version 0.093s make[1]: Leaving directory '/build/reproducible-path/golang-github-tideland-golib-4.24.2' create-stamp debian/debhelper-build-stamp fakeroot debian/rules binary @@ -1989,12 +2025,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2653/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/31911 and its subdirectories -I: Current time: Wed Jan 10 00:28:55 -12 2024 -I: pbuilder-time-stamp: 1704889735 +I: removing directory /srv/workspace/pbuilder/2653 and its subdirectories +I: Current time: Thu Jan 11 02:59:14 +14 2024 +I: pbuilder-time-stamp: 1704891554