0s autopkgtest [16:20:12]: starting date and time: 2025-10-18 16:20:12+0000 0s autopkgtest [16:20:12]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [16:20:12]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.7sqpr8k2/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade adsys --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.7-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-s390x-6.secgroup --name adt-resolute-s390x-adsys-20251018-160414-juju-7f2275-prod-proposed-migration-environment-2-80496fb6-3293-4c19-961a-8a944c795e31 --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-s390x-adsys-20251018-160414-juju-7f2275-prod-proposed-migration-environment-2-80496fb6-3293-4c19-961a-8a944c795e31 from image adt/ubuntu-resolute-s390x-server-20251018.img (UUID c47ab411-f9be-46ce-b861-20d934d06dba)... 44s autopkgtest [16:20:56]: testbed dpkg architecture: s390x 44s autopkgtest [16:20:56]: testbed apt version: 3.1.6ubuntu2 44s autopkgtest [16:20:56]: @@@@@@@@@@@@@@@@@@@@ test bed setup 44s autopkgtest [16:20:56]: testbed release detected to be: None 45s autopkgtest [16:20:57]: updating testbed package index (apt update) 45s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 46s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 46s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 46s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 46s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [345 kB] 46s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [28.4 kB] 46s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.4 kB] 46s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 46s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [74.0 kB] 46s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted s390x Packages [940 B] 46s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [226 kB] 46s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [3812 B] 46s Fetched 781 kB in 1s (755 kB/s) 47s Reading package lists... 48s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 48s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 48s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 48s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 48s Reading package lists... 48s Reading package lists... 48s Building dependency tree... 48s Reading state information... 49s Calculating upgrade... 49s The following packages will be upgraded: 49s apt gir1.2-girepository-2.0 libapt-pkg7.0 libgirepository-1.0-1 49s libpython3-stdlib lto-disabled-list python3 python3-minimal 49s 8 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 49s Need to get 2763 kB of archives. 49s After this operation, 14.3 kB of additional disk space will be used. 49s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.13.7-2 [27.8 kB] 49s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.13.7-2 [23.9 kB] 49s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.13.7-2 [10.6 kB] 49s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libapt-pkg7.0 s390x 3.1.8ubuntu1 [1144 kB] 50s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x apt s390x 3.1.8ubuntu1 [1432 kB] 50s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x libgirepository-1.0-1 s390x 1.86.0-6 [86.9 kB] 50s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x gir1.2-girepository-2.0 s390x 1.86.0-6 [25.1 kB] 50s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x lto-disabled-list all 71 [12.5 kB] 50s dpkg-preconfigure: unable to re-open stdin: No such file or directory 50s Fetched 2763 kB in 1s (2540 kB/s) 50s (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 ... 56852 files and directories currently installed.) 50s Preparing to unpack .../python3-minimal_3.13.7-2_s390x.deb ... 50s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 50s Setting up python3-minimal (3.13.7-2) ... 50s (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 ... 56852 files and directories currently installed.) 50s Preparing to unpack .../0-python3_3.13.7-2_s390x.deb ... 50s running python pre-rtupdate hooks for python3.13... 50s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 50s Preparing to unpack .../1-libpython3-stdlib_3.13.7-2_s390x.deb ... 50s Unpacking libpython3-stdlib:s390x (3.13.7-2) over (3.13.7-1) ... 50s Preparing to unpack .../2-libapt-pkg7.0_3.1.8ubuntu1_s390x.deb ... 50s Unpacking libapt-pkg7.0:s390x (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 50s Preparing to unpack .../3-apt_3.1.8ubuntu1_s390x.deb ... 50s Unpacking apt (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 50s Preparing to unpack .../4-libgirepository-1.0-1_1.86.0-6_s390x.deb ... 50s Unpacking libgirepository-1.0-1:s390x (1.86.0-6) over (1.84.0-1) ... 50s Preparing to unpack .../5-gir1.2-girepository-2.0_1.86.0-6_s390x.deb ... 50s Unpacking gir1.2-girepository-2.0:s390x (1.86.0-6) over (1.84.0-1) ... 51s Preparing to unpack .../6-lto-disabled-list_71_all.deb ... 51s Unpacking lto-disabled-list (71) over (69) ... 51s Setting up lto-disabled-list (71) ... 51s Setting up libgirepository-1.0-1:s390x (1.86.0-6) ... 51s Setting up libapt-pkg7.0:s390x (3.1.8ubuntu1) ... 51s Setting up libpython3-stdlib:s390x (3.13.7-2) ... 51s Setting up apt (3.1.8ubuntu1) ... 51s Setting up python3 (3.13.7-2) ... 51s running python rtupdate hooks for python3.13... 51s running python post-rtupdate hooks for python3.13... 51s Setting up gir1.2-girepository-2.0:s390x (1.86.0-6) ... 51s Processing triggers for man-db (2.13.1-1) ... 52s Processing triggers for libc-bin (2.42-0ubuntu3) ... 52s autopkgtest [16:21:04]: upgrading testbed (apt dist-upgrade and autopurge) 53s Reading package lists... 53s Building dependency tree... 53s Reading state information... 53s Calculating upgrade... 53s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 54s Reading package lists... 54s Building dependency tree... 54s Reading state information... 54s Solving dependencies... 54s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 54s autopkgtest [16:21:06]: rebooting testbed after setup commands that affected boot 67s autopkgtest [16:21:19]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP Mon Sep 22 08:56:47 UTC 2025 70s autopkgtest [16:21:22]: @@@@@@@@@@@@@@@@@@@@ apt-source adsys 74s Get:1 http://ftpmaster.internal/ubuntu resolute/main adsys 0.16.3 (dsc) [1482 B] 74s Get:2 http://ftpmaster.internal/ubuntu resolute/main adsys 0.16.3 (tar) [7365 kB] 74s gpgv: Signature made Thu Mar 27 14:31:27 2025 UTC 74s gpgv: using DSA key DD00EF8F4D23C30D78EC990998B24A9CE4AC208E 74s gpgv: Can't check signature: No public key 74s dpkg-source: warning: cannot verify inline signature for ./adsys_0.16.3.dsc: no acceptable signature found 74s autopkgtest [16:21:26]: testing package adsys version 0.16.3 75s autopkgtest [16:21:27]: build not needed 78s autopkgtest [16:21:30]: test command1: preparing testbed 78s Reading package lists... 78s Building dependency tree... 78s Reading state information... 78s Solving dependencies... 78s The following NEW packages will be installed: 78s autoconf automake autopoint autotools-dev build-essential comerr-dev cpp 78s cpp-15 cpp-15-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit 78s dh-apport dh-autoreconf dh-golang dh-strip-nondeterminism dwz g++ g++-15 78s g++-15-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-15 gcc-15-s390x-linux-gnu 78s gcc-s390x-linux-gnu gettext girepository-tools golang-1.25-go 78s golang-1.25-src golang-go golang-src intltool-debian krb5-multidev 78s libarchive-zip-perl libasan8 libavahi-client3 libavahi-common-data 78s libavahi-common3 libblkid-dev libcap-dev libcc1-0 libcups2t64 libdbus-1-dev 78s libdebhelper-perl libffi-dev libfile-stripnondeterminism-perl libgcc-15-dev 78s libgio-2.0-dev libgio-2.0-dev-bin libgirepository-2.0-0 libglib2.0-bin 78s libglib2.0-dev libglib2.0-dev-bin libgomp1 libgpgme11t64 libgssrpc4t64 78s libicu76 libisl23 libitm1 libkadm5clnt-mit12 libkadm5srv-mit12 libkdb5-10t64 78s libkrb5-dev libldb2 libmount-dev libmpc3 libpam0g-dev libpcre2-16-0 78s libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpkgconf3 libselinux1-dev 78s libsepol-dev libsmbclient-dev libsmbclient0 libstdc++-15-dev 78s libsysprof-capture-4-dev libsystemd-dev libtalloc2 libtdb1 libtevent0t64 78s libtool libubsan1 liburing2 libwbclient-dev libwbclient0 m4 78s native-architecture pkgconf pkgconf-bin po-debconf python3-ldb 78s python3-packaging python3-samba python3-talloc python3-tdb samba 78s samba-common samba-common-bin samba-dsdb-modules samba-libs sgml-base 78s uuid-dev xml-core zlib1g-dev 78s 0 upgraded, 106 newly installed, 0 to remove and 0 not upgraded. 78s Need to get 130 MB of archives. 78s After this operation, 532 MB of additional disk space will be used. 78s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x samba-common all 2:4.22.3+dfsg-4ubuntu2.1 [72.5 kB] 79s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-common-data s390x 0.8-16ubuntu3 [31.1 kB] 79s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-common3 s390x 0.8-16ubuntu3 [23.3 kB] 79s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libavahi-client3 s390x 0.8-16ubuntu3 [26.2 kB] 79s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x libcups2t64 s390x 2.4.12-0ubuntu3 [280 kB] 79s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x libicu76 s390x 76.1-4ubuntu2 [11.1 MB] 81s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x libtalloc2 s390x 2:2.4.3+samba4.22.3+dfsg-4ubuntu2.1 [75.4 kB] 81s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x libtdb1 s390x 2:1.4.13+samba4.22.3+dfsg-4ubuntu2.1 [97.2 kB] 81s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libtevent0t64 s390x 2:0.16.2+samba4.22.3+dfsg-4ubuntu2.1 [41.4 kB] 81s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x libldb2 s390x 2:2.11.0+samba4.22.3+dfsg-4ubuntu2.1 [152 kB] 81s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x libwbclient0 s390x 2:4.22.3+dfsg-4ubuntu2.1 [82.6 kB] 81s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x samba-libs s390x 2:4.22.3+dfsg-4ubuntu2.1 [6518 kB] 83s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x samba-common-bin s390x 2:4.22.3+dfsg-4ubuntu2.1 [1400 kB] 83s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x liburing2 s390x 2.11-1 [26.3 kB] 83s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x samba s390x 2:4.22.3+dfsg-4ubuntu2.1 [1377 kB] 83s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x m4 s390x 1.4.19-8 [259 kB] 84s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x autoconf all 2.72-3.1ubuntu1 [384 kB] 84s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x autotools-dev all 20240727.1 [43.4 kB] 84s Get:19 http://ftpmaster.internal/ubuntu resolute/main s390x automake all 1:1.17-4ubuntu1 [572 kB] 84s Get:20 http://ftpmaster.internal/ubuntu resolute/main s390x autopoint all 0.23.1-2build2 [619 kB] 84s Get:21 http://ftpmaster.internal/ubuntu resolute/main s390x libisl23 s390x 0.27-1 [704 kB] 84s Get:22 http://ftpmaster.internal/ubuntu resolute/main s390x libmpc3 s390x 1.3.1-1build3 [57.6 kB] 84s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15-s390x-linux-gnu s390x 15.2.0-5ubuntu1 [10.2 MB] 86s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15 s390x 15.2.0-5ubuntu1 [1024 B] 86s Get:25 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [5746 B] 86s Get:26 http://ftpmaster.internal/ubuntu resolute/main s390x cpp s390x 4:15.2.0-4ubuntu1 [22.4 kB] 86s Get:27 http://ftpmaster.internal/ubuntu resolute/main s390x libcc1-0 s390x 15.2.0-5ubuntu1 [50.0 kB] 86s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-5ubuntu1 [154 kB] 86s Get:29 http://ftpmaster.internal/ubuntu resolute/main s390x libitm1 s390x 15.2.0-5ubuntu1 [30.9 kB] 86s Get:30 http://ftpmaster.internal/ubuntu resolute/main s390x libasan8 s390x 15.2.0-5ubuntu1 [2969 kB] 86s Get:31 http://ftpmaster.internal/ubuntu resolute/main s390x libubsan1 s390x 15.2.0-5ubuntu1 [1211 kB] 86s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x libgcc-15-dev s390x 15.2.0-5ubuntu1 [1045 kB] 86s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15-s390x-linux-gnu s390x 15.2.0-5ubuntu1 [19.9 MB] 89s Get:34 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15 s390x 15.2.0-5ubuntu1 [512 kB] 89s Get:35 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [1208 B] 89s Get:36 http://ftpmaster.internal/ubuntu resolute/main s390x gcc s390x 4:15.2.0-4ubuntu1 [5018 B] 89s Get:37 http://ftpmaster.internal/ubuntu resolute/main s390x libstdc++-15-dev s390x 15.2.0-5ubuntu1 [2658 kB] 89s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15-s390x-linux-gnu s390x 15.2.0-5ubuntu1 [11.7 MB] 90s Get:39 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15 s390x 15.2.0-5ubuntu1 [23.7 kB] 90s Get:40 http://ftpmaster.internal/ubuntu resolute/main s390x g++-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [956 B] 90s Get:41 http://ftpmaster.internal/ubuntu resolute/main s390x g++ s390x 4:15.2.0-4ubuntu1 [1078 B] 90s Get:42 http://ftpmaster.internal/ubuntu resolute/main s390x build-essential s390x 12.12ubuntu1 [5090 B] 90s Get:43 http://ftpmaster.internal/ubuntu resolute/main s390x libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 90s Get:44 http://ftpmaster.internal/ubuntu resolute/main s390x libtool all 2.5.4-4build1 [169 kB] 90s Get:45 http://ftpmaster.internal/ubuntu resolute/main s390x dh-autoreconf all 21 [12.5 kB] 90s Get:46 http://ftpmaster.internal/ubuntu resolute/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 90s Get:47 http://ftpmaster.internal/ubuntu resolute/main s390x libfile-stripnondeterminism-perl all 1.14.2-1 [20.4 kB] 90s Get:48 http://ftpmaster.internal/ubuntu resolute/main s390x dh-strip-nondeterminism all 1.14.2-1 [5098 B] 90s Get:49 http://ftpmaster.internal/ubuntu resolute/main s390x debugedit s390x 1:5.2-3 [52.8 kB] 90s Get:50 http://ftpmaster.internal/ubuntu resolute/main s390x dwz s390x 0.16-2 [121 kB] 90s Get:51 http://ftpmaster.internal/ubuntu resolute/main s390x gettext s390x 0.23.1-2build2 [1062 kB] 90s Get:52 http://ftpmaster.internal/ubuntu resolute/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 90s Get:53 http://ftpmaster.internal/ubuntu resolute/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 90s Get:54 http://ftpmaster.internal/ubuntu resolute/main s390x debhelper all 13.24.2ubuntu1 [896 kB] 90s Get:55 http://ftpmaster.internal/ubuntu resolute/universe s390x dh-apport all 2.33.1-0ubuntu3 [20.2 kB] 90s Get:56 http://ftpmaster.internal/ubuntu resolute/main s390x native-architecture all 0.2.6 [2140 B] 90s Get:57 http://ftpmaster.internal/ubuntu resolute/main s390x libgirepository-2.0-0 s390x 2.86.0-2 [76.6 kB] 90s Get:58 http://ftpmaster.internal/ubuntu resolute/main s390x girepository-tools s390x 2.86.0-2 [115 kB] 90s Get:59 http://ftpmaster.internal/ubuntu resolute/main s390x golang-1.25-src all 1.25.0-0ubuntu1 [23.0 MB] 92s Get:60 http://ftpmaster.internal/ubuntu resolute/main s390x golang-1.25-go s390x 1.25.0-0ubuntu1 [17.1 MB] 93s Get:61 http://ftpmaster.internal/ubuntu resolute/main s390x golang-src all 2:1.25~1 [5206 B] 93s Get:62 http://ftpmaster.internal/ubuntu resolute/main s390x golang-go s390x 2:1.25~1 [44.1 kB] 93s Get:63 http://ftpmaster.internal/ubuntu resolute/main s390x comerr-dev s390x 2.1-1.47.2-3ubuntu2 [44.8 kB] 93s Get:64 http://ftpmaster.internal/ubuntu resolute/main s390x libgssrpc4t64 s390x 1.21.3-5ubuntu2 [58.7 kB] 93s Get:65 http://ftpmaster.internal/ubuntu resolute/main s390x libkadm5clnt-mit12 s390x 1.21.3-5ubuntu2 [40.6 kB] 93s Get:66 http://ftpmaster.internal/ubuntu resolute/main s390x libkdb5-10t64 s390x 1.21.3-5ubuntu2 [41.9 kB] 93s Get:67 http://ftpmaster.internal/ubuntu resolute/main s390x libkadm5srv-mit12 s390x 1.21.3-5ubuntu2 [54.9 kB] 93s Get:68 http://ftpmaster.internal/ubuntu resolute/main s390x krb5-multidev s390x 1.21.3-5ubuntu2 [125 kB] 93s Get:69 http://ftpmaster.internal/ubuntu resolute/main s390x libcap-dev s390x 1:2.75-7ubuntu2 [577 kB] 93s Get:70 http://ftpmaster.internal/ubuntu resolute/main s390x libsystemd-dev s390x 257.9-0ubuntu2 [1414 kB] 93s Get:71 http://ftpmaster.internal/ubuntu resolute/main s390x libpkgconf3 s390x 1.8.1-4build1 [31.3 kB] 93s Get:72 http://ftpmaster.internal/ubuntu resolute/main s390x pkgconf-bin s390x 1.8.1-4build1 [21.8 kB] 93s Get:73 http://ftpmaster.internal/ubuntu resolute/main s390x pkgconf s390x 1.8.1-4build1 [16.8 kB] 93s Get:74 http://ftpmaster.internal/ubuntu resolute/main s390x sgml-base all 1.31+nmu1 [11.0 kB] 93s Get:75 http://ftpmaster.internal/ubuntu resolute/main s390x xml-core all 0.19 [20.3 kB] 93s Get:76 http://ftpmaster.internal/ubuntu resolute/main s390x libdbus-1-dev s390x 1.16.2-2ubuntu2 [190 kB] 93s Get:77 http://ftpmaster.internal/ubuntu resolute/main s390x libffi-dev s390x 3.5.2-1build1 [60.4 kB] 93s Get:78 http://ftpmaster.internal/ubuntu resolute/main s390x uuid-dev s390x 2.41-4ubuntu4 [55.6 kB] 93s Get:79 http://ftpmaster.internal/ubuntu resolute/main s390x libblkid-dev s390x 2.41-4ubuntu4 [236 kB] 93s Get:80 http://ftpmaster.internal/ubuntu resolute/main s390x libsepol-dev s390x 3.8.1-1 [415 kB] 93s Get:81 http://ftpmaster.internal/ubuntu resolute/main s390x libpcre2-16-0 s390x 10.46-1 [260 kB] 93s Get:82 http://ftpmaster.internal/ubuntu resolute/main s390x libpcre2-32-0 s390x 10.46-1 [245 kB] 93s Get:83 http://ftpmaster.internal/ubuntu resolute/main s390x libpcre2-posix3 s390x 10.46-1 [7226 B] 93s Get:84 http://ftpmaster.internal/ubuntu resolute/main s390x libpcre2-dev s390x 10.46-1 [900 kB] 93s Get:85 http://ftpmaster.internal/ubuntu resolute/main s390x libselinux1-dev s390x 3.8.1-1build1 [178 kB] 94s Get:86 http://ftpmaster.internal/ubuntu resolute/main s390x libmount-dev s390x 2.41-4ubuntu4 [36.2 kB] 94s Get:87 http://ftpmaster.internal/ubuntu resolute/main s390x libsysprof-capture-4-dev s390x 48.0-2 [52.0 kB] 94s Get:88 http://ftpmaster.internal/ubuntu resolute/main s390x zlib1g-dev s390x 1:1.3.dfsg+really1.3.1-1ubuntu2 [897 kB] 94s Get:89 http://ftpmaster.internal/ubuntu resolute/main s390x libgio-2.0-dev s390x 2.86.0-2 [1830 kB] 94s Get:90 http://ftpmaster.internal/ubuntu resolute/main s390x python3-packaging all 25.0-1 [52.8 kB] 94s Get:91 http://ftpmaster.internal/ubuntu resolute/main s390x libgio-2.0-dev-bin s390x 2.86.0-2 [129 kB] 94s Get:92 http://ftpmaster.internal/ubuntu resolute/main s390x libglib2.0-bin s390x 2.86.0-2 [100 kB] 94s Get:93 http://ftpmaster.internal/ubuntu resolute/main s390x libglib2.0-dev-bin s390x 2.86.0-2 [18.2 kB] 94s Get:94 http://ftpmaster.internal/ubuntu resolute/main s390x libglib2.0-dev s390x 2.86.0-2 [18.9 kB] 94s Get:95 http://ftpmaster.internal/ubuntu resolute/main s390x libgpgme11t64 s390x 1.24.2-3ubuntu1 [155 kB] 94s Get:96 http://ftpmaster.internal/ubuntu resolute/main s390x libpam0g-dev s390x 1.7.0-5ubuntu2 [57.4 kB] 94s Get:97 http://ftpmaster.internal/ubuntu resolute/main s390x libsmbclient0 s390x 2:4.22.3+dfsg-4ubuntu2.1 [64.7 kB] 94s Get:98 http://ftpmaster.internal/ubuntu resolute/main s390x libwbclient-dev s390x 2:4.22.3+dfsg-4ubuntu2.1 [87.1 kB] 94s Get:99 http://ftpmaster.internal/ubuntu resolute/main s390x python3-ldb s390x 2:2.11.0+samba4.22.3+dfsg-4ubuntu2.1 [41.2 kB] 94s Get:100 http://ftpmaster.internal/ubuntu resolute/main s390x python3-tdb s390x 2:1.4.13+samba4.22.3+dfsg-4ubuntu2.1 [16.9 kB] 94s Get:101 http://ftpmaster.internal/ubuntu resolute/main s390x python3-talloc s390x 2:2.4.3+samba4.22.3+dfsg-4ubuntu2.1 [14.5 kB] 94s Get:102 http://ftpmaster.internal/ubuntu resolute/main s390x python3-samba s390x 2:4.22.3+dfsg-4ubuntu2.1 [3137 kB] 95s Get:103 http://ftpmaster.internal/ubuntu resolute/main s390x samba-dsdb-modules s390x 2:4.22.3+dfsg-4ubuntu2.1 [322 kB] 95s Get:104 http://ftpmaster.internal/ubuntu resolute/main s390x dh-golang all 1.63 [24.9 kB] 95s Get:105 http://ftpmaster.internal/ubuntu resolute/main s390x libkrb5-dev s390x 1.21.3-5ubuntu2 [11.9 kB] 95s Get:106 http://ftpmaster.internal/ubuntu resolute/main s390x libsmbclient-dev s390x 2:4.22.3+dfsg-4ubuntu2.1 [40.5 kB] 95s Fetched 130 MB in 17s (7809 kB/s) 95s Selecting previously unselected package samba-common. 95s (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 ... 56852 files and directories currently installed.) 95s Preparing to unpack .../000-samba-common_2%3a4.22.3+dfsg-4ubuntu2.1_all.deb ... 95s Unpacking samba-common (2:4.22.3+dfsg-4ubuntu2.1) ... 95s Selecting previously unselected package libavahi-common-data:s390x. 95s Preparing to unpack .../001-libavahi-common-data_0.8-16ubuntu3_s390x.deb ... 95s Unpacking libavahi-common-data:s390x (0.8-16ubuntu3) ... 95s Selecting previously unselected package libavahi-common3:s390x. 95s Preparing to unpack .../002-libavahi-common3_0.8-16ubuntu3_s390x.deb ... 95s Unpacking libavahi-common3:s390x (0.8-16ubuntu3) ... 95s Selecting previously unselected package libavahi-client3:s390x. 95s Preparing to unpack .../003-libavahi-client3_0.8-16ubuntu3_s390x.deb ... 95s Unpacking libavahi-client3:s390x (0.8-16ubuntu3) ... 95s Selecting previously unselected package libcups2t64:s390x. 95s Preparing to unpack .../004-libcups2t64_2.4.12-0ubuntu3_s390x.deb ... 95s Unpacking libcups2t64:s390x (2.4.12-0ubuntu3) ... 95s Selecting previously unselected package libicu76:s390x. 95s Preparing to unpack .../005-libicu76_76.1-4ubuntu2_s390x.deb ... 95s Unpacking libicu76:s390x (76.1-4ubuntu2) ... 95s Selecting previously unselected package libtalloc2:s390x. 95s Preparing to unpack .../006-libtalloc2_2%3a2.4.3+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 95s Unpacking libtalloc2:s390x (2:2.4.3+samba4.22.3+dfsg-4ubuntu2.1) ... 95s Selecting previously unselected package libtdb1:s390x. 95s Preparing to unpack .../007-libtdb1_2%3a1.4.13+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 95s Unpacking libtdb1:s390x (2:1.4.13+samba4.22.3+dfsg-4ubuntu2.1) ... 95s Selecting previously unselected package libtevent0t64:s390x. 95s Preparing to unpack .../008-libtevent0t64_2%3a0.16.2+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 95s Unpacking libtevent0t64:s390x (2:0.16.2+samba4.22.3+dfsg-4ubuntu2.1) ... 95s Selecting previously unselected package libldb2:s390x. 96s Preparing to unpack .../009-libldb2_2%3a2.11.0+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 96s Unpacking libldb2:s390x (2:2.11.0+samba4.22.3+dfsg-4ubuntu2.1) ... 96s Selecting previously unselected package libwbclient0:s390x. 96s Preparing to unpack .../010-libwbclient0_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 96s Unpacking libwbclient0:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 96s Selecting previously unselected package samba-libs:s390x. 96s Preparing to unpack .../011-samba-libs_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 96s Unpacking samba-libs:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 96s Selecting previously unselected package samba-common-bin. 96s Preparing to unpack .../012-samba-common-bin_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 96s Unpacking samba-common-bin (2:4.22.3+dfsg-4ubuntu2.1) ... 96s Selecting previously unselected package liburing2:s390x. 96s Preparing to unpack .../013-liburing2_2.11-1_s390x.deb ... 96s Unpacking liburing2:s390x (2.11-1) ... 96s Selecting previously unselected package samba. 96s Preparing to unpack .../014-samba_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 96s Unpacking samba (2:4.22.3+dfsg-4ubuntu2.1) ... 96s Selecting previously unselected package m4. 96s Preparing to unpack .../015-m4_1.4.19-8_s390x.deb ... 96s Unpacking m4 (1.4.19-8) ... 96s Selecting previously unselected package autoconf. 96s Preparing to unpack .../016-autoconf_2.72-3.1ubuntu1_all.deb ... 96s Unpacking autoconf (2.72-3.1ubuntu1) ... 96s Selecting previously unselected package autotools-dev. 96s Preparing to unpack .../017-autotools-dev_20240727.1_all.deb ... 96s Unpacking autotools-dev (20240727.1) ... 96s Selecting previously unselected package automake. 96s Preparing to unpack .../018-automake_1%3a1.17-4ubuntu1_all.deb ... 96s Unpacking automake (1:1.17-4ubuntu1) ... 96s Selecting previously unselected package autopoint. 96s Preparing to unpack .../019-autopoint_0.23.1-2build2_all.deb ... 96s Unpacking autopoint (0.23.1-2build2) ... 96s Selecting previously unselected package libisl23:s390x. 96s Preparing to unpack .../020-libisl23_0.27-1_s390x.deb ... 96s Unpacking libisl23:s390x (0.27-1) ... 96s Selecting previously unselected package libmpc3:s390x. 96s Preparing to unpack .../021-libmpc3_1.3.1-1build3_s390x.deb ... 96s Unpacking libmpc3:s390x (1.3.1-1build3) ... 96s Selecting previously unselected package cpp-15-s390x-linux-gnu. 96s Preparing to unpack .../022-cpp-15-s390x-linux-gnu_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking cpp-15-s390x-linux-gnu (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package cpp-15. 96s Preparing to unpack .../023-cpp-15_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking cpp-15 (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package cpp-s390x-linux-gnu. 96s Preparing to unpack .../024-cpp-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 96s Unpacking cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 96s Selecting previously unselected package cpp. 96s Preparing to unpack .../025-cpp_4%3a15.2.0-4ubuntu1_s390x.deb ... 96s Unpacking cpp (4:15.2.0-4ubuntu1) ... 96s Selecting previously unselected package libcc1-0:s390x. 96s Preparing to unpack .../026-libcc1-0_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libcc1-0:s390x (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package libgomp1:s390x. 96s Preparing to unpack .../027-libgomp1_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libgomp1:s390x (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package libitm1:s390x. 96s Preparing to unpack .../028-libitm1_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libitm1:s390x (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package libasan8:s390x. 96s Preparing to unpack .../029-libasan8_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libasan8:s390x (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package libubsan1:s390x. 96s Preparing to unpack .../030-libubsan1_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libubsan1:s390x (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package libgcc-15-dev:s390x. 96s Preparing to unpack .../031-libgcc-15-dev_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libgcc-15-dev:s390x (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package gcc-15-s390x-linux-gnu. 96s Preparing to unpack .../032-gcc-15-s390x-linux-gnu_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking gcc-15-s390x-linux-gnu (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package gcc-15. 96s Preparing to unpack .../033-gcc-15_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking gcc-15 (15.2.0-5ubuntu1) ... 96s Selecting previously unselected package gcc-s390x-linux-gnu. 96s Preparing to unpack .../034-gcc-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 96s Unpacking gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 96s Selecting previously unselected package gcc. 96s Preparing to unpack .../035-gcc_4%3a15.2.0-4ubuntu1_s390x.deb ... 96s Unpacking gcc (4:15.2.0-4ubuntu1) ... 96s Selecting previously unselected package libstdc++-15-dev:s390x. 96s Preparing to unpack .../036-libstdc++-15-dev_15.2.0-5ubuntu1_s390x.deb ... 96s Unpacking libstdc++-15-dev:s390x (15.2.0-5ubuntu1) ... 97s Selecting previously unselected package g++-15-s390x-linux-gnu. 97s Preparing to unpack .../037-g++-15-s390x-linux-gnu_15.2.0-5ubuntu1_s390x.deb ... 97s Unpacking g++-15-s390x-linux-gnu (15.2.0-5ubuntu1) ... 97s Selecting previously unselected package g++-15. 97s Preparing to unpack .../038-g++-15_15.2.0-5ubuntu1_s390x.deb ... 97s Unpacking g++-15 (15.2.0-5ubuntu1) ... 97s Selecting previously unselected package g++-s390x-linux-gnu. 97s Preparing to unpack .../039-g++-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 97s Unpacking g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 97s Selecting previously unselected package g++. 97s Preparing to unpack .../040-g++_4%3a15.2.0-4ubuntu1_s390x.deb ... 97s Unpacking g++ (4:15.2.0-4ubuntu1) ... 97s Selecting previously unselected package build-essential. 97s Preparing to unpack .../041-build-essential_12.12ubuntu1_s390x.deb ... 97s Unpacking build-essential (12.12ubuntu1) ... 97s Selecting previously unselected package libdebhelper-perl. 97s Preparing to unpack .../042-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 97s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 97s Selecting previously unselected package libtool. 97s Preparing to unpack .../043-libtool_2.5.4-4build1_all.deb ... 97s Unpacking libtool (2.5.4-4build1) ... 97s Selecting previously unselected package dh-autoreconf. 97s Preparing to unpack .../044-dh-autoreconf_21_all.deb ... 97s Unpacking dh-autoreconf (21) ... 97s Selecting previously unselected package libarchive-zip-perl. 97s Preparing to unpack .../045-libarchive-zip-perl_1.68-1_all.deb ... 97s Unpacking libarchive-zip-perl (1.68-1) ... 97s Selecting previously unselected package libfile-stripnondeterminism-perl. 97s Preparing to unpack .../046-libfile-stripnondeterminism-perl_1.14.2-1_all.deb ... 97s Unpacking libfile-stripnondeterminism-perl (1.14.2-1) ... 97s Selecting previously unselected package dh-strip-nondeterminism. 97s Preparing to unpack .../047-dh-strip-nondeterminism_1.14.2-1_all.deb ... 97s Unpacking dh-strip-nondeterminism (1.14.2-1) ... 97s Selecting previously unselected package debugedit. 97s Preparing to unpack .../048-debugedit_1%3a5.2-3_s390x.deb ... 97s Unpacking debugedit (1:5.2-3) ... 97s Selecting previously unselected package dwz. 97s Preparing to unpack .../049-dwz_0.16-2_s390x.deb ... 97s Unpacking dwz (0.16-2) ... 97s Selecting previously unselected package gettext. 97s Preparing to unpack .../050-gettext_0.23.1-2build2_s390x.deb ... 97s Unpacking gettext (0.23.1-2build2) ... 97s Selecting previously unselected package intltool-debian. 97s Preparing to unpack .../051-intltool-debian_0.35.0+20060710.6_all.deb ... 97s Unpacking intltool-debian (0.35.0+20060710.6) ... 97s Selecting previously unselected package po-debconf. 97s Preparing to unpack .../052-po-debconf_1.0.21+nmu1_all.deb ... 97s Unpacking po-debconf (1.0.21+nmu1) ... 97s Selecting previously unselected package debhelper. 97s Preparing to unpack .../053-debhelper_13.24.2ubuntu1_all.deb ... 97s Unpacking debhelper (13.24.2ubuntu1) ... 97s Selecting previously unselected package dh-apport. 97s Preparing to unpack .../054-dh-apport_2.33.1-0ubuntu3_all.deb ... 97s Unpacking dh-apport (2.33.1-0ubuntu3) ... 97s Selecting previously unselected package native-architecture. 97s Preparing to unpack .../055-native-architecture_0.2.6_all.deb ... 97s Unpacking native-architecture (0.2.6) ... 97s Selecting previously unselected package libgirepository-2.0-0:s390x. 97s Preparing to unpack .../056-libgirepository-2.0-0_2.86.0-2_s390x.deb ... 97s Unpacking libgirepository-2.0-0:s390x (2.86.0-2) ... 97s Selecting previously unselected package girepository-tools:s390x. 97s Preparing to unpack .../057-girepository-tools_2.86.0-2_s390x.deb ... 97s Unpacking girepository-tools:s390x (2.86.0-2) ... 97s Selecting previously unselected package golang-1.25-src. 97s Preparing to unpack .../058-golang-1.25-src_1.25.0-0ubuntu1_all.deb ... 97s Unpacking golang-1.25-src (1.25.0-0ubuntu1) ... 98s Selecting previously unselected package golang-1.25-go. 98s Preparing to unpack .../059-golang-1.25-go_1.25.0-0ubuntu1_s390x.deb ... 98s Unpacking golang-1.25-go (1.25.0-0ubuntu1) ... 98s Selecting previously unselected package golang-src. 98s Preparing to unpack .../060-golang-src_2%3a1.25~1_all.deb ... 98s Unpacking golang-src (2:1.25~1) ... 98s Selecting previously unselected package golang-go:s390x. 98s Preparing to unpack .../061-golang-go_2%3a1.25~1_s390x.deb ... 98s Unpacking golang-go:s390x (2:1.25~1) ... 98s Selecting previously unselected package comerr-dev:s390x. 98s Preparing to unpack .../062-comerr-dev_2.1-1.47.2-3ubuntu2_s390x.deb ... 98s Unpacking comerr-dev:s390x (2.1-1.47.2-3ubuntu2) ... 98s Selecting previously unselected package libgssrpc4t64:s390x. 98s Preparing to unpack .../063-libgssrpc4t64_1.21.3-5ubuntu2_s390x.deb ... 98s Unpacking libgssrpc4t64:s390x (1.21.3-5ubuntu2) ... 98s Selecting previously unselected package libkadm5clnt-mit12:s390x. 98s Preparing to unpack .../064-libkadm5clnt-mit12_1.21.3-5ubuntu2_s390x.deb ... 98s Unpacking libkadm5clnt-mit12:s390x (1.21.3-5ubuntu2) ... 98s Selecting previously unselected package libkdb5-10t64:s390x. 98s Preparing to unpack .../065-libkdb5-10t64_1.21.3-5ubuntu2_s390x.deb ... 98s Unpacking libkdb5-10t64:s390x (1.21.3-5ubuntu2) ... 98s Selecting previously unselected package libkadm5srv-mit12:s390x. 98s Preparing to unpack .../066-libkadm5srv-mit12_1.21.3-5ubuntu2_s390x.deb ... 98s Unpacking libkadm5srv-mit12:s390x (1.21.3-5ubuntu2) ... 98s Selecting previously unselected package krb5-multidev:s390x. 98s Preparing to unpack .../067-krb5-multidev_1.21.3-5ubuntu2_s390x.deb ... 98s Unpacking krb5-multidev:s390x (1.21.3-5ubuntu2) ... 98s Selecting previously unselected package libcap-dev:s390x. 98s Preparing to unpack .../068-libcap-dev_1%3a2.75-7ubuntu2_s390x.deb ... 98s Unpacking libcap-dev:s390x (1:2.75-7ubuntu2) ... 98s Selecting previously unselected package libsystemd-dev:s390x. 98s Preparing to unpack .../069-libsystemd-dev_257.9-0ubuntu2_s390x.deb ... 98s Unpacking libsystemd-dev:s390x (257.9-0ubuntu2) ... 98s Selecting previously unselected package libpkgconf3:s390x. 98s Preparing to unpack .../070-libpkgconf3_1.8.1-4build1_s390x.deb ... 98s Unpacking libpkgconf3:s390x (1.8.1-4build1) ... 98s Selecting previously unselected package pkgconf-bin. 98s Preparing to unpack .../071-pkgconf-bin_1.8.1-4build1_s390x.deb ... 98s Unpacking pkgconf-bin (1.8.1-4build1) ... 98s Selecting previously unselected package pkgconf:s390x. 98s Preparing to unpack .../072-pkgconf_1.8.1-4build1_s390x.deb ... 98s Unpacking pkgconf:s390x (1.8.1-4build1) ... 98s Selecting previously unselected package sgml-base. 98s Preparing to unpack .../073-sgml-base_1.31+nmu1_all.deb ... 98s Unpacking sgml-base (1.31+nmu1) ... 99s Selecting previously unselected package xml-core. 99s Preparing to unpack .../074-xml-core_0.19_all.deb ... 99s Unpacking xml-core (0.19) ... 99s Selecting previously unselected package libdbus-1-dev:s390x. 99s Preparing to unpack .../075-libdbus-1-dev_1.16.2-2ubuntu2_s390x.deb ... 99s Unpacking libdbus-1-dev:s390x (1.16.2-2ubuntu2) ... 99s Selecting previously unselected package libffi-dev:s390x. 99s Preparing to unpack .../076-libffi-dev_3.5.2-1build1_s390x.deb ... 99s Unpacking libffi-dev:s390x (3.5.2-1build1) ... 99s Selecting previously unselected package uuid-dev:s390x. 99s Preparing to unpack .../077-uuid-dev_2.41-4ubuntu4_s390x.deb ... 99s Unpacking uuid-dev:s390x (2.41-4ubuntu4) ... 99s Selecting previously unselected package libblkid-dev:s390x. 99s Preparing to unpack .../078-libblkid-dev_2.41-4ubuntu4_s390x.deb ... 99s Unpacking libblkid-dev:s390x (2.41-4ubuntu4) ... 99s Selecting previously unselected package libsepol-dev:s390x. 99s Preparing to unpack .../079-libsepol-dev_3.8.1-1_s390x.deb ... 99s Unpacking libsepol-dev:s390x (3.8.1-1) ... 99s Selecting previously unselected package libpcre2-16-0:s390x. 99s Preparing to unpack .../080-libpcre2-16-0_10.46-1_s390x.deb ... 99s Unpacking libpcre2-16-0:s390x (10.46-1) ... 99s Selecting previously unselected package libpcre2-32-0:s390x. 99s Preparing to unpack .../081-libpcre2-32-0_10.46-1_s390x.deb ... 99s Unpacking libpcre2-32-0:s390x (10.46-1) ... 99s Selecting previously unselected package libpcre2-posix3:s390x. 99s Preparing to unpack .../082-libpcre2-posix3_10.46-1_s390x.deb ... 99s Unpacking libpcre2-posix3:s390x (10.46-1) ... 99s Selecting previously unselected package libpcre2-dev:s390x. 99s Preparing to unpack .../083-libpcre2-dev_10.46-1_s390x.deb ... 99s Unpacking libpcre2-dev:s390x (10.46-1) ... 99s Selecting previously unselected package libselinux1-dev:s390x. 99s Preparing to unpack .../084-libselinux1-dev_3.8.1-1build1_s390x.deb ... 99s Unpacking libselinux1-dev:s390x (3.8.1-1build1) ... 99s Selecting previously unselected package libmount-dev:s390x. 99s Preparing to unpack .../085-libmount-dev_2.41-4ubuntu4_s390x.deb ... 99s Unpacking libmount-dev:s390x (2.41-4ubuntu4) ... 99s Selecting previously unselected package libsysprof-capture-4-dev:s390x. 99s Preparing to unpack .../086-libsysprof-capture-4-dev_48.0-2_s390x.deb ... 99s Unpacking libsysprof-capture-4-dev:s390x (48.0-2) ... 99s Selecting previously unselected package zlib1g-dev:s390x. 99s Preparing to unpack .../087-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu2_s390x.deb ... 99s Unpacking zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu2) ... 99s Selecting previously unselected package libgio-2.0-dev:s390x. 99s Preparing to unpack .../088-libgio-2.0-dev_2.86.0-2_s390x.deb ... 99s Unpacking libgio-2.0-dev:s390x (2.86.0-2) ... 99s Selecting previously unselected package python3-packaging. 99s Preparing to unpack .../089-python3-packaging_25.0-1_all.deb ... 99s Unpacking python3-packaging (25.0-1) ... 99s Selecting previously unselected package libgio-2.0-dev-bin. 99s Preparing to unpack .../090-libgio-2.0-dev-bin_2.86.0-2_s390x.deb ... 99s Unpacking libgio-2.0-dev-bin (2.86.0-2) ... 99s Selecting previously unselected package libglib2.0-bin. 99s Preparing to unpack .../091-libglib2.0-bin_2.86.0-2_s390x.deb ... 99s Unpacking libglib2.0-bin (2.86.0-2) ... 99s Selecting previously unselected package libglib2.0-dev-bin. 99s Preparing to unpack .../092-libglib2.0-dev-bin_2.86.0-2_s390x.deb ... 99s Unpacking libglib2.0-dev-bin (2.86.0-2) ... 99s Selecting previously unselected package libglib2.0-dev:s390x. 99s Preparing to unpack .../093-libglib2.0-dev_2.86.0-2_s390x.deb ... 99s Unpacking libglib2.0-dev:s390x (2.86.0-2) ... 99s Selecting previously unselected package libgpgme11t64:s390x. 99s Preparing to unpack .../094-libgpgme11t64_1.24.2-3ubuntu1_s390x.deb ... 99s Unpacking libgpgme11t64:s390x (1.24.2-3ubuntu1) ... 99s Selecting previously unselected package libpam0g-dev:s390x. 99s Preparing to unpack .../095-libpam0g-dev_1.7.0-5ubuntu2_s390x.deb ... 99s Unpacking libpam0g-dev:s390x (1.7.0-5ubuntu2) ... 99s Selecting previously unselected package libsmbclient0:s390x. 99s Preparing to unpack .../096-libsmbclient0_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking libsmbclient0:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package libwbclient-dev:s390x. 99s Preparing to unpack .../097-libwbclient-dev_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking libwbclient-dev:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package python3-ldb. 99s Preparing to unpack .../098-python3-ldb_2%3a2.11.0+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking python3-ldb (2:2.11.0+samba4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package python3-tdb. 99s Preparing to unpack .../099-python3-tdb_2%3a1.4.13+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking python3-tdb (2:1.4.13+samba4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package python3-talloc:s390x. 99s Preparing to unpack .../100-python3-talloc_2%3a2.4.3+samba4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking python3-talloc:s390x (2:2.4.3+samba4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package python3-samba. 99s Preparing to unpack .../101-python3-samba_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking python3-samba (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package samba-dsdb-modules:s390x. 99s Preparing to unpack .../102-samba-dsdb-modules_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking samba-dsdb-modules:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Selecting previously unselected package dh-golang. 99s Preparing to unpack .../103-dh-golang_1.63_all.deb ... 99s Unpacking dh-golang (1.63) ... 99s Selecting previously unselected package libkrb5-dev:s390x. 99s Preparing to unpack .../104-libkrb5-dev_1.21.3-5ubuntu2_s390x.deb ... 99s Unpacking libkrb5-dev:s390x (1.21.3-5ubuntu2) ... 99s Selecting previously unselected package libsmbclient-dev:s390x. 99s Preparing to unpack .../105-libsmbclient-dev_2%3a4.22.3+dfsg-4ubuntu2.1_s390x.deb ... 99s Unpacking libsmbclient-dev:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Setting up native-architecture (0.2.6) ... 99s Setting up libpam0g-dev:s390x (1.7.0-5ubuntu2) ... 99s Setting up libgirepository-2.0-0:s390x (2.86.0-2) ... 99s Setting up libarchive-zip-perl (1.68-1) ... 99s Setting up libtdb1:s390x (2:1.4.13+samba4.22.3+dfsg-4ubuntu2.1) ... 99s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 99s Setting up libglib2.0-bin (2.86.0-2) ... 99s Setting up m4 (1.4.19-8) ... 99s Setting up samba-common (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Creating config file /etc/samba/smb.conf with new version 99s Setting up libgomp1:s390x (15.2.0-5ubuntu1) ... 99s Setting up libffi-dev:s390x (3.5.2-1build1) ... 99s Setting up dh-apport (2.33.1-0ubuntu3) ... 99s Setting up libwbclient0:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Setting up libwbclient-dev:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 99s Setting up libpcre2-16-0:s390x (10.46-1) ... 99s Setting up libtalloc2:s390x (2:2.4.3+samba4.22.3+dfsg-4ubuntu2.1) ... 99s Setting up libsysprof-capture-4-dev:s390x (48.0-2) ... 99s Setting up python3-tdb (2:1.4.13+samba4.22.3+dfsg-4ubuntu2.1) ... 99s Setting up autotools-dev (20240727.1) ... 99s Setting up libpcre2-32-0:s390x (10.46-1) ... 99s Setting up python3-packaging (25.0-1) ... 100s Setting up libpkgconf3:s390x (1.8.1-4build1) ... 100s Setting up libgssrpc4t64:s390x (1.21.3-5ubuntu2) ... 100s Setting up uuid-dev:s390x (2.41-4ubuntu4) ... 100s Setting up libavahi-common-data:s390x (0.8-16ubuntu3) ... 100s Setting up comerr-dev:s390x (2.1-1.47.2-3ubuntu2) ... 100s Setting up libmpc3:s390x (1.3.1-1build3) ... 100s Setting up autopoint (0.23.1-2build2) ... 100s Setting up libsepol-dev:s390x (3.8.1-1) ... 100s Setting up pkgconf-bin (1.8.1-4build1) ... 100s Setting up autoconf (2.72-3.1ubuntu1) ... 100s Setting up libubsan1:s390x (15.2.0-5ubuntu1) ... 100s Setting up zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu2) ... 100s Setting up libpcre2-posix3:s390x (10.46-1) ... 100s Setting up dwz (0.16-2) ... 100s Setting up golang-1.25-src (1.25.0-0ubuntu1) ... 100s Setting up libasan8:s390x (15.2.0-5ubuntu1) ... 100s Setting up debugedit (1:5.2-3) ... 100s Setting up sgml-base (1.31+nmu1) ... 100s Setting up libgpgme11t64:s390x (1.24.2-3ubuntu1) ... 100s Setting up libicu76:s390x (76.1-4ubuntu2) ... 100s Setting up liburing2:s390x (2.11-1) ... 100s Setting up libisl23:s390x (0.27-1) ... 100s Setting up golang-src (2:1.25~1) ... 100s Setting up libcap-dev:s390x (1:2.75-7ubuntu2) ... 100s Setting up libcc1-0:s390x (15.2.0-5ubuntu1) ... 100s Setting up libsystemd-dev:s390x (257.9-0ubuntu2) ... 100s Setting up libtevent0t64:s390x (2:0.16.2+samba4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up libitm1:s390x (15.2.0-5ubuntu1) ... 100s Setting up libkadm5clnt-mit12:s390x (1.21.3-5ubuntu2) ... 100s Setting up automake (1:1.17-4ubuntu1) ... 100s update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode 100s Setting up libfile-stripnondeterminism-perl (1.14.2-1) ... 100s Setting up libblkid-dev:s390x (2.41-4ubuntu4) ... 100s Setting up golang-1.25-go (1.25.0-0ubuntu1) ... 100s Setting up libgio-2.0-dev-bin (2.86.0-2) ... 100s Setting up gettext (0.23.1-2build2) ... 100s Setting up girepository-tools:s390x (2.86.0-2) ... 100s Setting up libgcc-15-dev:s390x (15.2.0-5ubuntu1) ... 100s Setting up libpcre2-dev:s390x (10.46-1) ... 100s Setting up libkdb5-10t64:s390x (1.21.3-5ubuntu2) ... 100s Setting up python3-talloc:s390x (2:2.4.3+samba4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up golang-go:s390x (2:1.25~1) ... 100s Setting up libselinux1-dev:s390x (3.8.1-1build1) ... 100s Setting up libavahi-common3:s390x (0.8-16ubuntu3) ... 100s Setting up pkgconf:s390x (1.8.1-4build1) ... 100s Setting up intltool-debian (0.35.0+20060710.6) ... 100s Setting up libstdc++-15-dev:s390x (15.2.0-5ubuntu1) ... 100s Setting up dh-strip-nondeterminism (1.14.2-1) ... 100s Setting up xml-core (0.19) ... 100s Setting up cpp-15-s390x-linux-gnu (15.2.0-5ubuntu1) ... 100s Setting up libkadm5srv-mit12:s390x (1.21.3-5ubuntu2) ... 100s Setting up libldb2:s390x (2:2.11.0+samba4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up libavahi-client3:s390x (0.8-16ubuntu3) ... 100s Setting up libmount-dev:s390x (2.41-4ubuntu4) ... 100s Setting up gcc-15-s390x-linux-gnu (15.2.0-5ubuntu1) ... 100s Setting up krb5-multidev:s390x (1.21.3-5ubuntu2) ... 100s Setting up g++-15-s390x-linux-gnu (15.2.0-5ubuntu1) ... 100s Setting up libglib2.0-dev-bin (2.86.0-2) ... 100s Setting up libgio-2.0-dev:s390x (2.86.0-2) ... 100s Setting up cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 100s Setting up po-debconf (1.0.21+nmu1) ... 100s Setting up samba-libs:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up libkrb5-dev:s390x (1.21.3-5ubuntu2) ... 100s Setting up gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 100s Setting up python3-ldb (2:2.11.0+samba4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up cpp-15 (15.2.0-5ubuntu1) ... 100s Setting up cpp (4:15.2.0-4ubuntu1) ... 100s Setting up samba-dsdb-modules:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up libsmbclient0:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up libcups2t64:s390x (2.4.12-0ubuntu3) ... 100s Setting up python3-samba (2:4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 100s Setting up gcc-15 (15.2.0-5ubuntu1) ... 100s Setting up libsmbclient-dev:s390x (2:4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up samba-common-bin (2:4.22.3+dfsg-4ubuntu2.1) ... 100s Setting up g++-15 (15.2.0-5ubuntu1) ... 100s Setting up samba (2:4.22.3+dfsg-4ubuntu2.1) ... 101s Created symlink '/etc/systemd/system/smb.service' → '/usr/lib/systemd/system/smbd.service'. 101s Created symlink '/etc/systemd/system/multi-user.target.wants/smbd.service' → '/usr/lib/systemd/system/smbd.service'. 101s Created symlink '/etc/systemd/system/nmb.service' → '/usr/lib/systemd/system/nmbd.service'. 101s Created symlink '/etc/systemd/system/multi-user.target.wants/nmbd.service' → '/usr/lib/systemd/system/nmbd.service'. 102s Setting up libtool (2.5.4-4build1) ... 102s Setting up gcc (4:15.2.0-4ubuntu1) ... 102s Setting up dh-autoreconf (21) ... 102s Setting up g++ (4:15.2.0-4ubuntu1) ... 102s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 102s Setting up build-essential (12.12ubuntu1) ... 102s Setting up debhelper (13.24.2ubuntu1) ... 102s Setting up dh-golang (1.63) ... 102s Processing triggers for install-info (7.1.1-1ubuntu1) ... 102s Processing triggers for libc-bin (2.42-0ubuntu3) ... 102s Processing triggers for ufw (0.36.2-9) ... 102s Processing triggers for man-db (2.13.1-1) ... 103s Processing triggers for libglib2.0-0t64:s390x (2.86.0-2) ... 103s No schema files found: doing nothing. 103s Setting up libglib2.0-dev:s390x (2.86.0-2) ... 103s Processing triggers for sgml-base (1.31+nmu1) ... 103s Setting up libdbus-1-dev:s390x (1.16.2-2ubuntu2) ... 104s autopkgtest [16:21:56]: test command1: ./debian/tests/test no-sudo 104s autopkgtest [16:21:56]: test command1: [----------------------- 104s Running non-root tests... 129s ? github.com/ubuntu/adsys [no test files] 138s === RUN TestRun 138s === RUN TestRun/Run_and_exit_successfully 138s === RUN TestRun/Run_and_return_error 138s level=error msg="Error requested" 138s === RUN TestRun/Run_and_return_usage_error 138s level=error msg="Error requested" 138s === RUN TestRun/Run_and_usage_error_only_does_not_fail 138s --- PASS: TestRun (0.00s) 138s --- PASS: TestRun/Run_and_exit_successfully (0.00s) 138s --- PASS: TestRun/Run_and_return_error (0.00s) 138s --- PASS: TestRun/Run_and_return_usage_error (0.00s) 138s --- PASS: TestRun/Run_and_usage_error_only_does_not_fail (0.00s) 138s === RUN TestMainApp 138s --- PASS: TestMainApp (0.01s) 138s === RUN TestAppUsage 138s === RUN TestAppUsage/Expand_with_correct_arguments 138s === RUN TestAppUsage/Admx_with_correct_arguments 138s === RUN TestAppUsage/Doc_with_correct_arguments 138s === RUN TestAppUsage/Error_when_command_is_called_with_wrong_arguments 138s --- PASS: TestAppUsage (0.04s) 138s --- PASS: TestAppUsage/Expand_with_correct_arguments (0.01s) 138s --- PASS: TestAppUsage/Admx_with_correct_arguments (0.01s) 138s --- PASS: TestAppUsage/Doc_with_correct_arguments (0.01s) 138s --- PASS: TestAppUsage/Error_when_command_is_called_with_wrong_arguments (0.01s) 138s PASS 138s ok github.com/ubuntu/adsys/cmd/admxgen 0.055s 138s ? github.com/ubuntu/adsys/cmd/admxgen/commands [no test files] 152s === RUN TestRun 152s === RUN TestRun/Send_SIGINT_exits 152s === RUN TestRun/Send_SIGTERM_exits 152s === RUN TestRun/Send_SIGHUP_without_exiting 152s === RUN TestRun/Send_SIGHUP_with_exit 152s === RUN TestRun/Run_and_exit_successfully 152s === RUN TestRun/Run_and_return_error 152s level=error msg="Error requested" 152s === RUN TestRun/Run_and_return_usage_error 152s level=error msg="Error requested" 152s === RUN TestRun/Run_and_usage_error_only_does_not_fail 152s --- PASS: TestRun (0.86s) 152s --- PASS: TestRun/Send_SIGINT_exits (0.10s) 152s --- PASS: TestRun/Send_SIGTERM_exits (0.10s) 152s --- PASS: TestRun/Send_SIGHUP_without_exiting (0.15s) 152s --- PASS: TestRun/Send_SIGHUP_with_exit (0.10s) 152s --- PASS: TestRun/Run_and_exit_successfully (0.10s) 152s --- PASS: TestRun/Run_and_return_error (0.10s) 152s --- PASS: TestRun/Run_and_return_usage_error (0.10s) 152s --- PASS: TestRun/Run_and_usage_error_only_does_not_fail (0.10s) 152s === RUN TestMainApp 152s --- PASS: TestMainApp (0.92s) 152s PASS 152s ok github.com/ubuntu/adsys/cmd/adsysd 1.846s 152s === RUN TestColorizePolicies 152s --- PASS: TestColorizePolicies (0.00s) 152s === RUN TestInitApp 152s === PAUSE TestInitApp 152s === RUN TestAppHelp 152s === PAUSE TestAppHelp 152s === RUN TestAppCompletion 152s === PAUSE TestAppCompletion 152s === RUN TestAppNoUsageError 152s === PAUSE TestAppNoUsageError 152s === RUN TestAppUsageError 152s === PAUSE TestAppUsageError 152s === RUN TestAppUsageErrorReportsSuggestions 152s Usage: 152s adsysctl COMMAND [flags] 152s adsysctl [command] 152s 152s Available Commands: 152s applied Print last applied GPOs for current or given user/machine 152s completion Generate the autocompletion script for the specified shell 152s doc Documentation 152s help Help about any command 152s policy Policy management 152s service Service management 152s update Updates/Create a policy for current user or given user with its kerberos ticket 152s version Returns version of client and service 152s 152s Flags: 152s -c, --config string use a specific configuration file 152s -h, --help help for adsysctl 152s -s, --socket string socket path to use between daemon and client. Can be overridden by systemd socket activation. (default "/run/adsysd.sock") 152s -t, --timeout int time in seconds before cancelling the client request when the server gives no result. 0 for no timeout. (default 30) 152s -v, --verbose count issue INFO (-v), DEBUG (-vv) or DEBUG with caller (-vvv) output 152s 152s Use "adsysctl [command] --help" for more information about a command. 152s 152s --- PASS: TestAppUsageErrorReportsSuggestions (0.00s) 152s === RUN TestAppCanQuitWhenExecute 152s === PAUSE TestAppCanQuitWhenExecute 152s === RUN TestAppCanQuitAfterExecute 152s === PAUSE TestAppCanQuitAfterExecute 152s === RUN TestAppCanQuitWithoutExecute 152s === PAUSE TestAppCanQuitWithoutExecute 152s === RUN TestAppCanSigHupWhenExecute 152s === PAUSE TestAppCanSigHupWhenExecute 152s === RUN TestAppCanSigHupAfterExecute 152s === PAUSE TestAppCanSigHupAfterExecute 152s === RUN TestAppGetRootCmd 152s === PAUSE TestAppGetRootCmd 152s === CONT TestInitApp 152s === CONT TestAppCanQuitAfterExecute 152s # bash completion V2 for adsysctl -*- shell-script -*- 152s 152s __adsysctl_debug() 152s { 152s if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then 152s echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 152s fi 152s } 152s 152s # Macs have bash3 for which the bash-completion package doesn't include 152s # _init_completion. This is a minimal version of that function. 152s __adsysctl_init_completion() 152s { 152s COMPREPLY=() 152s _get_comp_words_by_ref "$@" cur prev words cword 152s } 152s 152s # This function calls the adsysctl program to obtain the completion 152s # results and the directive. It fills the 'out' and 'directive' vars. 152s __adsysctl_get_completion_results() { 152s local requestComp lastParam lastChar args 152s 152s # Prepare the command to request completions for the program. 152s # Calling ${words[0]} instead of directly adsysctl allows handling aliases 152s args=("${words[@]:1}") 152s requestComp="${words[0]} __complete ${args[*]}" 152s 152s lastParam=${words[$((${#words[@]}-1))]} 152s lastChar=${lastParam:$((${#lastParam}-1)):1} 152s __adsysctl_debug "lastParam ${lastParam}, lastChar ${lastChar}" 152s 152s if [[ -z ${cur} && ${lastChar} != = ]]; then 152s # If the last parameter is complete (there is a space following it) 152s # We add an extra empty parameter so we can indicate this to the go method. 152s __adsysctl_debug "Adding extra empty parameter" 152s requestComp="${requestComp} ''" 152s fi 152s 152s # When completing a flag with an = (e.g., adsysctl -n=) 152s # bash focuses on the part after the =, so we need to remove 152s # the flag part from $cur 152s if [[ ${cur} == -*=* ]]; then 152s cur="${cur#*=}" 152s fi 152s 152s __adsysctl_debug "Calling ${requestComp}" 152s # Use eval to handle any environment variables and such 152s out=$(eval "${requestComp}" 2>/dev/null) 152s 152s # Extract the directive integer at the very end of the output following a colon (:) 152s directive=${out##*:} 152s # Remove the directive 152s out=${out%:*} 152s if [[ ${directive} == "${out}" ]]; then 152s # There is not directive specified 152s directive=0 152s fi 152s __adsysctl_debug "The completion directive is: ${directive}" 152s __adsysctl_debug "The completions are: ${out}" 152s } 152s 152s __adsysctl_process_completion_results() { 152s local shellCompDirectiveError=1 152s local shellCompDirectiveNoSpace=2 152s local shellCompDirectiveNoFileComp=4 152s local shellCompDirectiveFilterFileExt=8 152s local shellCompDirectiveFilterDirs=16 152s local shellCompDirectiveKeepOrder=32 152s 152s if (((directive & shellCompDirectiveError) != 0)); then 152s # Error code. No completion. 152s __adsysctl_debug "Received error from custom completion go code" 152s return 152s else 152s if (((directive & shellCompDirectiveNoSpace) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no space" 152s compopt -o nospace 152s else 152s __adsysctl_debug "No space directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveKeepOrder) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s # no sort isn't supported for bash less than < 4.4 152s if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s else 152s __adsysctl_debug "Activating keep order" 152s compopt -o nosort 152s fi 152s else 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveNoFileComp) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no file completion" 152s compopt +o default 152s else 152s __adsysctl_debug "No file completion directive not supported in this version of bash" 152s fi 152s fi 152s fi 152s 152s # Separate activeHelp from normal completions 152s local completions=() 152s local activeHelp=() 152s __adsysctl_extract_activeHelp 152s 152s if (((directive & shellCompDirectiveFilterFileExt) != 0)); then 152s # File extension filtering 152s local fullFilter="" filter filteringCmd 152s 152s # Do not use quotes around the $completions variable or else newline 152s # characters will be kept. 152s for filter in ${completions[*]}; do 152s fullFilter+="$filter|" 152s done 152s 152s filteringCmd="_filedir $fullFilter" 152s __adsysctl_debug "File filtering command: $filteringCmd" 152s $filteringCmd 152s elif (((directive & shellCompDirectiveFilterDirs) != 0)); then 152s # File completion for directories only 152s 152s local subdir 152s subdir=${completions[0]} 152s if [[ -n $subdir ]]; then 152s __adsysctl_debug "Listing directories in $subdir" 152s pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return 152s else 152s __adsysctl_debug "Listing directories in ." 152s _filedir -d 152s fi 152s else 152s __adsysctl_handle_completion_types 152s fi 152s 152s __adsysctl_handle_special_char "$cur" : 152s __adsysctl_handle_special_char "$cur" = 152s 152s # Print the activeHelp statements before we finish 152s __adsysctl_handle_activeHelp 152s } 152s 152s __adsysctl_handle_activeHelp() { 152s # Print the activeHelp statements 152s if ((${#activeHelp[*]} != 0)); then 152s if [ -z $COMP_TYPE ]; then 152s # Bash v3 does not set the COMP_TYPE variable. 152s printf "\n"; 152s printf "%s\n" "${activeHelp[@]}" 152s printf "\n" 152s __adsysctl_reprint_commandLine 152s return 152s fi 152s 152s # Only print ActiveHelp on the second TAB press 152s if [ $COMP_TYPE -eq 63 ]; then 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s if ((${#COMPREPLY[*]} == 0)); then 152s # When there are no completion choices from the program, file completion 152s # may kick in if the program has not disabled it; in such a case, we want 152s # to know if any files will match what the user typed, so that we know if 152s # there will be completions presented, so that we know how to handle ActiveHelp. 152s # To find out, we actually trigger the file completion ourselves; 152s # the call to _filedir will fill COMPREPLY if files match. 152s if (((directive & shellCompDirectiveNoFileComp) == 0)); then 152s __adsysctl_debug "Listing files" 152s _filedir 152s fi 152s fi 152s 152s if ((${#COMPREPLY[*]} != 0)); then 152s # If there are completion choices to be shown, print a delimiter. 152s # Re-printing the command-line will automatically be done 152s # by the shell when it prints the completion choices. 152s printf -- "--" 152s else 152s # When there are no completion choices at all, we need 152s # to re-print the command-line since the shell will 152s # not be doing it itself. 152s __adsysctl_reprint_commandLine 152s fi 152s elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then 152s # For completion type: menu-complete/menu-complete-backward and insert-completions 152s # the completions are immediately inserted into the command-line, so we first 152s # print the activeHelp message and reprint the command-line since the shell won't. 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s __adsysctl_reprint_commandLine 152s fi 152s fi 152s } 152s 152s __adsysctl_reprint_commandLine() { 152s # The prompt format is only available from bash 4.4. 152s # We test if it is available before using it. 152s if (x=${PS1@P}) 2> /dev/null; then 152s printf "%s" "${PS1@P}${COMP_LINE[@]}" 152s else 152s # Can't print the prompt. Just print the 152s # text the user had typed, it is workable enough. 152s printf "%s" "${COMP_LINE[@]}" 152s fi 152s } 152s 152s # Separate activeHelp lines from real completions. 152s # Fills the $activeHelp and $completions arrays. 152s __adsysctl_extract_activeHelp() { 152s local activeHelpMarker="_activeHelp_ " 152s local endIndex=${#activeHelpMarker} 152s 152s while IFS='' read -r comp; do 152s [[ -z $comp ]] && continue 152s 152s if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then 152s comp=${comp:endIndex} 152s __adsysctl_debug "ActiveHelp found: $comp" 152s if [[ -n $comp ]]; then 152s activeHelp+=("$comp") 152s fi 152s else 152s # Not an activeHelp line but a normal completion 152s completions+=("$comp") 152s fi 152s done <<<"${out}" 152s } 152s 152s __adsysctl_handle_completion_types() { 152s __adsysctl_debug "__adsysctl_handle_completion_types: COMP_TYPE is $COMP_TYPE" 152s 152s case $COMP_TYPE in 152s 37|42) 152s # Type: menu-complete/menu-complete-backward and insert-completions 152s # If the user requested inserting one completion at a time, or all 152s # completions at once on the command-line we must remove the descriptions. 152s # https://github.com/spf13/cobra/issues/1508 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s local tab=$'\t' 152s 152s # Strip any description and escape the completion to handled special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]%%$tab*}") 152s 152s # Only consider the completions that match 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so we need to escape all completions again since they will 152s # all be inserted on the command-line. 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%q\n" "${COMPREPLY[@]}") 152s ;; 152s 152s *) 152s # Type: complete (normal completion) 152s __adsysctl_handle_standard_completion_case 152s ;; 152s esac 152s } 152s 152s __adsysctl_handle_standard_completion_case() { 152s local tab=$'\t' 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s # Short circuit to optimize if we don't have descriptions 152s if [[ "${completions[*]}" != *$tab* ]]; then 152s # First, escape the completions to handle special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]}") 152s # Only consider the completions that match what the user typed 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so, if there is only a single completion, we need to 152s # escape it again because it will be inserted on the command-line. If there are multiple 152s # completions, we don't want to escape them because they will be printed in a list 152s # and we don't want to show escape characters in that list. 152s if (( ${#COMPREPLY[@]} == 1 )); then 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]}") 152s fi 152s return 0 152s fi 152s 152s local longest=0 152s local compline 152s # Look for the longest completion so that we can format things nicely 152s while IFS='' read -r compline; do 152s [[ -z $compline ]] && continue 152s 152s # Before checking if the completion matches what the user typed, 152s # we need to strip any description and escape the completion to handle special 152s # characters because those escape characters are part of what the user typed. 152s # Don't call "printf" in a sub-shell because it will be much slower 152s # since we are in a loop. 152s printf -v comp "%q" "${compline%%$tab*}" &>/dev/null || comp=$(printf "%q" "${compline%%$tab*}") 152s 152s # Only consider the completions that match 152s [[ $comp == "$cur"* ]] || continue 152s 152s # The completions matches. Add it to the list of full completions including 152s # its description. We don't escape the completion because it may get printed 152s # in a list if there are more than one and we don't want show escape characters 152s # in that list. 152s COMPREPLY+=("$compline") 152s 152s # Strip any description before checking the length, and again, don't escape 152s # the completion because this length is only used when printing the completions 152s # in a list and we don't want show escape characters in that list. 152s comp=${compline%%$tab*} 152s if ((${#comp}>longest)); then 152s longest=${#comp} 152s fi 152s done < <(printf "%s\n" "${completions[@]}") 152s 152s # If there is a single completion left, remove the description text and escape any special characters 152s if ((${#COMPREPLY[*]} == 1)); then 152s __adsysctl_debug "COMPREPLY[0]: ${COMPREPLY[0]}" 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]%%$tab*}") 152s __adsysctl_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" 152s else 152s # Format the descriptions 152s __adsysctl_format_comp_descriptions $longest 152s fi 152s } 152s 152s __adsysctl_handle_special_char() 152s { 152s local comp="$1" 152s local char=$2 152s if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then 152s local word=${comp%"${comp##*${char}}"} 152s local idx=${#COMPREPLY[*]} 152s while ((--idx >= 0)); do 152s COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} 152s done 152s fi 152s } 152s 152s __adsysctl_format_comp_descriptions() 152s { 152s local tab=$'\t' 152s local comp desc maxdesclength 152s local longest=$1 152s 152s local i ci 152s for ci in ${!COMPREPLY[*]}; do 152s comp=${COMPREPLY[ci]} 152s # Properly format the description string which follows a tab character if there is one 152s if [[ "$comp" == *$tab* ]]; then 152s __adsysctl_debug "Original comp: $comp" 152s desc=${comp#*$tab} 152s comp=${comp%%$tab*} 152s 152s # $COLUMNS stores the current shell width. 152s # Remove an extra 4 because we add 2 spaces and 2 parentheses. 152s maxdesclength=$(( COLUMNS - longest - 4 )) 152s 152s # Make sure we can fit a description of at least 8 characters 152s # if we are to align the descriptions. 152s if ((maxdesclength > 8)); then 152s # Add the proper number of spaces to align the descriptions 152s for ((i = ${#comp} ; i < longest ; i++)); do 152s comp+=" " 152s done 152s else 152s # Don't pad the descriptions so we can fit more text after the completion 152s maxdesclength=$(( COLUMNS - ${#comp} - 4 )) 152s fi 152s 152s # If there is enough space for any description text, 152s # truncate the descriptions that are too long for the shell width 152s if ((maxdesclength > 0)); then 152s if ((${#desc} > maxdesclength)); then 152s desc=${desc:0:$(( maxdesclength - 1 ))} 152s desc+="…" 152s fi 152s comp+=" ($desc)" 152s fi 152s COMPREPLY[ci]=$comp 152s __adsysctl_debug "Final comp: $comp" 152s fi 152s done 152s } 152s 152s __start_adsysctl() 152s { 152s local cur prev words cword split 152s 152s COMPREPLY=() 152s 152s # Call _init_completion from the bash-completion package 152s # to prepare the arguments properly 152s if declare -F _init_completion >/dev/null 2>&1; then 152s _init_completion -n =: || return 152s else 152s __adsysctl_init_completion -n =: || return 152s fi 152s 152s __adsysctl_debug 152s __adsysctl_debug "========= starting completion logic ==========" 152s __adsysctl_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" 152s 152s # The user could have moved the cursor backwards on the command-line. 152s # We need to trigger completion from the $cword location, so we need 152s # to truncate the command-line ($words) up to the $cword location. 152s words=("${words[@]:0:$cword+1}") 152s __adsysctl_debug "Truncated words[*]: ${words[*]}," 152s 152s local out directive 152s __adsysctl_get_completion_results 152s __adsysctl_process_completion_results 152s } 152s 152s if [[ $(type -t compopt) = "builtin" ]]; then 152s complete -o default -F __start_adsysctl adsysctl 152s else 152s complete -o default -o nospace -F __start_adsysctl adsysctl 152s fi 152s 152s # ex: ts=4 sw=4 et filetype=sh 152s --- PASS: TestAppCanQuitAfterExecute (0.00s) 152s === CONT TestAppGetRootCmd 152s Usage: 152s adsysctl COMMAND [flags] 152s adsysctl [command] 152s 152s Available Commands: 152s applied Print last applied GPOs for current or given user/machine 152s completion Generate the autocompletion script for the specified shell 152s doc Documentation 152s help Help about any command 152s policy Policy management 152s service Service management 152s update Updates/Create a policy for current user or given user with its kerberos ticket 152s version Returns version of client and service 152s 152s Flags: 152s -c, --config string use a specific configuration file 152s -h, --help help for adsysctl 152s -s, --socket string socket path to use between daemon and client. Can be overridden by systemd socket activation. (default "/run/adsysd.sock") 152s -t, --timeout int time in seconds before cancelling the client request when the server gives no result. 0 for no timeout. (default 30) 152s -v, --verbose count issue INFO (-v), DEBUG (-vv) or DEBUG with caller (-vvv) output 152s 152s Use "adsysctl [command] --help" for more information about a command. 152s 152s --- PASS: TestInitApp (0.00s) 152s === CONT TestAppCanSigHupAfterExecute 152s --- PASS: TestAppGetRootCmd (0.00s) 152s === CONT TestAppCanSigHupWhenExecute 152s --- PASS: TestAppCanSigHupWhenExecute (0.00s) 152s === CONT TestAppCanQuitWithoutExecute 152s --- PASS: TestAppCanQuitWithoutExecute (0.00s) 152s === CONT TestAppNoUsageError 152s # bash completion V2 for adsysctl -*- shell-script -*- 152s 152s __adsysctl_debug() 152s { 152s if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then 152s echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 152s fi 152s } 152s 152s # Macs have bash3 for which the bash-completion package doesn't include 152s # _init_completion. This is a minimal version of that function. 152s __adsysctl_init_completion() 152s { 152s COMPREPLY=() 152s _get_comp_words_by_ref "$@" cur prev words cword 152s } 152s 152s # This function calls the adsysctl program to obtain the completion 152s # results and the directive. It fills the 'out' and 'directive' vars. 152s __adsysctl_get_completion_results() { 152s local requestComp lastParam lastChar args 152s 152s # Prepare the command to request completions for the program. 152s # Calling ${words[0]} instead of directly adsysctl allows handling aliases 152s args=("${words[@]:1}") 152s requestComp="${words[0]} __complete ${args[*]}" 152s 152s lastParam=${words[$((${#words[@]}-1))]} 152s lastChar=${lastParam:$((${#lastParam}-1)):1} 152s __adsysctl_debug "lastParam ${lastParam}, lastChar ${lastChar}" 152s 152s if [[ -z ${cur} && ${lastChar} != = ]]; then 152s # If the last parameter is complete (there is a space following it) 152s # We add an extra empty parameter so we can indicate this to the go method. 152s __adsysctl_debug "Adding extra empty parameter" 152s requestComp="${requestComp} ''" 152s fi 152s 152s # When completing a flag with an = (e.g., adsysctl -n=) 152s # bash focuses on the part after the =, so we need to remove 152s # the flag part from $cur 152s if [[ ${cur} == -*=* ]]; then 152s cur="${cur#*=}" 152s fi 152s 152s __adsysctl_debug "Calling ${requestComp}" 152s # Use eval to handle any environment variables and such 152s out=$(eval "${requestComp}" 2>/dev/null) 152s 152s # Extract the directive integer at the very end of the output following a colon (:) 152s directive=${out##*:} 152s # Remove the directive 152s out=${out%:*} 152s if [[ ${directive} == "${out}" ]]; then 152s # There is not directive specified 152s directive=0 152s fi 152s __adsysctl_debug "The completion directive is: ${directive}" 152s __adsysctl_debug "The completions are: ${out}" 152s } 152s 152s __adsysctl_process_completion_results() { 152s local shellCompDirectiveError=1 152s local shellCompDirectiveNoSpace=2 152s local shellCompDirectiveNoFileComp=4 152s local shellCompDirectiveFilterFileExt=8 152s local shellCompDirectiveFilterDirs=16 152s local shellCompDirectiveKeepOrder=32 152s 152s if (((directive & shellCompDirectiveError) != 0)); then 152s # Error code. No completion. 152s __adsysctl_debug "Received error from custom completion go code" 152s return 152s else 152s if (((directive & shellCompDirectiveNoSpace) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no space" 152s compopt -o nospace 152s else 152s __adsysctl_debug "No space directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveKeepOrder) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s # no sort isn't supported for bash less than < 4.4 152s if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s else 152s __adsysctl_debug "Activating keep order" 152s compopt -o nosort 152s fi 152s else 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveNoFileComp) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no file completion" 152s compopt +o default 152s else 152s __adsysctl_debug "No file completion directive not supported in this version of bash" 152s fi 152s fi 152s fi 152s 152s # Separate activeHelp from normal completions 152s local completions=() 152s local activeHelp=() 152s __adsysctl_extract_activeHelp 152s 152s if (((directive & shellCompDirectiveFilterFileExt) != 0)); then 152s # File extension filtering 152s local fullFilter="" filter filteringCmd 152s 152s # Do not use quotes around the $completions variable or else newline 152s # characters will be kept. 152s for filter in ${completions[*]}; do 152s fullFilter+="$filter|" 152s done 152s 152s filteringCmd="_filedir $fullFilter" 152s __adsysctl_debug "File filtering command: $filteringCmd" 152s $filteringCmd 152s elif (((directive & shellCompDirectiveFilterDirs) != 0)); then 152s # File completion for directories only 152s 152s local subdir 152s subdir=${completions[0]} 152s if [[ -n $subdir ]]; then 152s __adsysctl_debug "Listing directories in $subdir" 152s pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return 152s else 152s __adsysctl_debug "Listing directories in ." 152s _filedir -d 152s fi 152s else 152s __adsysctl_handle_completion_types 152s fi 152s 152s __adsysctl_handle_special_char "$cur" : 152s __adsysctl_handle_special_char "$cur" = 152s 152s # Print the activeHelp statements before we finish 152s __adsysctl_handle_activeHelp 152s } 152s 152s __adsysctl_handle_activeHelp() { 152s # Print the activeHelp statements 152s if ((${#activeHelp[*]} != 0)); then 152s if [ -z $COMP_TYPE ]; then 152s # Bash v3 does not set the COMP_TYPE variable. 152s printf "\n"; 152s printf "%s\n" "${activeHelp[@]}" 152s printf "\n" 152s __adsysctl_reprint_commandLine 152s return 152s fi 152s 152s # Only print ActiveHelp on the second TAB press 152s if [ $COMP_TYPE -eq 63 ]; then 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s if ((${#COMPREPLY[*]} == 0)); then 152s # When there are no completion choices from the program, file completion 152s # may kick in if the program has not disabled it; in such a case, we want 152s # to know if any files will match what the user typed, so that we know if 152s # there will be completions presented, so that we know how to handle ActiveHelp. 152s # To find out, we actually trigger the file completion ourselves; 152s # the call to _filedir will fill COMPREPLY if files match. 152s if (((directive & shellCompDirectiveNoFileComp) == 0)); then 152s __adsysctl_debug "Listing files" 152s _filedir 152s fi 152s fi 152s 152s if ((${#COMPREPLY[*]} != 0)); then 152s # If there are completion choices to be shown, print a delimiter. 152s # Re-printing the command-line will automatically be done 152s # by the shell when it prints the completion choices. 152s printf -- "--" 152s else 152s # When there are no completion choices at all, we need 152s # to re-print the command-line since the shell will 152s # not be doing it itself. 152s __adsysctl_reprint_commandLine 152s fi 152s elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then 152s # For completion type: menu-complete/menu-complete-backward and insert-completions 152s # the completions are immediately inserted into the command-line, so we first 152s # print the activeHelp message and reprint the command-line since the shell won't. 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s __adsysctl_reprint_commandLine 152s fi 152s fi 152s } 152s 152s __adsysctl_reprint_commandLine() { 152s # The prompt format is only available from bash 4.4. 152s # We test if it is available before using it. 152s if (x=${PS1@P}) 2> /dev/null; then 152s printf "%s" "${PS1@P}${COMP_LINE[@]}" 152s else 152s # Can't print the prompt. Just print the 152s # text the user had typed, it is workable enough. 152s printf "%s" "${COMP_LINE[@]}" 152s fi 152s } 152s 152s # Separate activeHelp lines from real completions. 152s # Fills the $activeHelp and $completions arrays. 152s __adsysctl_extract_activeHelp() { 152s local activeHelpMarker="_activeHelp_ " 152s local endIndex=${#activeHelpMarker} 152s 152s while IFS='' read -r comp; do 152s [[ -z $comp ]] && continue 152s 152s if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then 152s comp=${comp:endIndex} 152s __adsysctl_debug "ActiveHelp found: $comp" 152s if [[ -n $comp ]]; then 152s activeHelp+=("$comp") 152s fi 152s else 152s # Not an activeHelp line but a normal completion 152s completions+=("$comp") 152s fi 152s done <<<"${out}" 152s } 152s 152s __adsysctl_handle_completion_types() { 152s __adsysctl_debug "__adsysctl_handle_completion_types: COMP_TYPE is $COMP_TYPE" 152s 152s case $COMP_TYPE in 152s 37|42) 152s # Type: menu-complete/menu-complete-backward and insert-completions 152s # If the user requested inserting one completion at a time, or all 152s # completions at once on the command-line we must remove the descriptions. 152s # https://github.com/spf13/cobra/issues/1508 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s local tab=$'\t' 152s 152s # Strip any description and escape the completion to handled special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]%%$tab*}") 152s 152s # Only consider the completions that match 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so we need to escape all completions again since they will 152s # all be inserted on the command-line. 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%q\n" "${COMPREPLY[@]}") 152s ;; 152s 152s *) 152s # Type: complete (normal completion) 152s __adsysctl_handle_standard_completion_case 152s ;; 152s esac 152s } 152s 152s __adsysctl_handle_standard_completion_case() { 152s local tab=$'\t' 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s # Short circuit to optimize if we don't have descriptions 152s if [[ "${completions[*]}" != *$tab* ]]; then 152s # First, escape the completions to handle special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]}") 152s # Only consider the completions that match what the user typed 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so, if there is only a single completion, we need to 152s # escape it again because it will be inserted on the command-line. If there are multiple 152s # completions, we don't want to escape them because they will be printed in a list 152s # and we don't want to show escape characters in that list. 152s if (( ${#COMPREPLY[@]} == 1 )); then 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]}") 152s fi 152s return 0 152s fi 152s 152s local longest=0 152s local compline 152s # Look for the longest completion so that we can format things nicely 152s while IFS='' read -r compline; do 152s [[ -z $compline ]] && continue 152s 152s # Before checking if the completion matches what the user typed, 152s # we need to strip any description and escape the completion to handle special 152s # characters because those escape characters are part of what the user typed. 152s # Don't call "printf" in a sub-shell because it will be much slower 152s # since we are in a loop. 152s printf -v comp "%q" "${compline%%$tab*}" &>/dev/null || comp=$(printf "%q" "${compline%%$tab*}") 152s 152s # Only consider the completions that match 152s [[ $comp == "$cur"* ]] || continue 152s 152s # The completions matches. Add it to the list of full completions including 152s # its description. We don't escape the completion because it may get printed 152s # in a list if there are more than one and we don't want show escape characters 152s # in that list. 152s COMPREPLY+=("$compline") 152s 152s # Strip any description before checking the length, and again, don't escape 152s # the completion because this length is only used when printing the completions 152s # in a list and we don't want show escape characters in that list. 152s comp=${compline%%$tab*} 152s if ((${#comp}>longest)); then 152s longest=${#comp} 152s fi 152s done < <(printf "%s\n" "${completions[@]}") 152s 152s # If there is a single completion left, remove the description text and escape any special characters 152s if ((${#COMPREPLY[*]} == 1)); then 152s __adsysctl_debug "COMPREPLY[0]: ${COMPREPLY[0]}" 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]%%$tab*}") 152s __adsysctl_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" 152s else 152s # Format the descriptions 152s __adsysctl_format_comp_descriptions $longest 152s fi 152s } 152s 152s __adsysctl_handle_special_char() 152s { 152s local comp="$1" 152s local char=$2 152s if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then 152s local word=${comp%"${comp##*${char}}"} 152s local idx=${#COMPREPLY[*]} 152s while ((--idx >= 0)); do 152s COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} 152s done 152s fi 152s } 152s 152s __adsysctl_format_comp_descriptions() 152s { 152s local tab=$'\t' 152s local comp desc maxdesclength 152s local longest=$1 152s 152s local i ci 152s for ci in ${!COMPREPLY[*]}; do 152s comp=${COMPREPLY[ci]} 152s # Properly format the description string which follows a tab character if there is one 152s if [[ "$comp" == *$tab* ]]; then 152s __adsysctl_debug "Original comp: $comp" 152s desc=${comp#*$tab} 152s comp=${comp%%$tab*} 152s 152s # $COLUMNS stores the current shell width. 152s # Remove an extra 4 because we add 2 spaces and 2 parentheses. 152s maxdesclength=$(( COLUMNS - longest - 4 )) 152s 152s # Make sure we can fit a description of at least 8 characters 152s # if we are to align the descriptions. 152s if ((maxdesclength > 8)); then 152s # Add the proper number of spaces to align the descriptions 152s for ((i = ${#comp} ; i < longest ; i++)); do 152s comp+=" " 152s done 152s else 152s # Don't pad the descriptions so we can fit more text after the completion 152s maxdesclength=$(( COLUMNS - ${#comp} - 4 )) 152s fi 152s 152s # If there is enough space for any description text, 152s # truncate the descriptions that are too long for the shell width 152s if ((maxdesclength > 0)); then 152s if ((${#desc} > maxdesclength)); then 152s desc=${desc:0:$(( maxdesclength - 1 ))} 152s desc+="…" 152s fi 152s comp+=" ($desc)" 152s fi 152s COMPREPLY[ci]=$comp 152s __adsysctl_debug "Final comp: $comp" 152s fi 152s done 152s } 152s 152s __start_adsysctl() 152s { 152s local cur prev words cword split 152s 152s COMPREPLY=() 152s 152s # Call _init_completion from the bash-completion package 152s # to prepare the arguments properly 152s if declare -F _init_completion >/dev/null 2>&1; then 152s _init_completion -n =: || return 152s else 152s __adsysctl_init_completion -n =: || return 152s fi 152s 152s __adsysctl_debug 152s __adsysctl_debug "========= starting completion logic ==========" 152s __adsysctl_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" 152s 152s # The user could have moved the cursor backwards on the command-line. 152s # We need to trigger completion from the $cword location, so we need 152s # to truncate the command-line ($words) up to the $cword location. 152s words=("${words[@]:0:$cword+1}") 152s __adsysctl_debug "Truncated words[*]: ${words[*]}," 152s 152s local out directive 152s __adsysctl_get_completion_results 152s __adsysctl_process_completion_results 152s } 152s 152s if [[ $(type -t compopt) = "builtin" ]]; then 152s complete -o default -F __start_adsysctl adsysctl 152s else 152s complete -o default -o nospace -F __start_adsysctl adsysctl 152s fi 152s 152s # ex: ts=4 sw=4 et filetype=sh 152s --- PASS: TestAppCanSigHupAfterExecute (0.00s) 152s === CONT TestAppCanQuitWhenExecute 152s --- PASS: TestAppCanQuitWhenExecute (0.00s) 152s === CONT TestAppUsageError 152s # bash completion V2 for adsysctl -*- shell-script -*- 152s 152s __adsysctl_debug() 152s { 152s if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then 152s echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 152s fi 152s } 152s 152s # Macs have bash3 for which the bash-completion package doesn't include 152s # _init_completion. This is a minimal version of that function. 152s __adsysctl_init_completion() 152s { 152s COMPREPLY=() 152s _get_comp_words_by_ref "$@" cur prev words cword 152s } 152s 152s # This function calls the adsysctl program to obtain the completion 152s # results and the directive. It fills the 'out' and 'directive' vars. 152s __adsysctl_get_completion_results() { 152s local requestComp lastParam lastChar args 152s 152s # Prepare the command to request completions for the program. 152s # Calling ${words[0]} instead of directly adsysctl allows handling aliases 152s args=("${words[@]:1}") 152s requestComp="${words[0]} __complete ${args[*]}" 152s 152s lastParam=${words[$((${#words[@]}-1))]} 152s lastChar=${lastParam:$((${#lastParam}-1)):1} 152s __adsysctl_debug "lastParam ${lastParam}, lastChar ${lastChar}" 152s 152s if [[ -z ${cur} && ${lastChar} != = ]]; then 152s # If the last parameter is complete (there is a space following it) 152s # We add an extra empty parameter so we can indicate this to the go method. 152s __adsysctl_debug "Adding extra empty parameter" 152s requestComp="${requestComp} ''" 152s fi 152s 152s # When completing a flag with an = (e.g., adsysctl -n=) 152s # bash focuses on the part after the =, so we need to remove 152s # the flag part from $cur 152s if [[ ${cur} == -*=* ]]; then 152s cur="${cur#*=}" 152s fi 152s 152s __adsysctl_debug "Calling ${requestComp}" 152s # Use eval to handle any environment variables and such 152s out=$(eval "${requestComp}" 2>/dev/null) 152s 152s # Extract the directive integer at the very end of the output following a colon (:) 152s directive=${out##*:} 152s # Remove the directive 152s out=${out%:*} 152s if [[ ${directive} == "${out}" ]]; then 152s # There is not directive specified 152s directive=0 152s fi 152s __adsysctl_debug "The completion directive is: ${directive}" 152s __adsysctl_debug "The completions are: ${out}" 152s } 152s 152s __adsysctl_process_completion_results() { 152s local shellCompDirectiveError=1 152s local shellCompDirectiveNoSpace=2 152s local shellCompDirectiveNoFileComp=4 152s local shellCompDirectiveFilterFileExt=8 152s local shellCompDirectiveFilterDirs=16 152s local shellCompDirectiveKeepOrder=32 152s 152s if (((directive & shellCompDirectiveError) != 0)); then 152s # Error code. No completion. 152s __adsysctl_debug "Received error from custom completion go code" 152s return 152s else 152s if (((directive & shellCompDirectiveNoSpace) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no space" 152s compopt -o nospace 152s else 152s __adsysctl_debug "No space directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveKeepOrder) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s # no sort isn't supported for bash less than < 4.4 152s if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s else 152s __adsysctl_debug "Activating keep order" 152s compopt -o nosort 152s fi 152s else 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveNoFileComp) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no file completion" 152s compopt +o default 152s else 152s __adsysctl_debug "No file completion directive not supported in this version of bash" 152s fi 152s fi 152s fi 152s 152s # Separate activeHelp from normal completions 152s local completions=() 152s local activeHelp=() 152s __adsysctl_extract_activeHelp 152s 152s if (((directive & shellCompDirectiveFilterFileExt) != 0)); then 152s # File extension filtering 152s local fullFilter="" filter filteringCmd 152s 152s # Do not use quotes around the $completions variable or else newline 152s # characters will be kept. 152s for filter in ${completions[*]}; do 152s fullFilter+="$filter|" 152s done 152s 152s filteringCmd="_filedir $fullFilter" 152s __adsysctl_debug "File filtering command: $filteringCmd" 152s $filteringCmd 152s elif (((directive & shellCompDirectiveFilterDirs) != 0)); then 152s # File completion for directories only 152s 152s local subdir 152s subdir=${completions[0]} 152s if [[ -n $subdir ]]; then 152s __adsysctl_debug "Listing directories in $subdir" 152s pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return 152s else 152s __adsysctl_debug "Listing directories in ." 152s _filedir -d 152s fi 152s else 152s __adsysctl_handle_completion_types 152s fi 152s 152s __adsysctl_handle_special_char "$cur" : 152s __adsysctl_handle_special_char "$cur" = 152s 152s # Print the activeHelp statements before we finish 152s __adsysctl_handle_activeHelp 152s } 152s 152s __adsysctl_handle_activeHelp() { 152s # Print the activeHelp statements 152s if ((${#activeHelp[*]} != 0)); then 152s if [ -z $COMP_TYPE ]; then 152s # Bash v3 does not set the COMP_TYPE variable. 152s printf "\n"; 152s printf "%s\n" "${activeHelp[@]}" 152s printf "\n" 152s __adsysctl_reprint_commandLine 152s return 152s fi 152s 152s # Only print ActiveHelp on the second TAB press 152s if [ $COMP_TYPE -eq 63 ]; then 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s if ((${#COMPREPLY[*]} == 0)); then 152s # When there are no completion choices from the program, file completion 152s # may kick in if the program has not disabled it; in such a case, we want 152s # to know if any files will match what the user typed, so that we know if 152s # there will be completions presented, so that we know how to handle ActiveHelp. 152s # To find out, we actually trigger the file completion ourselves; 152s # the call to _filedir will fill COMPREPLY if files match. 152s if (((directive & shellCompDirectiveNoFileComp) == 0)); then 152s __adsysctl_debug "Listing files" 152s _filedir 152s fi 152s fi 152s 152s if ((${#COMPREPLY[*]} != 0)); then 152s # If there are completion choices to be shown, print a delimiter. 152s # Re-printing the command-line will automatically be done 152s # by the shell when it prints the completion choices. 152s printf -- "--" 152s else 152s # When there are no completion choices at all, we need 152s # to re-print the command-line since the shell will 152s # not be doing it itself. 152s __adsysctl_reprint_commandLine 152s fi 152s elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then 152s # For completion type: menu-complete/menu-complete-backward and insert-completions 152s # the completions are immediately inserted into the command-line, so we first 152s # print the activeHelp message and reprint the command-line since the shell won't. 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s __adsysctl_reprint_commandLine 152s fi 152s fi 152s } 152s 152s __adsysctl_reprint_commandLine() { 152s # The prompt format is only available from bash 4.4. 152s # We test if it is available before using it. 152s if (x=${PS1@P}) 2> /dev/null; then 152s printf "%s" "${PS1@P}${COMP_LINE[@]}" 152s else 152s # Can't print the prompt. Just print the 152s # text the user had typed, it is workable enough. 152s printf "%s" "${COMP_LINE[@]}" 152s fi 152s } 152s 152s # Separate activeHelp lines from real completions. 152s # Fills the $activeHelp and $completions arrays. 152s __adsysctl_extract_activeHelp() { 152s local activeHelpMarker="_activeHelp_ " 152s local endIndex=${#activeHelpMarker} 152s 152s while IFS='' read -r comp; do 152s [[ -z $comp ]] && continue 152s 152s if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then 152s comp=${comp:endIndex} 152s __adsysctl_debug "ActiveHelp found: $comp" 152s if [[ -n $comp ]]; then 152s activeHelp+=("$comp") 152s fi 152s else 152s # Not an activeHelp line but a normal completion 152s completions+=("$comp") 152s fi 152s done <<<"${out}" 152s } 152s 152s __adsysctl_handle_completion_types() { 152s __adsysctl_debug "__adsysctl_handle_completion_types: COMP_TYPE is $COMP_TYPE" 152s 152s case $COMP_TYPE in 152s 37|42) 152s # Type: menu-complete/menu-complete-backward and insert-completions 152s # If the user requested inserting one completion at a time, or all 152s # completions at once on the command-line we must remove the descriptions. 152s # https://github.com/spf13/cobra/issues/1508 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s local tab=$'\t' 152s 152s # Strip any description and escape the completion to handled special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]%%$tab*}") 152s 152s # Only consider the completions that match 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so we need to escape all completions again since they will 152s # all be inserted on the command-line. 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%q\n" "${COMPREPLY[@]}") 152s ;; 152s 152s *) 152s # Type: complete (normal completion) 152s __adsysctl_handle_standard_completion_case 152s ;; 152s esac 152s } 152s 152s __adsysctl_handle_standard_completion_case() { 152s local tab=$'\t' 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s # Short circuit to optimize if we don't have descriptions 152s if [[ "${completions[*]}" != *$tab* ]]; then 152s # First, escape the completions to handle special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]}") 152s # Only consider the completions that match what the user typed 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so, if there is only a single completion, we need to 152s # escape it again because it will be inserted on the command-line. If there are multiple 152s # completions, we don't want to escape them because they will be printed in a list 152s # and we don't want to show escape characters in that list. 152s if (( ${#COMPREPLY[@]} == 1 )); then 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]}") 152s fi 152s return 0 152s fi 152s 152s local longest=0 152s local compline 152s # Look for the longest completion so that we can format things nicely 152s while IFS='' read -r compline; do 152s [[ -z $compline ]] && continue 152s 152s # Before checking if the completion matches what the user typed, 152s # we need to strip any description and escape the completion to handle special 152s # characters because those escape characters are part of what the user typed. 152s # Don't call "printf" in a sub-shell because it will be much slower 152s # since we are in a loop. 152s printf -v comp "%q" "${compline%%$tab*}" &>/dev/null || comp=$(printf "%q" "${compline%%$tab*}") 152s 152s # Only consider the completions that match 152s [[ $comp == "$cur"* ]] || continue 152s 152s # The completions matches. Add it to the list of full completions including 152s # its description. We don't escape the completion because it may get printed 152s # in a list if there are more than one and we don't want show escape characters 152s # in that list. 152s COMPREPLY+=("$compline") 152s 152s # Strip any description before checking the length, and again, don't escape 152s # the completion because this length is only used when printing the completions 152s # in a list and we don't want show escape characters in that list. 152s comp=${compline%%$tab*} 152s if ((${#comp}>longest)); then 152s longest=${#comp} 152s fi 152s done < <(printf "%s\n" "${completions[@]}") 152s 152s # If there is a single completion left, remove the description text and escape any special characters 152s if ((${#COMPREPLY[*]} == 1)); then 152s __adsysctl_debug "COMPREPLY[0]: ${COMPREPLY[0]}" 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]%%$tab*}") 152s __adsysctl_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" 152s else 152s # Format the descriptions 152s __adsysctl_format_comp_descriptions $longest 152s fi 152s } 152s 152s __adsysctl_handle_special_char() 152s { 152s local comp="$1" 152s local char=$2 152s if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then 152s local word=${comp%"${comp##*${char}}"} 152s local idx=${#COMPREPLY[*]} 152s while ((--idx >= 0)); do 152s COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} 152s done 152s fi 152s } 152s 152s __adsysctl_format_comp_descriptions() 152s { 152s local tab=$'\t' 152s local comp desc maxdesclength 152s local longest=$1 152s 152s local i ci 152s for ci in ${!COMPREPLY[*]}; do 152s comp=${COMPREPLY[ci]} 152s # Properly format the description string which follows a tab character if there is one 152s if [[ "$comp" == *$tab* ]]; then 152s __adsysctl_debug "Original comp: $comp" 152s desc=${comp#*$tab} 152s comp=${comp%%$tab*} 152s 152s # $COLUMNS stores the current shell width. 152s # Remove an extra 4 because we add 2 spaces and 2 parentheses. 152s maxdesclength=$(( COLUMNS - longest - 4 )) 152s 152s # Make sure we can fit a description of at least 8 characters 152s # if we are to align the descriptions. 152s if ((maxdesclength > 8)); then 152s # Add the proper number of spaces to align the descriptions 152s for ((i = ${#comp} ; i < longest ; i++)); do 152s comp+=" " 152s done 152s else 152s # Don't pad the descriptions so we can fit more text after the completion 152s maxdesclength=$(( COLUMNS - ${#comp} - 4 )) 152s fi 152s 152s # If there is enough space for any description text, 152s # truncate the descriptions that are too long for the shell width 152s if ((maxdesclength > 0)); then 152s if ((${#desc} > maxdesclength)); then 152s desc=${desc:0:$(( maxdesclength - 1 ))} 152s desc+="…" 152s fi 152s comp+=" ($desc)" 152s fi 152s COMPREPLY[ci]=$comp 152s __adsysctl_debug "Final comp: $comp" 152s fi 152s done 152s } 152s 152s __start_adsysctl() 152s { 152s local cur prev words cword split 152s 152s COMPREPLY=() 152s 152s # Call _init_completion from the bash-completion package 152s # to prepare the arguments properly 152s if declare -F _init_completion >/dev/null 2>&1; then 152s _init_completion -n =: || return 152s else 152s __adsysctl_init_completion -n =: || return 152s fi 152s 152s __adsysctl_debug 152s __adsysctl_debug "========= starting completion logic ==========" 152s __adsysctl_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" 152s 152s # The user could have moved the cursor backwards on the command-line. 152s # We need to trigger completion from the $cword location, so we need 152s # to truncate the command-line ($words) up to the $cword location. 152s words=("${words[@]:0:$cword+1}") 152s __adsysctl_debug "Truncated words[*]: ${words[*]}," 152s 152s local out directive 152s __adsysctl_get_completion_results 152s __adsysctl_process_completion_results 152s } 152s 152s if [[ $(type -t compopt) = "builtin" ]]; then 152s complete -o default -F __start_adsysctl adsysctl 152s else 152s complete -o default -o nospace -F __start_adsysctl adsysctl 152s fi 152s 152s # ex: ts=4 sw=4 et filetype=sh 152s --- PASS: TestAppNoUsageError (0.00s) 152s === CONT TestAppCompletion 152s Usage: 152s adsysctl COMMAND [flags] 152s adsysctl [command] 152s 152s Available Commands: 152s applied Print last applied GPOs for current or given user/machine 152s completion Generate the autocompletion script for the specified shell 152s doc Documentation 152s help Help about any command 152s policy Policy management 152s service Service management 152s update Updates/Create a policy for current user or given user with its kerberos ticket 152s version Returns version of client and service 152s 152s Flags: 152s -c, --config string use a specific configuration file 152s -h, --help help for adsysctl 152s -s, --socket string socket path to use between daemon and client. Can be overridden by systemd socket activation. (default "/run/adsysd.sock") 152s -t, --timeout int time in seconds before cancelling the client request when the server gives no result. 0 for no timeout. (default 30) 152s -v, --verbose count issue INFO (-v), DEBUG (-vv) or DEBUG with caller (-vvv) output 152s 152s Use "adsysctl [command] --help" for more information about a command. 152s 152s --- PASS: TestAppUsageError (0.00s) 152s === CONT TestAppHelp 152s # bash completion V2 for adsysctl -*- shell-script -*- 152s 152s __adsysctl_debug() 152s { 152s if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then 152s echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 152s fi 152s } 152s 152s # Macs have bash3 for which the bash-completion package doesn't include 152s # _init_completion. This is a minimal version of that function. 152s __adsysctl_init_completion() 152s { 152s COMPREPLY=() 152s _get_comp_words_by_ref "$@" cur prev words cword 152s } 152s 152s # This function calls the adsysctl program to obtain the completion 152s # results and the directive. It fills the 'out' and 'directive' vars. 152s __adsysctl_get_completion_results() { 152s local requestComp lastParam lastChar args 152s 152s # Prepare the command to request completions for the program. 152s # Calling ${words[0]} instead of directly adsysctl allows handling aliases 152s args=("${words[@]:1}") 152s requestComp="${words[0]} __complete ${args[*]}" 152s 152s lastParam=${words[$((${#words[@]}-1))]} 152s lastChar=${lastParam:$((${#lastParam}-1)):1} 152s __adsysctl_debug "lastParam ${lastParam}, lastChar ${lastChar}" 152s 152s if [[ -z ${cur} && ${lastChar} != = ]]; then 152s # If the last parameter is complete (there is a space following it) 152s # We add an extra empty parameter so we can indicate this to the go method. 152s __adsysctl_debug "Adding extra empty parameter" 152s requestComp="${requestComp} ''" 152s fi 152s 152s # When completing a flag with an = (e.g., adsysctl -n=) 152s # bash focuses on the part after the =, so we need to remove 152s # the flag part from $cur 152s if [[ ${cur} == -*=* ]]; then 152s cur="${cur#*=}" 152s fi 152s 152s __adsysctl_debug "Calling ${requestComp}" 152s # Use eval to handle any environment variables and such 152s out=$(eval "${requestComp}" 2>/dev/null) 152s 152s # Extract the directive integer at the very end of the output following a colon (:) 152s directive=${out##*:} 152s # Remove the directive 152s out=${out%:*} 152s if [[ ${directive} == "${out}" ]]; then 152s # There is not directive specified 152s directive=0 152s fi 152s __adsysctl_debug "The completion directive is: ${directive}" 152s __adsysctl_debug "The completions are: ${out}" 152s } 152s 152s __adsysctl_process_completion_results() { 152s local shellCompDirectiveError=1 152s local shellCompDirectiveNoSpace=2 152s local shellCompDirectiveNoFileComp=4 152s local shellCompDirectiveFilterFileExt=8 152s local shellCompDirectiveFilterDirs=16 152s local shellCompDirectiveKeepOrder=32 152s 152s if (((directive & shellCompDirectiveError) != 0)); then 152s # Error code. No completion. 152s __adsysctl_debug "Received error from custom completion go code" 152s return 152s else 152s if (((directive & shellCompDirectiveNoSpace) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no space" 152s compopt -o nospace 152s else 152s __adsysctl_debug "No space directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveKeepOrder) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s # no sort isn't supported for bash less than < 4.4 152s if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s else 152s __adsysctl_debug "Activating keep order" 152s compopt -o nosort 152s fi 152s else 152s __adsysctl_debug "No sort directive not supported in this version of bash" 152s fi 152s fi 152s if (((directive & shellCompDirectiveNoFileComp) != 0)); then 152s if [[ $(type -t compopt) == builtin ]]; then 152s __adsysctl_debug "Activating no file completion" 152s compopt +o default 152s else 152s __adsysctl_debug "No file completion directive not supported in this version of bash" 152s fi 152s fi 152s fi 152s 152s # Separate activeHelp from normal completions 152s local completions=() 152s local activeHelp=() 152s __adsysctl_extract_activeHelp 152s 152s if (((directive & shellCompDirectiveFilterFileExt) != 0)); then 152s # File extension filtering 152s local fullFilter="" filter filteringCmd 152s 152s # Do not use quotes around the $completions variable or else newline 152s # characters will be kept. 152s for filter in ${completions[*]}; do 152s fullFilter+="$filter|" 152s done 152s 152s filteringCmd="_filedir $fullFilter" 152s __adsysctl_debug "File filtering command: $filteringCmd" 152s $filteringCmd 152s elif (((directive & shellCompDirectiveFilterDirs) != 0)); then 152s # File completion for directories only 152s 152s local subdir 152s subdir=${completions[0]} 152s if [[ -n $subdir ]]; then 152s __adsysctl_debug "Listing directories in $subdir" 152s pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return 152s else 152s __adsysctl_debug "Listing directories in ." 152s _filedir -d 152s fi 152s else 152s __adsysctl_handle_completion_types 152s fi 152s 152s __adsysctl_handle_special_char "$cur" : 152s __adsysctl_handle_special_char "$cur" = 152s 152s # Print the activeHelp statements before we finish 152s __adsysctl_handle_activeHelp 152s } 152s 152s __adsysctl_handle_activeHelp() { 152s # Print the activeHelp statements 152s if ((${#activeHelp[*]} != 0)); then 152s if [ -z $COMP_TYPE ]; then 152s # Bash v3 does not set the COMP_TYPE variable. 152s printf "\n"; 152s printf "%s\n" "${activeHelp[@]}" 152s printf "\n" 152s __adsysctl_reprint_commandLine 152s return 152s fi 152s 152s # Only print ActiveHelp on the second TAB press 152s if [ $COMP_TYPE -eq 63 ]; then 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s if ((${#COMPREPLY[*]} == 0)); then 152s # When there are no completion choices from the program, file completion 152s # may kick in if the program has not disabled it; in such a case, we want 152s # to know if any files will match what the user typed, so that we know if 152s # there will be completions presented, so that we know how to handle ActiveHelp. 152s # To find out, we actually trigger the file completion ourselves; 152s # the call to _filedir will fill COMPREPLY if files match. 152s if (((directive & shellCompDirectiveNoFileComp) == 0)); then 152s __adsysctl_debug "Listing files" 152s _filedir 152s fi 152s fi 152s 152s if ((${#COMPREPLY[*]} != 0)); then 152s # If there are completion choices to be shown, print a delimiter. 152s # Re-printing the command-line will automatically be done 152s # by the shell when it prints the completion choices. 152s printf -- "--" 152s else 152s # When there are no completion choices at all, we need 152s # to re-print the command-line since the shell will 152s # not be doing it itself. 152s __adsysctl_reprint_commandLine 152s fi 152s elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then 152s # For completion type: menu-complete/menu-complete-backward and insert-completions 152s # the completions are immediately inserted into the command-line, so we first 152s # print the activeHelp message and reprint the command-line since the shell won't. 152s printf "\n" 152s printf "%s\n" "${activeHelp[@]}" 152s 152s __adsysctl_reprint_commandLine 152s fi 152s fi 152s } 152s 152s __adsysctl_reprint_commandLine() { 152s # The prompt format is only available from bash 4.4. 152s # We test if it is available before using it. 152s if (x=${PS1@P}) 2> /dev/null; then 152s printf "%s" "${PS1@P}${COMP_LINE[@]}" 152s else 152s # Can't print the prompt. Just print the 152s # text the user had typed, it is workable enough. 152s printf "%s" "${COMP_LINE[@]}" 152s fi 152s } 152s 152s # Separate activeHelp lines from real completions. 152s # Fills the $activeHelp and $completions arrays. 152s __adsysctl_extract_activeHelp() { 152s local activeHelpMarker="_activeHelp_ " 152s local endIndex=${#activeHelpMarker} 152s 152s while IFS='' read -r comp; do 152s [[ -z $comp ]] && continue 152s 152s if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then 152s comp=${comp:endIndex} 152s __adsysctl_debug "ActiveHelp found: $comp" 152s if [[ -n $comp ]]; then 152s activeHelp+=("$comp") 152s fi 152s else 152s # Not an activeHelp line but a normal completion 152s completions+=("$comp") 152s fi 152s done <<<"${out}" 152s } 152s 152s __adsysctl_handle_completion_types() { 152s __adsysctl_debug "__adsysctl_handle_completion_types: COMP_TYPE is $COMP_TYPE" 152s 152s case $COMP_TYPE in 152s 37|42) 152s # Type: menu-complete/menu-complete-backward and insert-completions 152s # If the user requested inserting one completion at a time, or all 152s # completions at once on the command-line we must remove the descriptions. 152s # https://github.com/spf13/cobra/issues/1508 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s local tab=$'\t' 152s 152s # Strip any description and escape the completion to handled special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]%%$tab*}") 152s 152s # Only consider the completions that match 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so we need to escape all completions again since they will 152s # all be inserted on the command-line. 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%q\n" "${COMPREPLY[@]}") 152s ;; 152s 152s *) 152s # Type: complete (normal completion) 152s __adsysctl_handle_standard_completion_case 152s ;; 152s esac 152s } 152s 152s __adsysctl_handle_standard_completion_case() { 152s local tab=$'\t' 152s 152s # If there are no completions, we don't need to do anything 152s (( ${#completions[@]} == 0 )) && return 0 152s 152s # Short circuit to optimize if we don't have descriptions 152s if [[ "${completions[*]}" != *$tab* ]]; then 152s # First, escape the completions to handle special characters 152s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]}") 152s # Only consider the completions that match what the user typed 152s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 152s 152s # compgen looses the escaping so, if there is only a single completion, we need to 152s # escape it again because it will be inserted on the command-line. If there are multiple 152s # completions, we don't want to escape them because they will be printed in a list 152s # and we don't want to show escape characters in that list. 152s if (( ${#COMPREPLY[@]} == 1 )); then 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]}") 152s fi 152s return 0 152s fi 152s 152s local longest=0 152s local compline 152s # Look for the longest completion so that we can format things nicely 152s while IFS='' read -r compline; do 152s [[ -z $compline ]] && continue 152s 152s # Before checking if the completion matches what the user typed, 152s # we need to strip any description and escape the completion to handle special 152s # characters because those escape characters are part of what the user typed. 152s # Don't call "printf" in a sub-shell because it will be much slower 152s # since we are in a loop. 152s printf -v comp "%q" "${compline%%$tab*}" &>/dev/null || comp=$(printf "%q" "${compline%%$tab*}") 152s 152s # Only consider the completions that match 152s [[ $comp == "$cur"* ]] || continue 152s 152s # The completions matches. Add it to the list of full completions including 152s # its description. We don't escape the completion because it may get printed 152s # in a list if there are more than one and we don't want show escape characters 152s # in that list. 152s COMPREPLY+=("$compline") 152s 152s # Strip any description before checking the length, and again, don't escape 152s # the completion because this length is only used when printing the completions 152s # in a list and we don't want show escape characters in that list. 152s comp=${compline%%$tab*} 152s if ((${#comp}>longest)); then 152s longest=${#comp} 152s fi 152s done < <(printf "%s\n" "${completions[@]}") 152s 152s # If there is a single completion left, remove the description text and escape any special characters 152s if ((${#COMPREPLY[*]} == 1)); then 152s __adsysctl_debug "COMPREPLY[0]: ${COMPREPLY[0]}" 152s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]%%$tab*}") 152s __adsysctl_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" 152s else 152s # Format the descriptions 152s __adsysctl_format_comp_descriptions $longest 152s fi 152s } 152s 152s __adsysctl_handle_special_char() 152s { 152s local comp="$1" 152s local char=$2 152s if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then 152s local word=${comp%"${comp##*${char}}"} 152s local idx=${#COMPREPLY[*]} 152s while ((--idx >= 0)); do 152s COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} 152s done 152s fi 152s } 152s 152s __adsysctl_format_comp_descriptions() 152s { 152s local tab=$'\t' 152s local comp desc maxdesclength 152s local longest=$1 152s 152s local i ci 152s for ci in ${!COMPREPLY[*]}; do 152s comp=${COMPREPLY[ci]} 152s # Properly format the description string which follows a tab character if there is one 152s if [[ "$comp" == *$tab* ]]; then 152s __adsysctl_debug "Original comp: $comp" 152s desc=${comp#*$tab} 152s comp=${comp%%$tab*} 152s 152s # $COLUMNS stores the current shell width. 152s # Remove an extra 4 because we add 2 spaces and 2 parentheses. 152s maxdesclength=$(( COLUMNS - longest - 4 )) 152s 152s # Make sure we can fit a description of at least 8 characters 152s # if we are to align the descriptions. 152s if ((maxdesclength > 8)); then 152s # Add the proper number of spaces to align the descriptions 152s for ((i = ${#comp} ; i < longest ; i++)); do 152s comp+=" " 152s done 152s else 152s # Don't pad the descriptions so we can fit more text after the completion 152s maxdesclength=$(( COLUMNS - ${#comp} - 4 )) 152s fi 152s 152s # If there is enough space for any description text, 152s # truncate the descriptions that are too long for the shell width 152s if ((maxdesclength > 0)); then 152s if ((${#desc} > maxdesclength)); then 152s desc=${desc:0:$(( maxdesclength - 1 ))} 152s desc+="…" 152s fi 152s comp+=" ($desc)" 152s fi 152s COMPREPLY[ci]=$comp 152s __adsysctl_debug "Final comp: $comp" 152s fi 152s done 152s } 152s 152s __start_adsysctl() 152s { 152s local cur prev words cword split 152s 152s COMPREPLY=() 152s 152s # Call _init_completion from the bash-completion package 152s # to prepare the arguments properly 152s if declare -F _init_completion >/dev/null 2>&1; then 152s _init_completion -n =: || return 152s else 152s __adsysctl_init_completion -n =: || return 152s fi 152s 152s __adsysctl_debug 152s __adsysctl_debug "========= starting completion logic ==========" 152s __adsysctl_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" 152s 152s # The user could have moved the cursor backwards on the command-line. 152s # We need to trigger completion from the $cword location, so we need 152s # to truncate the command-line ($words) up to the $cword location. 152s words=("${words[@]:0:$cword+1}") 152s __adsysctl_debug "Truncated words[*]: ${words[*]}," 152s 152s local out directive 152s __adsysctl_get_completion_results 152s __adsysctl_process_completion_results 152s } 152s 152s if [[ $(type -t compopt) = "builtin" ]]; then 152s complete -o default -F __start_adsysctl adsysctl 152s else 152s complete -o default -o nospace -F __start_adsysctl adsysctl 152s fi 152s 152s # ex: ts=4 sw=4 et filetype=sh 152s --- PASS: TestAppCompletion (0.00s) 152s Active Directory integration bridging toolset command line tool. 152s 152s Usage: 152s adsysctl COMMAND [flags] 152s adsysctl [command] 152s 152s Available Commands: 152s applied Print last applied GPOs for current or given user/machine 152s completion Generate the autocompletion script for the specified shell 152s doc Documentation 152s help Help about any command 152s policy Policy management 152s service Service management 152s update Updates/Create a policy for current user or given user with its kerberos ticket 152s version Returns version of client and service 152s 152s Flags: 152s -c, --config string use a specific configuration file 152s -h, --help help for adsysctl 152s -s, --socket string socket path to use between daemon and client. Can be overridden by systemd socket activation. (default "/run/adsysd.sock") 152s -t, --timeout int time in seconds before cancelling the client request when the server gives no result. 0 for no timeout. (default 30) 152s -v, --verbose count issue INFO (-v), DEBUG (-vv) or DEBUG with caller (-vvv) output 152s 152s Use "adsysctl [command] --help" for more information about a command. 152s --- PASS: TestAppHelp (0.00s) 152s PASS 152s ok github.com/ubuntu/adsys/cmd/adsysd/client 0.061s 156s === RUN TestAppHelp 156s === PAUSE TestAppHelp 156s === RUN TestAppCompletion 156s === PAUSE TestAppCompletion 156s === RUN TestAppVersion 156s --- PASS: TestAppVersion (0.00s) 156s === RUN TestAppNoUsageError 156s === PAUSE TestAppNoUsageError 156s === RUN TestAppUsageError 156s === PAUSE TestAppUsageError 156s === RUN TestAppCanQuitWhenExecute 156s time="2025-10-18T16:22:44Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s --- PASS: TestAppCanQuitWhenExecute (0.06s) 156s === RUN TestAppCanQuitAfterExecute 156s time="2025-10-18T16:22:44Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s --- PASS: TestAppCanQuitAfterExecute (1.00s) 156s === RUN TestAppCanQuitWithoutExecute 156s === PAUSE TestAppCanQuitWithoutExecute 156s === RUN TestAppRunFailsOnDaemonCreationAndQuit 156s time="2025-10-18T16:22:45Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s --- PASS: TestAppRunFailsOnDaemonCreationAndQuit (0.01s) 156s === RUN TestAppRunFailsOnServiceCreationAndQuit 156s --- PASS: TestAppRunFailsOnServiceCreationAndQuit (0.00s) 156s === RUN TestAppCanSigHupWhenExecute 156s time="2025-10-18T16:22:45Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s --- PASS: TestAppCanSigHupWhenExecute (0.06s) 156s === RUN TestAppCanSigHupAfterExecute 156s time="2025-10-18T16:22:45Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s --- PASS: TestAppCanSigHupAfterExecute (1.01s) 156s === RUN TestAppCanSigHupWithoutExecute 156s --- PASS: TestAppCanSigHupWithoutExecute (0.00s) 156s === RUN TestAppTimeout 156s time="2025-10-18T16:22:47Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s --- PASS: TestAppTimeout (1.01s) 156s === RUN TestAppGetRootCmd 156s === PAUSE TestAppGetRootCmd 156s === RUN TestConfigLoad 156s time="2025-10-18T16:22:48Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s time="2025-10-18T16:22:48Z" level=info msg="Serving on /tmp/TestConfigLoad417489789/001/adsys.socket" 156s time="2025-10-18T16:22:48Z" level=info msg="Stopping daemon requested." 156s time="2025-10-18T16:22:48Z" level=info msg="Wait for active requests to close." 156s --- PASS: TestConfigLoad (0.06s) 156s === RUN TestConfigChange 156s time="2025-10-18T16:22:48Z" level=warning msg="could not get system startup time? Can’t list next refresh: Process org.freedesktop.systemd1 exited with status 1" 156s time="2025-10-18T16:22:48Z" level=info msg="Serving on /tmp/TestConfigChange818427660/001/adsys.socket" 156s time="2025-10-18T16:22:48Z" level=info msg="Stopping daemon requested." 156s time="2025-10-18T16:22:48Z" level=info msg="Wait for active requests to close." 156s time="2025-10-18T16:22:48Z" level=debug msg="All connections have now ended." 156s time="2025-10-18T16:22:48Z" level=debug msg=Quitting 156s --- PASS: TestConfigChange (0.16s) 156s === CONT TestAppHelp 156s Active Directory integration bridging toolset daemon. 156s 156s Usage: 156s adsysd COMMAND [flags] 156s adsysd [command] 156s 156s Available Commands: 156s completion Generate the autocompletion script for the specified shell 156s help Help about any command 156s version Returns version of service and exits 156s 156s Flags: 156s --ad-backend string Active Directory authentication backend (default "sssd") 156s --cache-dir string directory where ADSys caches GPOs downloads and policies. (default "/var/cache/adsys") 156s -c, --config string use a specific configuration file 156s --gpo-list-timeout int time in seconds for the GPO list. 0 for no timeout. (default 10) 156s -h, --help help for adsysd 156s --run-dir string directory where ADSys stores transient information erased on reboot. (default "/run/adsys") 156s -s, --socket string socket path to use between daemon and client. Can be overridden by systemd socket activation. (default "/run/adsysd.sock") 156s --sssd.cache-dir string SSSd cache directory (default "/var/lib/sss/db") 156s --sssd.config string SSSd config file path (default "/etc/sssd/sssd.conf") 156s -t, --timeout int time in seconds without activity before the service exists. 0 for no timeout. (default 120) 156s -v, --verbose count issue INFO (-v), DEBUG (-vv) or DEBUG with caller (-vvv) output 156s 156s Use "adsysd [command] --help" for more information about a command. 156s --- PASS: TestAppHelp (0.00s) 156s === CONT TestAppGetRootCmd 156s --- PASS: TestAppGetRootCmd (0.00s) 156s === CONT TestAppCanQuitWithoutExecute 156s daemon_test.go:104: We need to initialize the daemon first, so this is not possible and will hang forever (ready not closed) 156s --- SKIP: TestAppCanQuitWithoutExecute (0.00s) 156s === CONT TestAppUsageError 156s --- PASS: TestAppUsageError (0.00s) 156s === CONT TestAppNoUsageError 156s # bash completion V2 for adsysd -*- shell-script -*- 156s 156s __adsysd_debug() 156s { 156s if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then 156s echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 156s fi 156s } 156s 156s # Macs have bash3 for which the bash-completion package doesn't include 156s # _init_completion. This is a minimal version of that function. 156s __adsysd_init_completion() 156s { 156s COMPREPLY=() 156s _get_comp_words_by_ref "$@" cur prev words cword 156s } 156s 156s # This function calls the adsysd program to obtain the completion 156s # results and the directive. It fills the 'out' and 'directive' vars. 156s __adsysd_get_completion_results() { 156s local requestComp lastParam lastChar args 156s 156s # Prepare the command to request completions for the program. 156s # Calling ${words[0]} instead of directly adsysd allows handling aliases 156s args=("${words[@]:1}") 156s requestComp="${words[0]} __complete ${args[*]}" 156s 156s lastParam=${words[$((${#words[@]}-1))]} 156s lastChar=${lastParam:$((${#lastParam}-1)):1} 156s __adsysd_debug "lastParam ${lastParam}, lastChar ${lastChar}" 156s 156s if [[ -z ${cur} && ${lastChar} != = ]]; then 156s # If the last parameter is complete (there is a space following it) 156s # We add an extra empty parameter so we can indicate this to the go method. 156s __adsysd_debug "Adding extra empty parameter" 156s requestComp="${requestComp} ''" 156s fi 156s 156s # When completing a flag with an = (e.g., adsysd -n=) 156s # bash focuses on the part after the =, so we need to remove 156s # the flag part from $cur 156s if [[ ${cur} == -*=* ]]; then 156s cur="${cur#*=}" 156s fi 156s 156s __adsysd_debug "Calling ${requestComp}" 156s # Use eval to handle any environment variables and such 156s out=$(eval "${requestComp}" 2>/dev/null) 156s 156s # Extract the directive integer at the very end of the output following a colon (:) 156s directive=${out##*:} 156s # Remove the directive 156s out=${out%:*} 156s if [[ ${directive} == "${out}" ]]; then 156s # There is not directive specified 156s directive=0 156s fi 156s __adsysd_debug "The completion directive is: ${directive}" 156s __adsysd_debug "The completions are: ${out}" 156s } 156s 156s __adsysd_process_completion_results() { 156s local shellCompDirectiveError=1 156s local shellCompDirectiveNoSpace=2 156s local shellCompDirectiveNoFileComp=4 156s local shellCompDirectiveFilterFileExt=8 156s local shellCompDirectiveFilterDirs=16 156s local shellCompDirectiveKeepOrder=32 156s 156s if (((directive & shellCompDirectiveError) != 0)); then 156s # Error code. No completion. 156s __adsysd_debug "Received error from custom completion go code" 156s return 156s else 156s if (((directive & shellCompDirectiveNoSpace) != 0)); then 156s if [[ $(type -t compopt) == builtin ]]; then 156s __adsysd_debug "Activating no space" 156s compopt -o nospace 156s else 156s __adsysd_debug "No space directive not supported in this version of bash" 156s fi 156s fi 156s if (((directive & shellCompDirectiveKeepOrder) != 0)); then 156s if [[ $(type -t compopt) == builtin ]]; then 156s # no sort isn't supported for bash less than < 4.4 156s if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then 156s __adsysd_debug "No sort directive not supported in this version of bash" 156s else 156s __adsysd_debug "Activating keep order" 156s compopt -o nosort 156s fi 156s else 156s __adsysd_debug "No sort directive not supported in this version of bash" 156s fi 156s fi 156s if (((directive & shellCompDirectiveNoFileComp) != 0)); then 156s if [[ $(type -t compopt) == builtin ]]; then 156s __adsysd_debug "Activating no file completion" 156s compopt +o default 156s else 156s __adsysd_debug "No file completion directive not supported in this version of bash" 156s fi 156s fi 156s fi 156s 156s # Separate activeHelp from normal completions 156s local completions=() 156s local activeHelp=() 156s __adsysd_extract_activeHelp 156s 156s if (((directive & shellCompDirectiveFilterFileExt) != 0)); then 156s # File extension filtering 156s local fullFilter="" filter filteringCmd 156s 156s # Do not use quotes around the $completions variable or else newline 156s # characters will be kept. 156s for filter in ${completions[*]}; do 156s fullFilter+="$filter|" 156s done 156s 156s filteringCmd="_filedir $fullFilter" 156s __adsysd_debug "File filtering command: $filteringCmd" 156s $filteringCmd 156s elif (((directive & shellCompDirectiveFilterDirs) != 0)); then 156s # File completion for directories only 156s 156s local subdir 156s subdir=${completions[0]} 156s if [[ -n $subdir ]]; then 156s __adsysd_debug "Listing directories in $subdir" 156s pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return 156s else 156s __adsysd_debug "Listing directories in ." 156s _filedir -d 156s fi 156s else 156s __adsysd_handle_completion_types 156s fi 156s 156s __adsysd_handle_special_char "$cur" : 156s __adsysd_handle_special_char "$cur" = 156s 156s # Print the activeHelp statements before we finish 156s __adsysd_handle_activeHelp 156s } 156s 156s __adsysd_handle_activeHelp() { 156s # Print the activeHelp statements 156s if ((${#activeHelp[*]} != 0)); then 156s if [ -z $COMP_TYPE ]; then 156s # Bash v3 does not set the COMP_TYPE variable. 156s printf "\n"; 156s printf "%s\n" "${activeHelp[@]}" 156s printf "\n" 156s __adsysd_reprint_commandLine 156s return 156s fi 156s 156s # Only print ActiveHelp on the second TAB press 156s if [ $COMP_TYPE -eq 63 ]; then 156s printf "\n" 156s printf "%s\n" "${activeHelp[@]}" 156s 156s if ((${#COMPREPLY[*]} == 0)); then 156s # When there are no completion choices from the program, file completion 156s # may kick in if the program has not disabled it; in such a case, we want 156s # to know if any files will match what the user typed, so that we know if 156s # there will be completions presented, so that we know how to handle ActiveHelp. 156s # To find out, we actually trigger the file completion ourselves; 156s # the call to _filedir will fill COMPREPLY if files match. 156s if (((directive & shellCompDirectiveNoFileComp) == 0)); then 156s __adsysd_debug "Listing files" 156s _filedir 156s fi 156s fi 156s 156s if ((${#COMPREPLY[*]} != 0)); then 156s # If there are completion choices to be shown, print a delimiter. 156s # Re-printing the command-line will automatically be done 156s # by the shell when it prints the completion choices. 156s printf -- "--" 156s else 156s # When there are no completion choices at all, we need 156s # to re-print the command-line since the shell will 156s # not be doing it itself. 156s __adsysd_reprint_commandLine 156s fi 156s elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then 156s # For completion type: menu-complete/menu-complete-backward and insert-completions 156s # the completions are immediately inserted into the command-line, so we first 156s # print the activeHelp message and reprint the command-line since the shell won't. 156s printf "\n" 156s printf "%s\n" "${activeHelp[@]}" 156s 156s __adsysd_reprint_commandLine 156s fi 156s fi 156s } 156s 156s __adsysd_reprint_commandLine() { 156s # The prompt format is only available from bash 4.4. 156s # We test if it is available before using it. 156s if (x=${PS1@P}) 2> /dev/null; then 156s printf "%s" "${PS1@P}${COMP_LINE[@]}" 156s else 156s # Can't print the prompt. Just print the 156s # text the user had typed, it is workable enough. 156s printf "%s" "${COMP_LINE[@]}" 156s fi 156s } 156s 156s # Separate activeHelp lines from real completions. 156s # Fills the $activeHelp and $completions arrays. 156s __adsysd_extract_activeHelp() { 156s local activeHelpMarker="_activeHelp_ " 156s local endIndex=${#activeHelpMarker} 156s 156s while IFS='' read -r comp; do 156s [[ -z $comp ]] && continue 156s 156s if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then 156s comp=${comp:endIndex} 156s __adsysd_debug "ActiveHelp found: $comp" 156s if [[ -n $comp ]]; then 156s activeHelp+=("$comp") 156s fi 156s else 156s # Not an activeHelp line but a normal completion 156s completions+=("$comp") 156s fi 156s done <<<"${out}" 156s } 156s 156s __adsysd_handle_completion_types() { 156s __adsysd_debug "__adsysd_handle_completion_types: COMP_TYPE is $COMP_TYPE" 156s 156s case $COMP_TYPE in 156s 37|42) 156s # Type: menu-complete/menu-complete-backward and insert-completions 156s # If the user requested inserting one completion at a time, or all 156s # completions at once on the command-line we must remove the descriptions. 156s # https://github.com/spf13/cobra/issues/1508 156s 156s # If there are no completions, we don't need to do anything 156s (( ${#completions[@]} == 0 )) && return 0 156s 156s local tab=$'\t' 156s 156s # Strip any description and escape the completion to handled special characters 156s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]%%$tab*}") 156s 156s # Only consider the completions that match 156s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 156s 156s # compgen looses the escaping so we need to escape all completions again since they will 156s # all be inserted on the command-line. 156s IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%q\n" "${COMPREPLY[@]}") 156s ;; 156s 156s *) 156s # Type: complete (normal completion) 156s __adsysd_handle_standard_completion_case 156s ;; 156s esac 156s } 156s 156s __adsysd_handle_standard_completion_case() { 156s local tab=$'\t' 156s 156s # If there are no completions, we don't need to do anything 156s (( ${#completions[@]} == 0 )) && return 0 156s 156s # Short circuit to optimize if we don't have descriptions 156s if [[ "${completions[*]}" != *$tab* ]]; then 156s # First, escape the completions to handle special characters 156s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]}") 156s # Only consider the completions that match what the user typed 156s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 156s 156s # compgen looses the escaping so, if there is only a single completion, we need to 156s # escape it again because it will be inserted on the command-line. If there are multiple 156s # completions, we don't want to escape them because they will be printed in a list 156s # and we don't want to show escape characters in that list. 156s if (( ${#COMPREPLY[@]} == 1 )); then 156s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]}") 156s fi 156s return 0 156s fi 156s 156s local longest=0 156s local compline 156s # Look for the longest completion so that we can format things nicely 156s while IFS='' read -r compline; do 156s [[ -z $compline ]] && continue 156s 156s # Before checking if the completion matches what the user typed, 156s # we need to strip any description and escape the completion to handle special 156s # characters because those escape characters are part of what the user typed. 156s # Don't call "printf" in a sub-shell because it will be much slower 156s # since we are in a loop. 156s printf -v comp "%q" "${compline%%$tab*}" &>/dev/null || comp=$(printf "%q" "${compline%%$tab*}") 156s 156s # Only consider the completions that match 156s [[ $comp == "$cur"* ]] || continue 156s 156s # The completions matches. Add it to the list of full completions including 156s # its description. We don't escape the completion because it may get printed 156s # in a list if there are more than one and we don't want show escape characters 156s # in that list. 156s COMPREPLY+=("$compline") 156s 156s # Strip any description before checking the length, and again, don't escape 156s # the completion because this length is only used when printing the completions 156s # in a list and we don't want show escape characters in that list. 156s comp=${compline%%$tab*} 156s if ((${#comp}>longest)); then 156s longest=${#comp} 156s fi 156s done < <(printf "%s\n" "${completions[@]}") 156s 156s # If there is a single completion left, remove the description text and escape any special characters 156s if ((${#COMPREPLY[*]} == 1)); then 156s __adsysd_debug "COMPREPLY[0]: ${COMPREPLY[0]}" 156s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]%%$tab*}") 156s __adsysd_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" 156s else 156s # Format the descriptions 156s __adsysd_format_comp_descriptions $longest 156s fi 156s } 156s 156s __adsysd_handle_special_char() 156s { 156s local comp="$1" 156s local char=$2 156s if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then 156s local word=${comp%"${comp##*${char}}"} 156s local idx=${#COMPREPLY[*]} 156s while ((--idx >= 0)); do 156s COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} 156s done 156s fi 156s } 156s 156s __adsysd_format_comp_descriptions() 156s { 156s local tab=$'\t' 156s local comp desc maxdesclength 156s local longest=$1 156s 156s local i ci 156s for ci in ${!COMPREPLY[*]}; do 156s comp=${COMPREPLY[ci]} 156s # Properly format the description string which follows a tab character if there is one 156s if [[ "$comp" == *$tab* ]]; then 156s __adsysd_debug "Original comp: $comp" 156s desc=${comp#*$tab} 156s comp=${comp%%$tab*} 156s 156s # $COLUMNS stores the current shell width. 156s # Remove an extra 4 because we add 2 spaces and 2 parentheses. 156s maxdesclength=$(( COLUMNS - longest - 4 )) 156s 156s # Make sure we can fit a description of at least 8 characters 156s # if we are to align the descriptions. 156s if ((maxdesclength > 8)); then 156s # Add the proper number of spaces to align the descriptions 156s for ((i = ${#comp} ; i < longest ; i++)); do 156s comp+=" " 156s done 156s else 156s # Don't pad the descriptions so we can fit more text after the completion 156s maxdesclength=$(( COLUMNS - ${#comp} - 4 )) 156s fi 156s 156s # If there is enough space for any description text, 156s # truncate the descriptions that are too long for the shell width 156s if ((maxdesclength > 0)); then 156s if ((${#desc} > maxdesclength)); then 156s desc=${desc:0:$(( maxdesclength - 1 ))} 156s desc+="…" 156s fi 156s comp+=" ($desc)" 156s fi 156s COMPREPLY[ci]=$comp 156s __adsysd_debug "Final comp: $comp" 156s fi 156s done 156s } 156s 156s __start_adsysd() 156s { 156s local cur prev words cword split 156s 156s COMPREPLY=() 156s 156s # Call _init_completion from the bash-completion package 156s # to prepare the arguments properly 156s if declare -F _init_completion >/dev/null 2>&1; then 156s _init_completion -n =: || return 156s else 156s __adsysd_init_completion -n =: || return 156s fi 156s 156s __adsysd_debug 156s __adsysd_debug "========= starting completion logic ==========" 156s __adsysd_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" 156s 156s # The user could have moved the cursor backwards on the command-line. 156s # We need to trigger completion from the $cword location, so we need 156s # to truncate the command-line ($words) up to the $cword location. 156s words=("${words[@]:0:$cword+1}") 156s __adsysd_debug "Truncated words[*]: ${words[*]}," 156s 156s local out directive 156s __adsysd_get_completion_results 156s __adsysd_process_completion_results 156s } 156s 156s if [[ $(type -t compopt) = "builtin" ]]; then 156s complete -o default -F __start_adsysd adsysd 156s else 156s complete -o default -o nospace -F __start_adsysd adsysd 156s fi 156s 156s # ex: ts=4 sw=4 et filetype=sh 156s --- PASS: TestAppNoUsageError (0.00s) 156s === CONT TestAppCompletion 156s # bash completion V2 for adsysd -*- shell-script -*- 156s 156s __adsysd_debug() 156s { 156s if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then 156s echo "$*" >> "${BASH_COMP_DEBUG_FILE}" 156s fi 156s } 156s 156s # Macs have bash3 for which the bash-completion package doesn't include 156s # _init_completion. This is a minimal version of that function. 156s __adsysd_init_completion() 156s { 156s COMPREPLY=() 156s _get_comp_words_by_ref "$@" cur prev words cword 156s } 156s 156s # This function calls the adsysd program to obtain the completion 156s # results and the directive. It fills the 'out' and 'directive' vars. 156s __adsysd_get_completion_results() { 156s local requestComp lastParam lastChar args 156s 156s # Prepare the command to request completions for the program. 156s # Calling ${words[0]} instead of directly adsysd allows handling aliases 156s args=("${words[@]:1}") 156s requestComp="${words[0]} __complete ${args[*]}" 156s 156s lastParam=${words[$((${#words[@]}-1))]} 156s lastChar=${lastParam:$((${#lastParam}-1)):1} 156s __adsysd_debug "lastParam ${lastParam}, lastChar ${lastChar}" 156s 156s if [[ -z ${cur} && ${lastChar} != = ]]; then 156s # If the last parameter is complete (there is a space following it) 156s # We add an extra empty parameter so we can indicate this to the go method. 156s __adsysd_debug "Adding extra empty parameter" 156s requestComp="${requestComp} ''" 156s fi 156s 156s # When completing a flag with an = (e.g., adsysd -n=) 156s # bash focuses on the part after the =, so we need to remove 156s # the flag part from $cur 156s if [[ ${cur} == -*=* ]]; then 156s cur="${cur#*=}" 156s fi 156s 156s __adsysd_debug "Calling ${requestComp}" 156s # Use eval to handle any environment variables and such 156s out=$(eval "${requestComp}" 2>/dev/null) 156s 156s # Extract the directive integer at the very end of the output following a colon (:) 156s directive=${out##*:} 156s # Remove the directive 156s out=${out%:*} 156s if [[ ${directive} == "${out}" ]]; then 156s # There is not directive specified 156s directive=0 156s fi 156s __adsysd_debug "The completion directive is: ${directive}" 156s __adsysd_debug "The completions are: ${out}" 156s } 156s 156s __adsysd_process_completion_results() { 156s local shellCompDirectiveError=1 156s local shellCompDirectiveNoSpace=2 156s local shellCompDirectiveNoFileComp=4 156s local shellCompDirectiveFilterFileExt=8 156s local shellCompDirectiveFilterDirs=16 156s local shellCompDirectiveKeepOrder=32 156s 156s if (((directive & shellCompDirectiveError) != 0)); then 156s # Error code. No completion. 156s __adsysd_debug "Received error from custom completion go code" 156s return 156s else 156s if (((directive & shellCompDirectiveNoSpace) != 0)); then 156s if [[ $(type -t compopt) == builtin ]]; then 156s __adsysd_debug "Activating no space" 156s compopt -o nospace 156s else 156s __adsysd_debug "No space directive not supported in this version of bash" 156s fi 156s fi 156s if (((directive & shellCompDirectiveKeepOrder) != 0)); then 156s if [[ $(type -t compopt) == builtin ]]; then 156s # no sort isn't supported for bash less than < 4.4 156s if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then 156s __adsysd_debug "No sort directive not supported in this version of bash" 156s else 156s __adsysd_debug "Activating keep order" 156s compopt -o nosort 156s fi 156s else 156s __adsysd_debug "No sort directive not supported in this version of bash" 156s fi 156s fi 156s if (((directive & shellCompDirectiveNoFileComp) != 0)); then 156s if [[ $(type -t compopt) == builtin ]]; then 156s __adsysd_debug "Activating no file completion" 156s compopt +o default 156s else 156s __adsysd_debug "No file completion directive not supported in this version of bash" 156s fi 156s fi 156s fi 156s 156s # Separate activeHelp from normal completions 156s local completions=() 156s local activeHelp=() 156s __adsysd_extract_activeHelp 156s 156s if (((directive & shellCompDirectiveFilterFileExt) != 0)); then 156s # File extension filtering 156s local fullFilter="" filter filteringCmd 156s 156s # Do not use quotes around the $completions variable or else newline 156s # characters will be kept. 156s for filter in ${completions[*]}; do 156s fullFilter+="$filter|" 156s done 156s 156s filteringCmd="_filedir $fullFilter" 156s __adsysd_debug "File filtering command: $filteringCmd" 156s $filteringCmd 156s elif (((directive & shellCompDirectiveFilterDirs) != 0)); then 156s # File completion for directories only 156s 156s local subdir 156s subdir=${completions[0]} 156s if [[ -n $subdir ]]; then 156s __adsysd_debug "Listing directories in $subdir" 156s pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return 156s else 156s __adsysd_debug "Listing directories in ." 156s _filedir -d 156s fi 156s else 156s __adsysd_handle_completion_types 156s fi 156s 156s __adsysd_handle_special_char "$cur" : 156s __adsysd_handle_special_char "$cur" = 156s 156s # Print the activeHelp statements before we finish 156s __adsysd_handle_activeHelp 156s } 156s 156s __adsysd_handle_activeHelp() { 156s # Print the activeHelp statements 156s if ((${#activeHelp[*]} != 0)); then 156s if [ -z $COMP_TYPE ]; then 156s # Bash v3 does not set the COMP_TYPE variable. 156s printf "\n"; 156s printf "%s\n" "${activeHelp[@]}" 156s printf "\n" 156s __adsysd_reprint_commandLine 156s return 156s fi 156s 156s # Only print ActiveHelp on the second TAB press 156s if [ $COMP_TYPE -eq 63 ]; then 156s printf "\n" 156s printf "%s\n" "${activeHelp[@]}" 156s 156s if ((${#COMPREPLY[*]} == 0)); then 156s # When there are no completion choices from the program, file completion 156s # may kick in if the program has not disabled it; in such a case, we want 156s # to know if any files will match what the user typed, so that we know if 156s # there will be completions presented, so that we know how to handle ActiveHelp. 156s # To find out, we actually trigger the file completion ourselves; 156s # the call to _filedir will fill COMPREPLY if files match. 156s if (((directive & shellCompDirectiveNoFileComp) == 0)); then 156s __adsysd_debug "Listing files" 156s _filedir 156s fi 156s fi 156s 156s if ((${#COMPREPLY[*]} != 0)); then 156s # If there are completion choices to be shown, print a delimiter. 156s # Re-printing the command-line will automatically be done 156s # by the shell when it prints the completion choices. 156s printf -- "--" 156s else 156s # When there are no completion choices at all, we need 156s # to re-print the command-line since the shell will 156s # not be doing it itself. 156s __adsysd_reprint_commandLine 156s fi 156s elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then 156s # For completion type: menu-complete/menu-complete-backward and insert-completions 156s # the completions are immediately inserted into the command-line, so we first 156s # print the activeHelp message and reprint the command-line since the shell won't. 156s printf "\n" 156s printf "%s\n" "${activeHelp[@]}" 156s 156s __adsysd_reprint_commandLine 156s fi 156s fi 156s } 156s 156s __adsysd_reprint_commandLine() { 156s # The prompt format is only available from bash 4.4. 156s # We test if it is available before using it. 156s if (x=${PS1@P}) 2> /dev/null; then 156s printf "%s" "${PS1@P}${COMP_LINE[@]}" 156s else 156s # Can't print the prompt. Just print the 156s # text the user had typed, it is workable enough. 156s printf "%s" "${COMP_LINE[@]}" 156s fi 156s } 156s 156s # Separate activeHelp lines from real completions. 156s # Fills the $activeHelp and $completions arrays. 156s __adsysd_extract_activeHelp() { 156s local activeHelpMarker="_activeHelp_ " 156s local endIndex=${#activeHelpMarker} 156s 156s while IFS='' read -r comp; do 156s [[ -z $comp ]] && continue 156s 156s if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then 156s comp=${comp:endIndex} 156s __adsysd_debug "ActiveHelp found: $comp" 156s if [[ -n $comp ]]; then 156s activeHelp+=("$comp") 156s fi 156s else 156s # Not an activeHelp line but a normal completion 156s completions+=("$comp") 156s fi 156s done <<<"${out}" 156s } 156s 156s __adsysd_handle_completion_types() { 156s __adsysd_debug "__adsysd_handle_completion_types: COMP_TYPE is $COMP_TYPE" 156s 156s case $COMP_TYPE in 156s 37|42) 156s # Type: menu-complete/menu-complete-backward and insert-completions 156s # If the user requested inserting one completion at a time, or all 156s # completions at once on the command-line we must remove the descriptions. 156s # https://github.com/spf13/cobra/issues/1508 156s 156s # If there are no completions, we don't need to do anything 156s (( ${#completions[@]} == 0 )) && return 0 156s 156s local tab=$'\t' 156s 156s # Strip any description and escape the completion to handled special characters 156s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]%%$tab*}") 156s 156s # Only consider the completions that match 156s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 156s 156s # compgen looses the escaping so we need to escape all completions again since they will 156s # all be inserted on the command-line. 156s IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%q\n" "${COMPREPLY[@]}") 156s ;; 156s 156s *) 156s # Type: complete (normal completion) 156s __adsysd_handle_standard_completion_case 156s ;; 156s esac 156s } 156s 156s __adsysd_handle_standard_completion_case() { 156s local tab=$'\t' 156s 156s # If there are no completions, we don't need to do anything 156s (( ${#completions[@]} == 0 )) && return 0 156s 156s # Short circuit to optimize if we don't have descriptions 156s if [[ "${completions[*]}" != *$tab* ]]; then 156s # First, escape the completions to handle special characters 156s IFS=$'\n' read -ra completions -d '' < <(printf "%q\n" "${completions[@]}") 156s # Only consider the completions that match what the user typed 156s IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") 156s 156s # compgen looses the escaping so, if there is only a single completion, we need to 156s # escape it again because it will be inserted on the command-line. If there are multiple 156s # completions, we don't want to escape them because they will be printed in a list 156s # and we don't want to show escape characters in that list. 156s if (( ${#COMPREPLY[@]} == 1 )); then 156s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]}") 156s fi 156s return 0 156s fi 156s 156s local longest=0 156s local compline 156s # Look for the longest completion so that we can format things nicely 156s while IFS='' read -r compline; do 156s [[ -z $compline ]] && continue 156s 156s # Before checking if the completion matches what the user typed, 156s # we need to strip any description and escape the completion to handle special 156s # characters because those escape characters are part of what the user typed. 156s # Don't call "printf" in a sub-shell because it will be much slower 156s # since we are in a loop. 156s printf -v comp "%q" "${compline%%$tab*}" &>/dev/null || comp=$(printf "%q" "${compline%%$tab*}") 156s 156s # Only consider the completions that match 156s [[ $comp == "$cur"* ]] || continue 156s 156s # The completions matches. Add it to the list of full completions including 156s # its description. We don't escape the completion because it may get printed 156s # in a list if there are more than one and we don't want show escape characters 156s # in that list. 156s COMPREPLY+=("$compline") 156s 156s # Strip any description before checking the length, and again, don't escape 156s # the completion because this length is only used when printing the completions 156s # in a list and we don't want show escape characters in that list. 156s comp=${compline%%$tab*} 156s if ((${#comp}>longest)); then 156s longest=${#comp} 156s fi 156s done < <(printf "%s\n" "${completions[@]}") 156s 156s # If there is a single completion left, remove the description text and escape any special characters 156s if ((${#COMPREPLY[*]} == 1)); then 156s __adsysd_debug "COMPREPLY[0]: ${COMPREPLY[0]}" 156s COMPREPLY[0]=$(printf "%q" "${COMPREPLY[0]%%$tab*}") 156s __adsysd_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" 156s else 156s # Format the descriptions 156s __adsysd_format_comp_descriptions $longest 156s fi 156s } 156s 156s __adsysd_handle_special_char() 156s { 156s local comp="$1" 156s local char=$2 156s if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then 156s local word=${comp%"${comp##*${char}}"} 156s local idx=${#COMPREPLY[*]} 156s while ((--idx >= 0)); do 156s COMPREPLY[idx]=${COMPREPLY[idx]#"$word"} 156s done 156s fi 156s } 156s 156s __adsysd_format_comp_descriptions() 156s { 156s local tab=$'\t' 156s local comp desc maxdesclength 156s local longest=$1 156s 156s local i ci 156s for ci in ${!COMPREPLY[*]}; do 156s comp=${COMPREPLY[ci]} 156s # Properly format the description string which follows a tab character if there is one 156s if [[ "$comp" == *$tab* ]]; then 156s __adsysd_debug "Original comp: $comp" 156s desc=${comp#*$tab} 156s comp=${comp%%$tab*} 156s 156s # $COLUMNS stores the current shell width. 156s # Remove an extra 4 because we add 2 spaces and 2 parentheses. 156s maxdesclength=$(( COLUMNS - longest - 4 )) 156s 156s # Make sure we can fit a description of at least 8 characters 156s # if we are to align the descriptions. 156s if ((maxdesclength > 8)); then 156s # Add the proper number of spaces to align the descriptions 156s for ((i = ${#comp} ; i < longest ; i++)); do 156s comp+=" " 156s done 156s else 156s # Don't pad the descriptions so we can fit more text after the completion 156s maxdesclength=$(( COLUMNS - ${#comp} - 4 )) 156s fi 156s 156s # If there is enough space for any description text, 156s # truncate the descriptions that are too long for the shell width 156s if ((maxdesclength > 0)); then 156s if ((${#desc} > maxdesclength)); then 156s desc=${desc:0:$(( maxdesclength - 1 ))} 156s desc+="…" 156s fi 156s comp+=" ($desc)" 156s fi 156s COMPREPLY[ci]=$comp 156s __adsysd_debug "Final comp: $comp" 156s fi 156s done 156s } 156s 156s __start_adsysd() 156s { 156s local cur prev words cword split 156s 156s COMPREPLY=() 156s 156s # Call _init_completion from the bash-completion package 156s # to prepare the arguments properly 156s if declare -F _init_completion >/dev/null 2>&1; then 156s _init_completion -n =: || return 156s else 156s __adsysd_init_completion -n =: || return 156s fi 156s 156s __adsysd_debug 156s __adsysd_debug "========= starting completion logic ==========" 156s __adsysd_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword" 156s 156s # The user could have moved the cursor backwards on the command-line. 156s # We need to trigger completion from the $cword location, so we need 156s # to truncate the command-line ($words) up to the $cword location. 156s words=("${words[@]:0:$cword+1}") 156s __adsysd_debug "Truncated words[*]: ${words[*]}," 156s 156s local out directive 156s __adsysd_get_completion_results 156s __adsysd_process_completion_results 156s } 156s 156s if [[ $(type -t compopt) = "builtin" ]]; then 156s complete -o default -F __start_adsysd adsysd 156s else 156s complete -o default -o nospace -F __start_adsysd adsysd 156s fi 156s 156s # ex: ts=4 sw=4 et filetype=sh 156s --- PASS: TestAppCompletion (0.00s) 156s PASS 156s ok github.com/ubuntu/adsys/cmd/adsysd/daemon 3.408s 156s Integration tests skipped as requested 156s ok github.com/ubuntu/adsys/cmd/adsysd/integration_tests 0.047s 156s === RUN TestRun 156s === RUN TestRun/Run_and_exit_successfully 156s === RUN TestRun/Run_and_return_error 156s ERROR Error requested 156s === RUN TestRun/Run_and_return_usage_error 156s ERROR Error requested 156s === RUN TestRun/Run_and_usage_error_only_does_not_fail 156s === RUN TestRun/Send_SIGINT_exits 156s === RUN TestRun/Send_SIGTERM_exits 156s --- PASS: TestRun (0.60s) 156s --- PASS: TestRun/Run_and_exit_successfully (0.10s) 156s --- PASS: TestRun/Run_and_return_error (0.10s) 156s --- PASS: TestRun/Run_and_return_usage_error (0.10s) 156s --- PASS: TestRun/Run_and_usage_error_only_does_not_fail (0.10s) 156s --- PASS: TestRun/Send_SIGINT_exits (0.10s) 156s --- PASS: TestRun/Send_SIGTERM_exits (0.10s) 156s === RUN TestMainApp 156s --- PASS: TestMainApp (0.62s) 156s PASS 156s ok github.com/ubuntu/adsys/cmd/adwatchd 1.225s 156s ? github.com/ubuntu/adsys/cmd/adwatchd/commands [no test files] 156s Test has to be run as root, skipping... 156s ok github.com/ubuntu/adsys/cmd/adwatchd/integration_tests 0.003s 156s ? github.com/ubuntu/adsys/docs [no test files] 157s ? github.com/ubuntu/adsys/e2e/cmd/build_base_image/00_check_vm_image [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/build_base_image/01_prepare_base_vm [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/build_base_image/02_create_vm_template [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/build_base_image/99_destroy_previous_versions [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/00_build_adsys_deb [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/01_provision_client [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/02_provision_ad [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/03_pam_coverage_support [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/10_test_non_pro_managers [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/11_test_pro_managers [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/12_test_pam_krb5cc [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/98_collect_pam_coverage [no test files] 159s ? github.com/ubuntu/adsys/e2e/cmd/run_tests/99_deprovision [no test files] 159s ? github.com/ubuntu/adsys/e2e/internal/az [no test files] 159s === RUN TestAddFlags 159s --- PASS: TestAddFlags (0.00s) 159s === RUN TestInventory 159s === RUN TestInventory/To_null_state_doesn't_write_data 159s === RUN TestInventory/Multiple_from_states_requires_at_least_one 159s === RUN TestInventory/Error_if_inventory_file_is_required_and_doesn't_exist 159s time="2025-10-18T16:22:51Z" level=error msg="Failed to read inventory file required by the current script: failed to read inventory file: open /tmp/TestInventoryError_if_inventory_file_is_required_and_doesnt_ex1979012340/001/inventory/inventory.yaml: no such file or directory. Please refer to the previous script in the series" 159s === RUN TestInventory/Error_if_inventory_state_does_not_match_expected_state 159s time="2025-10-18T16:22:51Z" level=error msg="Inventory file is not in any of the expected initial states: [template_created ]" 159s === RUN TestInventory/Error_if_inventory_state_does_not_match_any_expected_state 159s time="2025-10-18T16:22:51Z" level=error msg="Inventory file is not in any of the expected initial states: [template_created ]" 159s === RUN TestInventory/From_null_state_doesn't_require_existing_data 159s === RUN TestInventory/From_existing_state_requires_existing_data 159s --- PASS: TestInventory (0.00s) 159s --- PASS: TestInventory/To_null_state_doesn't_write_data (0.00s) 159s --- PASS: TestInventory/Multiple_from_states_requires_at_least_one (0.00s) 159s --- PASS: TestInventory/Error_if_inventory_file_is_required_and_doesn't_exist (0.00s) 159s --- PASS: TestInventory/Error_if_inventory_state_does_not_match_expected_state (0.00s) 159s --- PASS: TestInventory/Error_if_inventory_state_does_not_match_any_expected_state (0.00s) 159s --- PASS: TestInventory/From_null_state_doesn't_require_existing_data (0.00s) 159s --- PASS: TestInventory/From_existing_state_requires_existing_data (0.00s) 159s === RUN TestExecute 159s === RUN TestExecute/Action_succeeds 159s === RUN TestExecute/Action_and_validation_succeed 159s === RUN TestExecute/Error_when_action_fails 159s time="2025-10-18T16:22:51Z" level=error msg="requested error" 159s === RUN TestExecute/Error_when_validation_fails 159s time="2025-10-18T16:22:51Z" level=error msg="requested error" 159s === RUN TestExecute/Error_when_both_action_and_validation_fail 159s time="2025-10-18T16:22:51Z" level=error msg="requested error" 159s --- PASS: TestExecute (0.00s) 159s --- PASS: TestExecute/Action_succeeds (0.00s) 159s --- PASS: TestExecute/Action_and_validation_succeed (0.00s) 159s --- PASS: TestExecute/Error_when_action_fails (0.00s) 159s --- PASS: TestExecute/Error_when_validation_fails (0.00s) 159s --- PASS: TestExecute/Error_when_both_action_and_validation_fail (0.00s) 159s PASS 159s ok github.com/ubuntu/adsys/e2e/internal/command 0.009s 159s ? github.com/ubuntu/adsys/e2e/internal/inventory [no test files] 159s ? github.com/ubuntu/adsys/e2e/internal/remote [no test files] 159s ? github.com/ubuntu/adsys/e2e/scripts [no test files] 167s === RUN TestFetch 167s === PAUSE TestFetch 167s === RUN TestFetchWithUnreadableFile 167s === PAUSE TestFetchWithUnreadableFile 167s === RUN TestFetchTweakSysvolCacheDir 167s === PAUSE TestFetchTweakSysvolCacheDir 167s === RUN TestFetchOneGPOWhileParsingItConcurrently 167s === PAUSE TestFetchOneGPOWhileParsingItConcurrently 167s === RUN TestParseGPOConcurrent 167s === PAUSE TestParseGPOConcurrent 167s === RUN TestNew 167s === PAUSE TestNew 167s === RUN TestGetPolicies 167s === PAUSE TestGetPolicies 167s === RUN TestGetPoliciesOffline 167s === PAUSE TestGetPoliciesOffline 167s === RUN TestGetPoliciesWorkflows 167s === PAUSE TestGetPoliciesWorkflows 167s === RUN TestGetPoliciesConcurrently 167s === PAUSE TestGetPoliciesConcurrently 167s === RUN TestListUsers 167s === PAUSE TestListUsers 167s === RUN TestGetInfo 167s === PAUSE TestGetInfo 167s === RUN TestNormalizeTargetName 167s === PAUSE TestNormalizeTargetName 167s === RUN TestMockGPOList 167s --- PASS: TestMockGPOList (0.00s) 167s === RUN TestAdsysGPOList 167s === RUN TestAdsysGPOList/Disabled_GPOs 167s === RUN TestAdsysGPOList/Block_inheritance 167s === RUN TestAdsysGPOList/Forced_GPO_and_blocked_inheritance 167s === RUN TestAdsysGPOList/Computers_truncated_at_15_characters 167s === RUN TestAdsysGPOList/Error_on_user_requested_but_found_machine 167s === RUN TestAdsysGPOList/No_GPO_on_OU_-_string 167s === RUN TestAdsysGPOList/KRB5CCNAME_without_FILE:_is_supported_by_the_samba_bindings 167s === RUN TestAdsysGPOList/No_@_in_user_name_returns_the_same_thing 167s === RUN TestAdsysGPOList/Error_invalid_GPO_link 167s === RUN TestAdsysGPOList/Error_on_KRB5CCNAME_unset 167s === RUN TestAdsysGPOList/Return_one_gpo 167s === RUN TestAdsysGPOList/Machine_GPOs 167s === RUN TestAdsysGPOList/Fail_on_security_descriptor_access_failure 167s === RUN TestAdsysGPOList/Security_descriptor_accepted_is_for_another_user 167s === RUN TestAdsysGPOList/Security_descriptor_missing_ignores_GPO 167s === RUN TestAdsysGPOList/Error_on_non_existent_account 167s === RUN TestAdsysGPOList/Error_on_computer_requested_but_found_user 167s === RUN TestAdsysGPOList/Return_hierarchy 167s === RUN TestAdsysGPOList/No_GPO_on_OU_-_bytes 167s === RUN TestAdsysGPOList/Security_descriptor_access_denied_ignores_GPO 167s === RUN TestAdsysGPOList/Error_on_unreachable_ldap_host 167s === RUN TestAdsysGPOList/Error_on_ldap_connection_refused 167s === RUN TestAdsysGPOList/Error_on_invalid_ticket 167s === RUN TestAdsysGPOList/Multiple_GPOs_in_same_OU 167s === RUN TestAdsysGPOList/Filter_user_only_GPOs 167s === RUN TestAdsysGPOList/No_gPOptions_fallbacks_to_0 167s === RUN TestAdsysGPOList/Long_computer_name,_not_truncated 167s === RUN TestAdsysGPOList/Error_on_machine_with_no_ldap 167s === RUN TestAdsysGPOList/Error_on_dangling_ticket_symlink 167s === RUN TestAdsysGPOList/Filter_machine_only_GPOs 167s === RUN TestAdsysGPOList/Forced_GPO_are_first_by_reverse_order 167s === RUN TestAdsysGPOList/Error_on_no_network 167s --- PASS: TestAdsysGPOList (0.85s) 167s --- PASS: TestAdsysGPOList/Disabled_GPOs (0.04s) 167s --- PASS: TestAdsysGPOList/Block_inheritance (0.02s) 167s --- PASS: TestAdsysGPOList/Forced_GPO_and_blocked_inheritance (0.03s) 167s --- PASS: TestAdsysGPOList/Computers_truncated_at_15_characters (0.03s) 167s --- PASS: TestAdsysGPOList/Error_on_user_requested_but_found_machine (0.03s) 167s --- PASS: TestAdsysGPOList/No_GPO_on_OU_-_string (0.03s) 167s --- PASS: TestAdsysGPOList/KRB5CCNAME_without_FILE:_is_supported_by_the_samba_bindings (0.03s) 167s --- PASS: TestAdsysGPOList/No_@_in_user_name_returns_the_same_thing (0.02s) 167s --- PASS: TestAdsysGPOList/Error_invalid_GPO_link (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_KRB5CCNAME_unset (0.02s) 167s --- PASS: TestAdsysGPOList/Return_one_gpo (0.03s) 167s --- PASS: TestAdsysGPOList/Machine_GPOs (0.03s) 167s --- PASS: TestAdsysGPOList/Fail_on_security_descriptor_access_failure (0.03s) 167s --- PASS: TestAdsysGPOList/Security_descriptor_accepted_is_for_another_user (0.02s) 167s --- PASS: TestAdsysGPOList/Security_descriptor_missing_ignores_GPO (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_non_existent_account (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_computer_requested_but_found_user (0.02s) 167s --- PASS: TestAdsysGPOList/Return_hierarchy (0.03s) 167s --- PASS: TestAdsysGPOList/No_GPO_on_OU_-_bytes (0.03s) 167s --- PASS: TestAdsysGPOList/Security_descriptor_access_denied_ignores_GPO (0.03s) 167s --- PASS: TestAdsysGPOList/Error_on_unreachable_ldap_host (0.03s) 167s --- PASS: TestAdsysGPOList/Error_on_ldap_connection_refused (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_invalid_ticket (0.04s) 167s --- PASS: TestAdsysGPOList/Multiple_GPOs_in_same_OU (0.03s) 167s --- PASS: TestAdsysGPOList/Filter_user_only_GPOs (0.02s) 167s --- PASS: TestAdsysGPOList/No_gPOptions_fallbacks_to_0 (0.02s) 167s --- PASS: TestAdsysGPOList/Long_computer_name,_not_truncated (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_machine_with_no_ldap (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_dangling_ticket_symlink (0.02s) 167s --- PASS: TestAdsysGPOList/Filter_machine_only_GPOs (0.02s) 167s --- PASS: TestAdsysGPOList/Forced_GPO_are_first_by_reverse_order (0.02s) 167s --- PASS: TestAdsysGPOList/Error_on_no_network (0.02s) 167s === RUN TestGetPolicyDefinitions 167s === PAUSE TestGetPolicyDefinitions 167s === RUN TestTicketPath 167s krb5_test.go:23: Running subprocess with [/tmp/go-build1987938368/b601/ad.test -test.testlogfile=/tmp/go-build1987938368/b601/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true -test.run=TestTicketPath] 167s === RUN TestTicketPath 167s === RUN TestTicketPath/Error_when_ccache_not_present_on_disk 167s === RUN TestTicketPath/Error_when_ccache_is_a_directory 167s === RUN TestTicketPath/Error_when_initializing_context 167s === RUN TestTicketPath/Error_on_empty_ticket_path 167s === RUN TestTicketPath/Error_on_NULL_ticket_path 167s === RUN TestTicketPath/Error_on_non-FILE_ccache 167s === RUN TestTicketPath/Lookup_is_successful 167s === RUN TestTicketPath/Allow_ccache_without_FILE_identifier 167s --- PASS: TestTicketPath (0.00s) 167s --- PASS: TestTicketPath/Error_when_ccache_not_present_on_disk (0.00s) 167s --- PASS: TestTicketPath/Error_when_ccache_is_a_directory (0.00s) 167s --- PASS: TestTicketPath/Error_when_initializing_context (0.00s) 167s --- PASS: TestTicketPath/Error_on_empty_ticket_path (0.00s) 167s --- PASS: TestTicketPath/Error_on_NULL_ticket_path (0.00s) 167s --- PASS: TestTicketPath/Error_on_non-FILE_ccache (0.00s) 167s --- PASS: TestTicketPath/Lookup_is_successful (0.00s) 167s --- PASS: TestTicketPath/Allow_ccache_without_FILE_identifier (0.00s) 167s PASS 167s --- PASS: TestTicketPath (0.18s) 167s === CONT TestFetch 167s === RUN TestFetch/assets_root_directory_not_present_on_SYSVOL_issues_a_warning_only 167s === CONT TestGetPoliciesOffline 167s === RUN TestGetPoliciesOffline/Error_on_SSSD_reports_online,_but_we_are_actually_offline_when_fetching_gpo_list,_even_with_a_cache 167s === PAUSE TestGetPoliciesOffline/Error_on_SSSD_reports_online,_but_we_are_actually_offline_when_fetching_gpo_list,_even_with_a_cache 167s === RUN TestGetPoliciesOffline/Offline,_get_from_cache,_gpo_only 167s === PAUSE TestGetPoliciesOffline/Offline,_get_from_cache,_gpo_only 167s === RUN TestGetPoliciesOffline/Offline,_get_from_cache,_with_assets 167s === PAUSE TestGetPoliciesOffline/Offline,_get_from_cache,_with_assets 167s === RUN TestGetPoliciesOffline/Error_offline_with_no_cache 167s === PAUSE TestGetPoliciesOffline/Error_offline_with_no_cache 167s === RUN TestGetPoliciesOffline/Offline,_ensure_we_fetch_from_cache_and_not_fetch_GPO_list 167s === PAUSE TestGetPoliciesOffline/Offline,_ensure_we_fetch_from_cache_and_not_fetch_GPO_list 167s === RUN TestGetPoliciesOffline/Offline,_with_assets 167s === PAUSE TestGetPoliciesOffline/Offline,_with_assets 167s === CONT TestGetPolicyDefinitions 167s === RUN TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_format 167s === PAUSE TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_format 167s === RUN TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_distro 167s === PAUSE TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_distro 167s === RUN TestGetPolicyDefinitions/Load_ADMX_and_ADML 167s === PAUSE TestGetPolicyDefinitions/Load_ADMX_and_ADML 167s === CONT TestNormalizeTargetName 167s === RUN TestNormalizeTargetName/One_valid_user 167s === PAUSE TestNormalizeTargetName/One_valid_user 167s === RUN TestNormalizeTargetName/One_valid_user_with_mixed_case 167s === PAUSE TestNormalizeTargetName/One_valid_user_with_mixed_case 167s === RUN TestNormalizeTargetName/One_user_without_explicit_domain_suffix 167s === PAUSE TestNormalizeTargetName/One_user_without_explicit_domain_suffix 167s === RUN TestNormalizeTargetName/Computer_in_uppercase_is_left_as_such 167s === PAUSE TestNormalizeTargetName/Computer_in_uppercase_is_left_as_such 167s === RUN TestNormalizeTargetName/Error_on_multiple_\_in_name 167s === PAUSE TestNormalizeTargetName/Error_on_multiple_\_in_name 167s === RUN TestNormalizeTargetName/Error_on_no_default_domain_suffix_and_no_fqdn_user 167s === PAUSE TestNormalizeTargetName/Error_on_no_default_domain_suffix_and_no_fqdn_user 167s === RUN TestNormalizeTargetName/One_valid_user_with_domain\user 167s === PAUSE TestNormalizeTargetName/One_valid_user_with_domain\user 167s === RUN TestNormalizeTargetName/Computer_is_left_as_such 167s === PAUSE TestNormalizeTargetName/Computer_is_left_as_such 167s === RUN TestNormalizeTargetName/Computer_with_@_is_left_as_such 167s === PAUSE TestNormalizeTargetName/Computer_with_@_is_left_as_such 167s === RUN TestNormalizeTargetName/User_name_matching_computer,_setting_as_user 167s === PAUSE TestNormalizeTargetName/User_name_matching_computer,_setting_as_user 167s === RUN TestNormalizeTargetName/User_name_fqdn_matching_computer 167s === PAUSE TestNormalizeTargetName/User_name_fqdn_matching_computer 167s === RUN TestNormalizeTargetName/Computer_name_without_objectClass 167s === PAUSE TestNormalizeTargetName/Computer_name_without_objectClass 167s === CONT TestGetInfo 167s === RUN TestGetInfo/Report_unknown_state_if_IsOnline_calls_fail 167s === PAUSE TestGetInfo/Report_unknown_state_if_IsOnline_calls_fail 167s === RUN TestGetInfo/Report_unknown_state_if_ServerFQDN_calls_fail 167s === PAUSE TestGetInfo/Report_unknown_state_if_ServerFQDN_calls_fail 167s === RUN TestGetInfo/Info_reported_from_backend,_online 167s === PAUSE TestGetInfo/Info_reported_from_backend,_online 167s === RUN TestGetInfo/Info_reported_from_backend,_offline 167s === PAUSE TestGetInfo/Info_reported_from_backend,_offline 167s === CONT TestListUsers 167s === RUN TestListUsers/Error_on_policy_cache_directory_not_existing 167s === PAUSE TestListUsers/Error_on_policy_cache_directory_not_existing 167s === RUN TestListUsers/One_user 167s === PAUSE TestListUsers/One_user 167s === RUN TestListUsers/Two_users,_dangling_symlink_for_one 167s === PAUSE TestListUsers/Two_users,_dangling_symlink_for_one 167s === RUN TestListUsers/None 167s === PAUSE TestListUsers/None 167s === RUN TestListUsers/Machines_are_ignored 167s === PAUSE TestListUsers/Machines_are_ignored 167s === RUN TestListUsers/Two_users,_from_policy_cache 167s === PAUSE TestListUsers/Two_users,_from_policy_cache 167s === RUN TestListUsers/None,_from_policy_cache 167s === PAUSE TestListUsers/None,_from_policy_cache 167s === RUN TestListUsers/Machine_Only,_from_policy_cache 167s === PAUSE TestListUsers/Machine_Only,_from_policy_cache 167s === RUN TestListUsers/Error_on_Krb5_directory_not_existing 167s === PAUSE TestListUsers/Error_on_Krb5_directory_not_existing 167s === RUN TestListUsers/Two_users 167s === PAUSE TestListUsers/Two_users 167s === RUN TestListUsers/Machine_Only 167s === PAUSE TestListUsers/Machine_Only 167s === RUN TestListUsers/One_user,_from_policy_cache 167s === PAUSE TestListUsers/One_user,_from_policy_cache 167s === RUN TestListUsers/Machines_are_ignored,_from_policy_cache 167s === PAUSE TestListUsers/Machines_are_ignored,_from_policy_cache 167s === RUN TestListUsers/Ticket_cache_ignored_if_policy_cache_is_requested 167s === PAUSE TestListUsers/Ticket_cache_ignored_if_policy_cache_is_requested 167s === CONT TestGetPoliciesConcurrently 167s === RUN TestGetPoliciesConcurrently/Machine_requested_twice_at_the_same_time 167s === PAUSE TestGetPoliciesConcurrently/Machine_requested_twice_at_the_same_time 167s === RUN TestGetPoliciesConcurrently/Same_user,_same_GPO 167s === PAUSE TestGetPoliciesConcurrently/Same_user,_same_GPO 167s === RUN TestGetPoliciesConcurrently/Different_users,_same_GPO 167s === PAUSE TestGetPoliciesConcurrently/Different_users,_same_GPO 167s === RUN TestGetPoliciesConcurrently/Different_users,_different_GPO 167s === PAUSE TestGetPoliciesConcurrently/Different_users,_different_GPO 167s === RUN TestGetPoliciesConcurrently/One_machine,_one_user 167s === PAUSE TestGetPoliciesConcurrently/One_machine,_one_user 167s === CONT TestGetPoliciesWorkflows 167s === RUN TestGetPoliciesWorkflows/Second_call_after_a_relogin 167s === PAUSE TestGetPoliciesWorkflows/Second_call_after_a_relogin 167s === RUN TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_replaces_previous_symlinks_in_the_original_path 167s === PAUSE TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_replaces_previous_symlinks_in_the_original_path 167s === RUN TestGetPoliciesWorkflows/Second_machine_call_after_a_restart 167s === PAUSE TestGetPoliciesWorkflows/Second_machine_call_after_a_restart 167s === RUN TestGetPoliciesWorkflows/Second_call_is_a_refresh_(without_Krb5CCName_specified) 167s === PAUSE TestGetPoliciesWorkflows/Second_call_is_a_refresh_(without_Krb5CCName_specified) 167s === RUN TestGetPoliciesWorkflows/Second_call_after_service_restarted 167s === PAUSE TestGetPoliciesWorkflows/Second_call_after_service_restarted 167s === RUN TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_refreshes_ticket_copy_if_needed 167s === PAUSE TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_refreshes_ticket_copy_if_needed 167s === RUN TestGetPoliciesWorkflows/Second_machine_call_is_a_refresh_(without_Krb5CCName_specified) 167s === PAUSE TestGetPoliciesWorkflows/Second_machine_call_is_a_refresh_(without_Krb5CCName_specified) 167s === RUN TestGetPoliciesWorkflows/Second_machine_call_after_service_restarted 167s === PAUSE TestGetPoliciesWorkflows/Second_machine_call_after_service_restarted 167s === RUN TestGetPoliciesWorkflows/Second_call_with_different_user 167s === PAUSE TestGetPoliciesWorkflows/Second_call_with_different_user 167s === CONT TestParseGPOConcurrent 167s === PAUSE TestFetch/assets_root_directory_not_present_on_SYSVOL_issues_a_warning_only 167s === RUN TestFetch/assets_are_not_updated_if_remote_version_matches,_with_non-standard_GPT.INI_casing 167s === PAUSE TestFetch/assets_are_not_updated_if_remote_version_matches,_with_non-standard_GPT.INI_casing 167s === RUN TestFetch/existing_assets_are_removed_if_not_present_on_SYSVOL 167s === PAUSE TestFetch/existing_assets_are_removed_if_not_present_on_SYSVOL 167s === RUN TestFetch/two_gpos,_one_already_up_to_date,_one_new 167s === PAUSE TestFetch/two_gpos,_one_already_up_to_date,_one_new 167s === RUN TestFetch/two_gpos,_one_more_recent,_one_should_be_refreshed 167s === PAUSE TestFetch/two_gpos,_one_more_recent,_one_should_be_refreshed 167s === RUN TestFetch/assets_only_are_downloaded 167s === PAUSE TestFetch/assets_only_are_downloaded 167s === RUN TestFetch/Error_missing_remote_GPT.INI 167s === PAUSE TestFetch/Error_missing_remote_GPT.INI 167s === RUN TestFetch/Error_keeps_downloading_other_GPOS 167s === PAUSE TestFetch/Error_keeps_downloading_other_GPOS 167s === RUN TestFetch/assets_is_a_file_is_not_downloaded 167s === PAUSE TestFetch/assets_is_a_file_is_not_downloaded 167s === RUN TestFetch/one_new_gpo 167s === PAUSE TestFetch/one_new_gpo 167s === RUN TestFetch/two_gpos,_one_more_recent,_one_new 167s === PAUSE TestFetch/two_gpos,_one_more_recent,_one_new 167s === RUN TestFetch/assets_are_not_updated_if_version_matches 167s === PAUSE TestFetch/assets_are_not_updated_if_version_matches 167s === RUN TestFetch/concurrent_different_gpos 167s === PAUSE TestFetch/concurrent_different_gpos 167s === RUN TestFetch/remote_version_entry_missing_treated_as_0 167s === PAUSE TestFetch/remote_version_entry_missing_treated_as_0 167s === RUN TestFetch/two_new_gpos 167s === PAUSE TestFetch/two_new_gpos 167s === RUN TestFetch/keep_existing_gpos_intact 167s === PAUSE TestFetch/keep_existing_gpos_intact 167s === RUN TestFetch/Local_gpo_redownloaded_on_missing_GPT.INI 167s === PAUSE TestFetch/Local_gpo_redownloaded_on_missing_GPT.INI 167s === RUN TestFetch/Local_gpo_redownloaded_on_version_entry_missing_in_GPT.INI 167s === PAUSE TestFetch/Local_gpo_redownloaded_on_version_entry_missing_in_GPT.INI 167s === RUN TestFetch/assets_are_updated_to_latest_version 167s === PAUSE TestFetch/assets_are_updated_to_latest_version 167s === RUN TestFetch/assets_are_not_updated_if_local_version_matches,_with_non-standard_GPT.INI_casing 167s === PAUSE TestFetch/assets_are_not_updated_if_local_version_matches,_with_non-standard_GPT.INI_casing 167s === RUN TestFetch/gpo_is_refreshed 167s === PAUSE TestFetch/gpo_is_refreshed 167s === RUN TestFetch/two_gpos,_one_already_up_to_date,_one_should_be_refreshed 167s === PAUSE TestFetch/two_gpos,_one_already_up_to_date,_one_should_be_refreshed 167s === RUN TestFetch/two_gpos,_one_should_be_refreshed,_one_new 167s === PAUSE TestFetch/two_gpos,_one_should_be_refreshed,_one_new 167s === RUN TestFetch/two_gpos,_one_more_recent,_one_up_to_date 167s === PAUSE TestFetch/two_gpos,_one_more_recent,_one_up_to_date 167s === RUN TestFetch/Local_gpo_redownloaded_on_NaN_version_in_GPT.INI 167s === PAUSE TestFetch/Local_gpo_redownloaded_on_NaN_version_in_GPT.INI 167s === RUN TestFetch/concurrent_same_gpos 167s === PAUSE TestFetch/concurrent_same_gpos 167s === RUN TestFetch/Error_remote_version_NaN 167s === PAUSE TestFetch/Error_remote_version_NaN 167s === RUN TestFetch/gpo_already_up_to_date 167s === PAUSE TestFetch/gpo_already_up_to_date 167s === RUN TestFetch/gpos_and_assets 167s === PAUSE TestFetch/gpos_and_assets 167s === RUN TestFetch/local_gpo_is_more_recent_than_AD_one 167s === PAUSE TestFetch/local_gpo_is_more_recent_than_AD_one 167s === RUN TestFetch/existing_assets_are_kept_if_no_assets_downloadable_provided 167s === PAUSE TestFetch/existing_assets_are_kept_if_no_assets_downloadable_provided 167s === RUN TestFetch/Error_unexistant_remote_gpo 167s === PAUSE TestFetch/Error_unexistant_remote_gpo 167s === CONT TestGetPolicies 167s === RUN TestGetPolicies/Machine_doesn’t_match 167s === PAUSE TestGetPolicies/Machine_doesn’t_match 167s === RUN TestGetPolicies/Unexisting_CC_original_file_for_machine 167s === PAUSE TestGetPolicies/Unexisting_CC_original_file_for_machine 167s === RUN TestGetPolicies/Error_on_backend_HostKrb5CCName_call_failed 167s === PAUSE TestGetPolicies/Error_on_backend_HostKrb5CCName_call_failed 167s === RUN TestGetPolicies/Corrupted_policy_file 167s === PAUSE TestGetPolicies/Corrupted_policy_file 167s === RUN TestGetPolicies/Symlinks_can’t_be_created 167s === PAUSE TestGetPolicies/Symlinks_can’t_be_created 167s === RUN TestGetPolicies/Enabled_override_for_matching_release,_other_releases_override_ignored 167s === PAUSE TestGetPolicies/Enabled_override_for_matching_release,_other_releases_override_ignored 167s === RUN TestGetPolicies/Two_policies,_no_overrides,_one_is_not_the_same_object_type,_machine_ones_are_empty_when_parsing_user 167s === PAUSE TestGetPolicies/Two_policies,_no_overrides,_one_is_not_the_same_object_type,_machine_ones_are_empty_when_parsing_user 167s === RUN TestGetPolicies/Filter_non_Ubuntu_keys 167s === PAUSE TestGetPolicies/Filter_non_Ubuntu_keys 167s === RUN TestGetPolicies/Policy_machine_directory_is_uppercase 167s === PAUSE TestGetPolicies/Policy_machine_directory_is_uppercase 167s === RUN TestGetPolicies/Computer_policy_Registry.pol_is_mixed_case 167s === PAUSE TestGetPolicies/Computer_policy_Registry.pol_is_mixed_case 167s === RUN TestGetPolicies/Error_on_user_without_@_in_name 167s === PAUSE TestGetPolicies/Error_on_user_without_@_in_name 167s === RUN TestGetPolicies/Standard_policy_with_assets,_existing_assets_are_reattached_if_not_refreshed 167s === PAUSE TestGetPolicies/Standard_policy_with_assets,_existing_assets_are_reattached_if_not_refreshed 167s === RUN TestGetPolicies/Local_assets_and_its_db_are_removed_if_not_present_anymore_on_AD_sysvol 167s === PAUSE TestGetPolicies/Local_assets_and_its_db_are_removed_if_not_present_anymore_on_AD_sysvol 167s === RUN TestGetPolicies/Policy_machine_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed 167s === PAUSE TestGetPolicies/Policy_machine_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed 167s === RUN TestGetPolicies/Error_on_backend_IsOnline_call_failed 167s === PAUSE TestGetPolicies/Error_on_backend_IsOnline_call_failed 167s === RUN TestGetPolicies/Standard_policy_with_assets,_downloads_assets 167s === PAUSE TestGetPolicies/Standard_policy_with_assets,_downloads_assets 167s === RUN TestGetPolicies/Disable_override_for_matching_release,_other_releases_override_ignored 167s === PAUSE TestGetPolicies/Disable_override_for_matching_release,_other_releases_override_ignored 167s === RUN TestGetPolicies/Two_policies,_no_overrides,_reversed 167s === PAUSE TestGetPolicies/Two_policies,_no_overrides,_reversed 167s === RUN TestGetPolicies/Computer_policy_Registry.pol_is_lower_case 167s === PAUSE TestGetPolicies/Computer_policy_Registry.pol_is_lower_case 167s === RUN TestGetPolicies/User_only_policy,_computer_object,_policy_is_empty 167s === PAUSE TestGetPolicies/User_only_policy,_computer_object,_policy_is_empty 167s === RUN TestGetPolicies/Assets_directory_being_a_file_cleanup_local_existing_assets_and_its_db 167s === PAUSE TestGetPolicies/Assets_directory_being_a_file_cleanup_local_existing_assets_and_its_db 167s === RUN TestGetPolicies/Disabled_override 167s === PAUSE TestGetPolicies/Disabled_override 167s === RUN TestGetPolicies/Disabled_value_is_overridden 167s === PAUSE TestGetPolicies/Disabled_value_is_overridden 167s === RUN TestGetPolicies/More_policies,_with_multiple_overrides 167s === PAUSE TestGetPolicies/More_policies,_with_multiple_overrides 167s === RUN TestGetPolicies/Include_non_Ubuntu_keys_used_to_configure_certificate_autoenrollment 167s === PAUSE TestGetPolicies/Include_non_Ubuntu_keys_used_to_configure_certificate_autoenrollment 167s === RUN TestGetPolicies/Unexisting_CC_original_file_for_user 167s === PAUSE TestGetPolicies/Unexisting_CC_original_file_for_user 167s === RUN TestGetPolicies/Empty_value_for_unfiltered_entry 167s === PAUSE TestGetPolicies/Empty_value_for_unfiltered_entry 167s === RUN TestGetPolicies/User_only_policy,_user_object 167s === PAUSE TestGetPolicies/User_only_policy,_user_object 167s === RUN TestGetPolicies/Computer_only_policy,_user_object,_policy_is_empty 167s === PAUSE TestGetPolicies/Computer_only_policy,_user_object,_policy_is_empty 167s === RUN TestGetPolicies/Assets_can’t_be_downloaded_without_GPO 167s === PAUSE TestGetPolicies/Assets_can’t_be_downloaded_without_GPO 167s === RUN TestGetPolicies/Multiple_domains,_same_GPO 167s === PAUSE TestGetPolicies/Multiple_domains,_same_GPO 167s === RUN TestGetPolicies/Policy_user_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed 167s === PAUSE TestGetPolicies/Policy_user_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed 167s === RUN TestGetPolicies/User_policy_Registry.pol_is_lower_case 167s === PAUSE TestGetPolicies/User_policy_Registry.pol_is_lower_case 167s === RUN TestGetPolicies/Without_previous_call,_needs_userKrb5CCBaseName 167s === PAUSE TestGetPolicies/Without_previous_call,_needs_userKrb5CCBaseName 167s === RUN TestGetPolicies/Error_on_backend_ServerFQDN_call_failed 167s === PAUSE TestGetPolicies/Error_on_backend_ServerFQDN_call_failed 167s === RUN TestGetPolicies/Standard_policy,_computer_object 167s === PAUSE TestGetPolicies/Standard_policy,_computer_object 167s === RUN TestGetPolicies/Two_policies,_with_overrides 167s === PAUSE TestGetPolicies/Two_policies,_with_overrides 167s === RUN TestGetPolicies/Two_policies,_no_overrides 167s === PAUSE TestGetPolicies/Two_policies,_no_overrides 167s === RUN TestGetPolicies/Ignore_errors_on_non_Ubuntu_keys 167s === PAUSE TestGetPolicies/Ignore_errors_on_non_Ubuntu_keys 167s === RUN TestGetPolicies/Policy_can’t_be_downloaded 167s === PAUSE TestGetPolicies/Policy_can’t_be_downloaded 167s === RUN TestGetPolicies/Unsupported_type_for_unfiltered_entry 167s === PAUSE TestGetPolicies/Unsupported_type_for_unfiltered_entry 167s === RUN TestGetPolicies/Enabled_override 167s === PAUSE TestGetPolicies/Enabled_override 167s === RUN TestGetPolicies/No_override_for_this_release,_takes_default_value 167s === PAUSE TestGetPolicies/No_override_for_this_release,_takes_default_value 167s === RUN TestGetPolicies/Same_key_in_different_domains_are_kept_separated 167s === PAUSE TestGetPolicies/Same_key_in_different_domains_are_kept_separated 167s === RUN TestGetPolicies/Two_policies,_with_reversed_overrides 167s === PAUSE TestGetPolicies/Two_policies,_with_reversed_overrides 167s === RUN TestGetPolicies/Disabled_value_overrides_non_disabled_one 167s === PAUSE TestGetPolicies/Disabled_value_overrides_non_disabled_one 167s === RUN TestGetPolicies/User_policy_Registry.pol_is_mixed_case 167s === PAUSE TestGetPolicies/User_policy_Registry.pol_is_mixed_case 167s === RUN TestGetPolicies/Standard_policy,_user_object 167s === PAUSE TestGetPolicies/Standard_policy,_user_object 167s === RUN TestGetPolicies/Policy_user_directory_is_uppercase 167s === PAUSE TestGetPolicies/Policy_user_directory_is_uppercase 167s === CONT TestNew 167s === RUN TestNew/failed_to_create_Policies_cache_directory 167s === PAUSE TestNew/failed_to_create_Policies_cache_directory 167s === RUN TestNew/no_active_server_in_backend_does_not_fail_ad_creation 167s === PAUSE TestNew/no_active_server_in_backend_does_not_fail_ad_creation 167s === RUN TestNew/error_on_backend_ServerFQDN_random_failure 167s === PAUSE TestNew/error_on_backend_ServerFQDN_random_failure 167s === RUN TestNew/create_KRB5_and_Sysvol_cache_directory 167s === PAUSE TestNew/create_KRB5_and_Sysvol_cache_directory 167s === RUN TestNew/failed_to_create_KRB5_cache_directory 167s === PAUSE TestNew/failed_to_create_KRB5_cache_directory 167s === RUN TestNew/failed_to_create_Sysvol_cache_directory 167s === PAUSE TestNew/failed_to_create_Sysvol_cache_directory 167s === CONT TestFetchTweakSysvolCacheDir 167s === RUN TestFetchTweakSysvolCacheDir/SysvolCacheDir_is_read_only 167s === PAUSE TestFetchTweakSysvolCacheDir/SysvolCacheDir_is_read_only 167s === RUN TestFetchTweakSysvolCacheDir/SysvolCacheDir_doesn't_exist 167s === PAUSE TestFetchTweakSysvolCacheDir/SysvolCacheDir_doesn't_exist 167s === CONT TestFetchOneGPOWhileParsingItConcurrently 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s --- PASS: TestFetchOneGPOWhileParsingItConcurrently (0.12s) 167s === CONT TestFetchWithUnreadableFile 167s === RUN TestFetchWithUnreadableFile/without_gpo_initially_don’t_commit_new_partial_GPO 167s === PAUSE TestFetchWithUnreadableFile/without_gpo_initially_don’t_commit_new_partial_GPO 167s === RUN TestFetchWithUnreadableFile/existing_gpo_is_preserved 167s === PAUSE TestFetchWithUnreadableFile/existing_gpo_is_preserved 167s === CONT TestGetPoliciesOffline/Error_on_SSSD_reports_online,_but_we_are_actually_offline_when_fetching_gpo_list,_even_with_a_cache 167s --- PASS: TestParseGPOConcurrent (0.25s) 167s === CONT TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_format 167s === CONT TestGetPoliciesOffline/Offline,_with_assets 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Can't reach AD: machine is offline and \"useroffline@ASSETSANDGPO.COM\" policies are applied using previous online update" 167s === CONT TestGetPoliciesOffline/Offline,_ensure_we_fetch_from_cache_and_not_fetch_GPO_list 167s === CONT TestGetPoliciesOffline/Error_offline_with_no_cache 167s === CONT TestGetPoliciesOffline/Offline,_get_from_cache,_with_assets 167s time="2025-10-18T16:22:54Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Can't reach AD: machine is offline and \"useroffline@GPOONLY.COM\" policies are applied using previous online update" 167s === CONT TestGetPoliciesOffline/Offline,_get_from_cache,_gpo_only 167s time="2025-10-18T16:22:54Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Can't reach AD: machine is offline and \"useroffline@GPOONLY.COM\" policies are applied using previous online update" 167s === CONT TestNormalizeTargetName/One_valid_user 167s === CONT TestGetPolicyDefinitions/Load_ADMX_and_ADML 167s time="2025-10-18T16:22:54Z" level=info msg="Can't reach AD: machine is offline and \"useroffline@ASSETSANDGPO.COM\" policies are applied using previous online update" 167s === CONT TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_distro 167s --- PASS: TestGetPolicyDefinitions (0.00s) 167s --- PASS: TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_format (0.00s) 167s --- PASS: TestGetPolicyDefinitions/Load_ADMX_and_ADML (0.01s) 167s --- PASS: TestGetPolicyDefinitions/ADMX_and_ADML_does_not_exist_for_this_distro (0.00s) 167s === CONT TestGetInfo/Report_unknown_state_if_IsOnline_calls_fail 167s time="2025-10-18T16:22:54Z" level=warning msg="IsOnline returned an error" 167s === CONT TestNormalizeTargetName/Computer_name_without_objectClass 167s --- PASS: TestGetPoliciesOffline (0.00s) 167s --- PASS: TestGetPoliciesOffline/Offline,_with_assets (0.08s) 167s --- PASS: TestGetPoliciesOffline/Error_on_SSSD_reports_online,_but_we_are_actually_offline_when_fetching_gpo_list,_even_with_a_cache (0.25s) 167s --- PASS: TestGetPoliciesOffline/Error_offline_with_no_cache (0.00s) 167s --- PASS: TestGetPoliciesOffline/Offline,_ensure_we_fetch_from_cache_and_not_fetch_GPO_list (0.06s) 167s --- PASS: TestGetPoliciesOffline/Offline,_get_from_cache,_gpo_only (0.11s) 167s --- PASS: TestGetPoliciesOffline/Offline,_get_from_cache,_with_assets (0.13s) 167s === CONT TestNormalizeTargetName/User_name_fqdn_matching_computer 167s === CONT TestNormalizeTargetName/User_name_matching_computer,_setting_as_user 167s === CONT TestNormalizeTargetName/Computer_with_@_is_left_as_such 167s === CONT TestNormalizeTargetName/Computer_is_left_as_such 167s === CONT TestNormalizeTargetName/One_valid_user_with_domain\user 167s === CONT TestNormalizeTargetName/Error_on_no_default_domain_suffix_and_no_fqdn_user 167s === CONT TestNormalizeTargetName/Error_on_multiple_\_in_name 167s === CONT TestNormalizeTargetName/Computer_in_uppercase_is_left_as_such 167s === CONT TestNormalizeTargetName/One_user_without_explicit_domain_suffix 167s === CONT TestNormalizeTargetName/One_valid_user_with_mixed_case 167s === CONT TestListUsers/Error_on_policy_cache_directory_not_existing 167s --- PASS: TestNormalizeTargetName (0.00s) 167s --- PASS: TestNormalizeTargetName/One_valid_user (0.00s) 167s --- PASS: TestNormalizeTargetName/Computer_name_without_objectClass (0.00s) 167s --- PASS: TestNormalizeTargetName/User_name_fqdn_matching_computer (0.00s) 167s --- PASS: TestNormalizeTargetName/Computer_with_@_is_left_as_such (0.00s) 167s --- PASS: TestNormalizeTargetName/Computer_is_left_as_such (0.00s) 167s --- PASS: TestNormalizeTargetName/One_valid_user_with_domain\user (0.00s) 167s --- PASS: TestNormalizeTargetName/Error_on_no_default_domain_suffix_and_no_fqdn_user (0.00s) 167s --- PASS: TestNormalizeTargetName/User_name_matching_computer,_setting_as_user (0.00s) 167s --- PASS: TestNormalizeTargetName/Error_on_multiple_\_in_name (0.00s) 167s --- PASS: TestNormalizeTargetName/One_user_without_explicit_domain_suffix (0.00s) 167s --- PASS: TestNormalizeTargetName/One_valid_user_with_mixed_case (0.00s) 167s --- PASS: TestNormalizeTargetName/Computer_in_uppercase_is_left_as_such (0.00s) 167s === CONT TestGetInfo/Info_reported_from_backend,_offline 167s === CONT TestGetInfo/Info_reported_from_backend,_online 167s === CONT TestGetInfo/Report_unknown_state_if_ServerFQDN_calls_fail 167s === CONT TestGetPoliciesConcurrently/Machine_requested_twice_at_the_same_time 167s === CONT TestListUsers/Ticket_cache_ignored_if_policy_cache_is_requested 167s === CONT TestListUsers/Machines_are_ignored,_from_policy_cache 167s === CONT TestListUsers/One_user,_from_policy_cache 167s === CONT TestListUsers/Machine_Only 167s === CONT TestListUsers/Two_users 167s === CONT TestListUsers/Error_on_Krb5_directory_not_existing 167s === CONT TestListUsers/Machine_Only,_from_policy_cache 167s === CONT TestListUsers/None,_from_policy_cache 167s --- PASS: TestGetInfo (0.00s) 167s --- PASS: TestGetInfo/Report_unknown_state_if_IsOnline_calls_fail (0.00s) 167s --- PASS: TestGetInfo/Info_reported_from_backend,_offline (0.00s) 167s --- PASS: TestGetInfo/Info_reported_from_backend,_online (0.00s) 167s --- PASS: TestGetInfo/Report_unknown_state_if_ServerFQDN_calls_fail (0.00s) 167s === CONT TestListUsers/Two_users,_from_policy_cache 167s === CONT TestListUsers/Machines_are_ignored 167s === CONT TestListUsers/None 167s === CONT TestListUsers/Two_users,_dangling_symlink_for_one 167s === CONT TestListUsers/One_user 167s --- PASS: TestListUsers (0.00s) 167s --- PASS: TestListUsers/Error_on_policy_cache_directory_not_existing (0.00s) 167s --- PASS: TestListUsers/Ticket_cache_ignored_if_policy_cache_is_requested (0.00s) 167s --- PASS: TestListUsers/Machines_are_ignored,_from_policy_cache (0.00s) 167s --- PASS: TestListUsers/One_user,_from_policy_cache (0.00s) 167s --- PASS: TestListUsers/Machine_Only (0.00s) 167s --- PASS: TestListUsers/Two_users (0.00s) 167s --- PASS: TestListUsers/Error_on_Krb5_directory_not_existing (0.00s) 167s --- PASS: TestListUsers/Machine_Only,_from_policy_cache (0.00s) 167s --- PASS: TestListUsers/None,_from_policy_cache (0.01s) 167s --- PASS: TestListUsers/Two_users,_from_policy_cache (0.00s) 167s --- PASS: TestListUsers/Machines_are_ignored (0.00s) 167s --- PASS: TestListUsers/None (0.00s) 167s --- PASS: TestListUsers/Two_users,_dangling_symlink_for_one (0.00s) 167s --- PASS: TestListUsers/One_user (0.00s) 167s === CONT TestGetPoliciesWorkflows/Second_call_after_a_relogin 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:54Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:54Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:54Z" level=info msg="Assets directory is already up to date" 167s === CONT TestGetPoliciesConcurrently/One_machine,_one_user 167s time="2025-10-18T16:22:54Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:54Z" level=info msg="Assets directory is already up to date" 167s === CONT TestGetPoliciesConcurrently/Different_users,_different_GPO 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"one-value-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s === CONT TestGetPoliciesConcurrently/Different_users,_same_GPO 167s === CONT TestGetPoliciesConcurrently/Same_user,_same_GPO 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s === CONT TestGetPoliciesWorkflows/Second_call_with_different_user 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s --- PASS: TestGetPoliciesConcurrently (0.00s) 167s --- PASS: TestGetPoliciesConcurrently/Machine_requested_twice_at_the_same_time (0.19s) 167s --- PASS: TestGetPoliciesConcurrently/One_machine,_one_user (0.13s) 167s --- PASS: TestGetPoliciesConcurrently/Different_users,_different_GPO (0.12s) 167s --- PASS: TestGetPoliciesConcurrently/Same_user,_same_GPO (0.13s) 167s --- PASS: TestGetPoliciesConcurrently/Different_users,_same_GPO (0.13s) 167s === CONT TestGetPoliciesWorkflows/Second_machine_call_after_service_restarted 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s === CONT TestGetPoliciesWorkflows/Second_machine_call_is_a_refresh_(without_Krb5CCName_specified) 167s === CONT TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_refreshes_ticket_copy_if_needed 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s === CONT TestGetPoliciesWorkflows/Second_call_after_service_restarted 167s === CONT TestGetPoliciesWorkflows/Second_call_is_a_refresh_(without_Krb5CCName_specified) 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s === CONT TestGetPoliciesWorkflows/Second_machine_call_after_a_restart 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s === CONT TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_replaces_previous_symlinks_in_the_original_path 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"standard-name\" is already up to date" 167s time="2025-10-18T16:22:55Z" level=info msg="Assets directory is already up to date" 167s === CONT TestFetch/assets_root_directory_not_present_on_SYSVOL_issues_a_warning_only 167s --- PASS: TestGetPoliciesWorkflows (0.00s) 167s --- PASS: TestGetPoliciesWorkflows/Second_call_after_a_relogin (0.16s) 167s --- PASS: TestGetPoliciesWorkflows/Second_call_with_different_user (0.20s) 167s --- PASS: TestGetPoliciesWorkflows/Second_machine_call_after_service_restarted (0.20s) 167s --- PASS: TestGetPoliciesWorkflows/Second_machine_call_is_a_refresh_(without_Krb5CCName_specified) (0.16s) 167s --- PASS: TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_refreshes_ticket_copy_if_needed (0.16s) 167s --- PASS: TestGetPoliciesWorkflows/Second_call_after_service_restarted (0.17s) 167s --- PASS: TestGetPoliciesWorkflows/Second_call_is_a_refresh_(without_Krb5CCName_specified) (0.17s) 167s --- PASS: TestGetPoliciesWorkflows/Second_call_without_Krb5CCName_replaces_previous_symlinks_in_the_original_path (0.13s) 167s --- PASS: TestGetPoliciesWorkflows/Second_machine_call_after_a_restart (0.14s) 167s === CONT TestFetch/Local_gpo_redownloaded_on_missing_GPT.INI 167s time="2025-10-18T16:22:55Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s === CONT TestFetch/Error_unexistant_remote_gpo 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/existing_assets_are_kept_if_no_assets_downloadable_provided 167s === CONT TestFetch/local_gpo_is_more_recent_than_AD_one 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"gpo2-name\" is already up to date" 167s === CONT TestFetch/gpos_and_assets 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/gpo_already_up_to_date 167s === CONT TestFetch/Error_remote_version_NaN 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"gpo1-name\" is already up to date" 167s === CONT TestFetch/concurrent_same_gpos 167s === CONT TestFetch/Local_gpo_redownloaded_on_NaN_version_in_GPT.INI 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:55Z" level=warning msg="Invalid local GPT.INI for gpo1-name: invalid remote GPT.INI: strconv.ParseInt: parsing \"NaN\": invalid syntax\nDownloading it again…" 167s time="2025-10-18T16:22:55Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:55Z" level=info msg="GPO \"gpo1-name\" is already up to date" 167s === CONT TestFetch/two_gpos,_one_more_recent,_one_up_to_date 167s === CONT TestFetch/two_gpos,_one_should_be_refreshed,_one_new 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo2-name\" is already up to date" 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo1-name\" is already up to date" 167s === CONT TestFetch/two_gpos,_one_already_up_to_date,_one_should_be_refreshed 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo2-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo2-name\" is already up to date" 167s === CONT TestFetch/gpo_is_refreshed 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/assets_are_not_updated_if_local_version_matches,_with_non-standard_GPT.INI_casing 167s === CONT TestFetch/assets_are_updated_to_latest_version 167s time="2025-10-18T16:22:56Z" level=info msg="Assets directory is already up to date" 167s === CONT TestFetch/Local_gpo_redownloaded_on_version_entry_missing_in_GPT.INI 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:56Z" level=info msg="No version key found in GPT.INI for gpo1-name, assuming 0" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/assets_is_a_file_is_not_downloaded 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s === CONT TestFetch/keep_existing_gpos_intact 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo1-name\" is already up to date" 167s === CONT TestFetch/two_new_gpos 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo2-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/remote_version_entry_missing_treated_as_0 167s time="2025-10-18T16:22:56Z" level=info msg="No version key found in GPT.INI for gpt_ini_version_missing-name, assuming 0" 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpt_ini_version_missing-name\" is already up to date" 167s === CONT TestFetch/concurrent_different_gpos 167s === CONT TestFetch/assets_are_not_updated_if_version_matches 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo2-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Assets directory is already up to date" 167s === CONT TestFetch/two_gpos,_one_more_recent,_one_new 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo2-name\" is already up to date" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/one_new_gpo 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetch/two_gpos,_one_more_recent,_one_should_be_refreshed 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo2-name\" is already up to date" 167s === CONT TestFetch/Error_keeps_downloading_other_GPOS 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo2-name\"" 167s === CONT TestFetch/Error_missing_remote_GPT.INI 167s === CONT TestFetch/assets_only_are_downloaded 167s === CONT TestFetch/existing_assets_are_removed_if_not_present_on_SYSVOL 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s === CONT TestFetch/two_gpos,_one_already_up_to_date,_one_new 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"assets\"" 167s time="2025-10-18T16:22:56Z" level=info msg="GPO \"gpo1-name\" is already up to date" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"gpo2-name\"" 167s === CONT TestFetch/assets_are_not_updated_if_remote_version_matches,_with_non-standard_GPT.INI_casing 167s time="2025-10-18T16:22:56Z" level=info msg="Assets directory is already up to date" 167s === CONT TestGetPolicies/Machine_doesn’t_match 167s --- PASS: TestFetch (0.00s) 167s --- PASS: TestFetch/assets_root_directory_not_present_on_SYSVOL_issues_a_warning_only (0.01s) 167s --- PASS: TestFetch/Error_unexistant_remote_gpo (0.02s) 167s --- PASS: TestFetch/existing_assets_are_kept_if_no_assets_downloadable_provided (0.01s) 167s --- PASS: TestFetch/local_gpo_is_more_recent_than_AD_one (0.01s) 167s --- PASS: TestFetch/Local_gpo_redownloaded_on_missing_GPT.INI (0.05s) 167s --- PASS: TestFetch/gpos_and_assets (0.02s) 167s --- PASS: TestFetch/Error_remote_version_NaN (0.02s) 167s --- PASS: TestFetch/gpo_already_up_to_date (0.02s) 167s --- PASS: TestFetch/Local_gpo_redownloaded_on_NaN_version_in_GPT.INI (0.03s) 167s --- PASS: TestFetch/concurrent_same_gpos (0.03s) 167s --- PASS: TestFetch/two_gpos,_one_more_recent,_one_up_to_date (0.01s) 167s --- PASS: TestFetch/two_gpos,_one_should_be_refreshed,_one_new (0.03s) 167s --- PASS: TestFetch/two_gpos,_one_already_up_to_date,_one_should_be_refreshed (0.04s) 167s --- PASS: TestFetch/gpo_is_refreshed (0.02s) 167s --- PASS: TestFetch/assets_are_not_updated_if_local_version_matches,_with_non-standard_GPT.INI_casing (0.01s) 167s --- PASS: TestFetch/assets_are_updated_to_latest_version (0.02s) 167s --- PASS: TestFetch/assets_is_a_file_is_not_downloaded (0.01s) 167s --- PASS: TestFetch/keep_existing_gpos_intact (0.01s) 167s --- PASS: TestFetch/Local_gpo_redownloaded_on_version_entry_missing_in_GPT.INI (0.05s) 167s --- PASS: TestFetch/remote_version_entry_missing_treated_as_0 (0.01s) 167s --- PASS: TestFetch/two_new_gpos (0.02s) 167s --- PASS: TestFetch/assets_are_not_updated_if_version_matches (0.01s) 167s --- PASS: TestFetch/two_gpos,_one_more_recent,_one_new (0.04s) 167s --- PASS: TestFetch/concurrent_different_gpos (0.08s) 167s --- PASS: TestFetch/one_new_gpo (0.03s) 167s --- PASS: TestFetch/two_gpos,_one_more_recent,_one_should_be_refreshed (0.04s) 167s --- PASS: TestFetch/Error_keeps_downloading_other_GPOS (0.01s) 167s --- PASS: TestFetch/Error_missing_remote_GPT.INI (0.01s) 167s --- PASS: TestFetch/existing_assets_are_removed_if_not_present_on_SYSVOL (0.01s) 167s --- PASS: TestFetch/assets_only_are_downloaded (0.04s) 167s --- PASS: TestFetch/assets_are_not_updated_if_remote_version_matches,_with_non-standard_GPT.INI_casing (0.01s) 167s --- PASS: TestFetch/two_gpos,_one_already_up_to_date,_one_new (0.03s) 167s === CONT TestNew/failed_to_create_Policies_cache_directory 167s === CONT TestGetPolicies/Policy_user_directory_is_uppercase 167s === CONT TestGetPolicies/Standard_policy,_user_object 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"uppercase-class-name\"" 167s === CONT TestGetPolicies/User_policy_Registry.pol_is_mixed_case 167s === CONT TestGetPolicies/Disabled_value_overrides_non_disabled_one 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"mixedcase-registry-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"disabled-value-name\"" 167s === CONT TestGetPolicies/Two_policies,_with_reversed_overrides 167s === CONT TestGetPolicies/Same_key_in_different_domains_are_kept_separated 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"one-value-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"other-domain-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"one-value-name\"" 167s === CONT TestGetPolicies/No_override_for_this_release,_takes_default_value 167s === CONT TestGetPolicies/Enabled_override 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"multiple-releases-one-enabled-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"multiple-releases-name\"" 167s === CONT TestGetPolicies/Unsupported_type_for_unfiltered_entry 167s === CONT TestGetPolicies/Policy_can’t_be_downloaded 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s === CONT TestGetPolicies/Ignore_errors_on_non_Ubuntu_keys 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"bad-entry-type-name\"" 167s === CONT TestGetPolicies/Two_policies,_no_overrides 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"unsupported-with-errors-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"user-only-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"one-value-name\"" 167s === CONT TestGetPolicies/Two_policies,_with_overrides 167s === CONT TestGetPolicies/Standard_policy,_computer_object 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"one-value-name\"" 167s === CONT TestGetPolicies/Error_on_backend_ServerFQDN_call_failed 167s === CONT TestGetPolicies/Without_previous_call,_needs_userKrb5CCBaseName 167s === CONT TestGetPolicies/User_policy_Registry.pol_is_lower_case 167s === CONT TestGetPolicies/Policy_user_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"lowercase-registry-name\"" 167s time="2025-10-18T16:22:56Z" level=info msg="Downloading \"lowercase-class-name\"" 167s === CONT TestGetPolicies/Multiple_domains,_same_GPO 167s === CONT TestGetPolicies/Assets_can’t_be_downloaded_without_GPO 167s === CONT TestGetPolicies/Computer_only_policy,_user_object,_policy_is_empty 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"multiple-domains-name\"" 167s === CONT TestGetPolicies/User_only_policy,_user_object 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"machine-only-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"user-only-name\"" 167s === CONT TestGetPolicies/Empty_value_for_unfiltered_entry 167s === CONT TestGetPolicies/Unexisting_CC_original_file_for_user 167s === CONT TestGetPolicies/Include_non_Ubuntu_keys_used_to_configure_certificate_autoenrollment 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"empty-value-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"filtered-with-certificate-autoenrollment-name\"" 167s === CONT TestGetPolicies/More_policies,_with_multiple_overrides 167s === CONT TestGetPolicies/Disabled_value_is_overridden 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"disabled-value-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"user-only-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"one-value-name\"" 167s === CONT TestGetPolicies/Disabled_override 167s === CONT TestGetPolicies/Assets_directory_being_a_file_cleanup_local_existing_assets_and_its_db 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"multiple-releases-one-disabled-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s === CONT TestGetPolicies/User_only_policy,_computer_object,_policy_is_empty 167s === CONT TestGetPolicies/Computer_policy_Registry.pol_is_lower_case 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"lowercase-registry-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"user-only-name\"" 167s === CONT TestGetPolicies/Two_policies,_no_overrides,_reversed 167s === CONT TestGetPolicies/Disable_override_for_matching_release,_other_releases_override_ignored 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"one-value-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"multiple-releases-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"user-only-name\"" 167s === CONT TestGetPolicies/Standard_policy_with_assets,_downloads_assets 167s === CONT TestGetPolicies/Error_on_backend_IsOnline_call_failed 167s === CONT TestGetPolicies/Policy_machine_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"lowercase-class-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"assets\"" 167s === CONT TestGetPolicies/Local_assets_and_its_db_are_removed_if_not_present_anymore_on_AD_sysvol 167s === CONT TestGetPolicies/Standard_policy_with_assets,_existing_assets_are_reattached_if_not_refreshed 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Assets directory is already up to date" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s === CONT TestGetPolicies/Error_on_user_without_@_in_name 167s === CONT TestGetPolicies/Computer_policy_Registry.pol_is_mixed_case 167s === CONT TestGetPolicies/Policy_machine_directory_is_uppercase 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"uppercase-class-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"mixedcase-registry-name\"" 167s === CONT TestGetPolicies/Filter_non_Ubuntu_keys 167s === CONT TestGetPolicies/Two_policies,_no_overrides,_one_is_not_the_same_object_type,_machine_ones_are_empty_when_parsing_user 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"filtered-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"standard-name\"" 167s time="2025-10-18T16:22:57Z" level=info msg="Downloading \"machine-only-name\"" 167s === CONT TestGetPolicies/Enabled_override_for_matching_release,_other_releases_override_ignored 167s === CONT TestGetPolicies/Symlinks_can’t_be_created 167s === CONT TestGetPolicies/Corrupted_policy_file 167s time="2025-10-18T16:22:57Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:58Z" level=info msg="No assets directory with GPT.INI file found on AD, skipping assets download" 167s time="2025-10-18T16:22:58Z" level=info msg="Downloading \"multiple-releases-name\"" 167s time="2025-10-18T16:22:58Z" level=info msg="Downloading \"corrupted-policy-name\"" 167s === CONT TestGetPolicies/Error_on_backend_HostKrb5CCName_call_failed 167s === CONT TestGetPolicies/Unexisting_CC_original_file_for_machine 167s === CONT TestFetchTweakSysvolCacheDir/SysvolCacheDir_is_read_only 167s --- PASS: TestGetPolicies (0.00s) 167s --- PASS: TestGetPolicies/Machine_doesn’t_match (0.00s) 167s --- PASS: TestGetPolicies/Standard_policy,_user_object (0.06s) 167s --- PASS: TestGetPolicies/Policy_user_directory_is_uppercase (0.08s) 167s --- PASS: TestGetPolicies/User_policy_Registry.pol_is_mixed_case (0.08s) 167s --- PASS: TestGetPolicies/Disabled_value_overrides_non_disabled_one (0.07s) 167s --- PASS: TestGetPolicies/Same_key_in_different_domains_are_kept_separated (0.10s) 167s --- PASS: TestGetPolicies/Two_policies,_with_reversed_overrides (0.11s) 167s --- PASS: TestGetPolicies/Enabled_override (0.09s) 167s --- PASS: TestGetPolicies/No_override_for_this_release,_takes_default_value (0.09s) 167s --- PASS: TestGetPolicies/Policy_can’t_be_downloaded (0.08s) 167s --- PASS: TestGetPolicies/Unsupported_type_for_unfiltered_entry (0.09s) 167s --- PASS: TestGetPolicies/Ignore_errors_on_non_Ubuntu_keys (0.08s) 167s --- PASS: TestGetPolicies/Two_policies,_no_overrides (0.08s) 167s --- PASS: TestGetPolicies/Standard_policy,_computer_object (0.09s) 167s --- PASS: TestGetPolicies/Error_on_backend_ServerFQDN_call_failed (0.00s) 167s --- PASS: TestGetPolicies/Without_previous_call,_needs_userKrb5CCBaseName (0.00s) 167s --- PASS: TestGetPolicies/Two_policies,_with_overrides (0.10s) 167s --- PASS: TestGetPolicies/User_policy_Registry.pol_is_lower_case (0.08s) 167s --- PASS: TestGetPolicies/Policy_user_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed (0.07s) 167s --- PASS: TestGetPolicies/Assets_can’t_be_downloaded_without_GPO (0.08s) 167s --- PASS: TestGetPolicies/Multiple_domains,_same_GPO (0.09s) 167s --- PASS: TestGetPolicies/Computer_only_policy,_user_object,_policy_is_empty (0.10s) 167s --- PASS: TestGetPolicies/User_only_policy,_user_object (0.10s) 167s --- PASS: TestGetPolicies/Unexisting_CC_original_file_for_user (0.00s) 167s --- PASS: TestGetPolicies/Empty_value_for_unfiltered_entry (0.08s) 167s --- PASS: TestGetPolicies/Include_non_Ubuntu_keys_used_to_configure_certificate_autoenrollment (0.08s) 167s --- PASS: TestGetPolicies/More_policies,_with_multiple_overrides (0.11s) 167s --- PASS: TestGetPolicies/Disabled_value_is_overridden (0.11s) 167s --- PASS: TestGetPolicies/Disabled_override (0.08s) 167s --- PASS: TestGetPolicies/Assets_directory_being_a_file_cleanup_local_existing_assets_and_its_db (0.08s) 167s --- PASS: TestGetPolicies/Computer_policy_Registry.pol_is_lower_case (0.08s) 167s --- PASS: TestGetPolicies/User_only_policy,_computer_object,_policy_is_empty (0.08s) 167s --- PASS: TestGetPolicies/Two_policies,_no_overrides,_reversed (0.10s) 167s --- PASS: TestGetPolicies/Disable_override_for_matching_release,_other_releases_override_ignored (0.11s) 167s --- PASS: TestGetPolicies/Error_on_backend_IsOnline_call_failed (0.00s) 167s --- PASS: TestGetPolicies/Policy_machine_directory_is_not_capitalized_or_uppercase,_no_rules_are_parsed (0.08s) 167s --- PASS: TestGetPolicies/Standard_policy_with_assets,_downloads_assets (0.09s) 167s --- PASS: TestGetPolicies/Standard_policy_with_assets,_existing_assets_are_reattached_if_not_refreshed (0.07s) 167s --- PASS: TestGetPolicies/Local_assets_and_its_db_are_removed_if_not_present_anymore_on_AD_sysvol (0.07s) 167s --- PASS: TestGetPolicies/Error_on_user_without_@_in_name (0.00s) 167s --- PASS: TestGetPolicies/Policy_machine_directory_is_uppercase (0.08s) 167s --- PASS: TestGetPolicies/Computer_policy_Registry.pol_is_mixed_case (0.08s) 167s --- PASS: TestGetPolicies/Filter_non_Ubuntu_keys (0.08s) 167s --- PASS: TestGetPolicies/Two_policies,_no_overrides,_one_is_not_the_same_object_type,_machine_ones_are_empty_when_parsing_user (0.08s) 167s --- PASS: TestGetPolicies/Symlinks_can’t_be_created (0.00s) 167s --- PASS: TestGetPolicies/Corrupted_policy_file (0.09s) 167s --- PASS: TestGetPolicies/Error_on_backend_HostKrb5CCName_call_failed (0.00s) 167s --- PASS: TestGetPolicies/Unexisting_CC_original_file_for_machine (0.00s) 167s --- PASS: TestGetPolicies/Enabled_override_for_matching_release,_other_releases_override_ignored (0.09s) 167s === CONT TestNew/failed_to_create_Sysvol_cache_directory 167s === CONT TestNew/failed_to_create_KRB5_cache_directory 167s === CONT TestNew/create_KRB5_and_Sysvol_cache_directory 167s === CONT TestNew/error_on_backend_ServerFQDN_random_failure 167s === CONT TestNew/no_active_server_in_backend_does_not_fail_ad_creation 167s --- PASS: TestNew (0.00s) 167s --- PASS: TestNew/failed_to_create_Policies_cache_directory (0.00s) 167s --- PASS: TestNew/failed_to_create_Sysvol_cache_directory (0.00s) 167s --- PASS: TestNew/failed_to_create_KRB5_cache_directory (0.00s) 167s --- PASS: TestNew/create_KRB5_and_Sysvol_cache_directory (0.00s) 167s --- PASS: TestNew/error_on_backend_ServerFQDN_random_failure (0.00s) 167s --- PASS: TestNew/no_active_server_in_backend_does_not_fail_ad_creation (0.00s) 167s === CONT TestFetchTweakSysvolCacheDir/SysvolCacheDir_doesn't_exist 167s time="2025-10-18T16:22:58Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:58Z" level=info msg="Downloading \"gpo1-name\"" 167s === CONT TestFetchWithUnreadableFile/without_gpo_initially_don’t_commit_new_partial_GPO 167s --- PASS: TestFetchTweakSysvolCacheDir (0.00s) 167s --- PASS: TestFetchTweakSysvolCacheDir/SysvolCacheDir_doesn't_exist (0.01s) 167s --- PASS: TestFetchTweakSysvolCacheDir/SysvolCacheDir_is_read_only (0.02s) 167s === CONT TestFetchWithUnreadableFile/existing_gpo_is_preserved 167s time="2025-10-18T16:22:58Z" level=info msg="Downloading \"gpo1-name\"" 167s time="2025-10-18T16:22:58Z" level=info msg="Downloading \"gpo1-name\"" 167s --- PASS: TestFetchWithUnreadableFile (0.00s) 167s --- PASS: TestFetchWithUnreadableFile/existing_gpo_is_preserved (0.01s) 167s --- PASS: TestFetchWithUnreadableFile/without_gpo_initially_don’t_commit_new_partial_GPO (0.01s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad 4.954s 167s === RUN TestGenerateExpandedCategories 167s === PAUSE TestGenerateExpandedCategories 167s === RUN TestExpandedCategoriesToADMX 167s === PAUSE TestExpandedCategoriesToADMX 167s === RUN TestExpandedCategoriesToMD 167s === PAUSE TestExpandedCategoriesToMD 167s === RUN TestExpand 167s === PAUSE TestExpand 167s === RUN TestGenerateAD 167s === PAUSE TestGenerateAD 167s === RUN TestGenerateDoc 167s === PAUSE TestGenerateDoc 167s === CONT TestGenerateExpandedCategories 167s === RUN TestGenerateExpandedCategories/simple 167s === PAUSE TestGenerateExpandedCategories/simple 167s === RUN TestGenerateExpandedCategories/no_note 167s === PAUSE TestGenerateExpandedCategories/no_note 167s === RUN TestGenerateExpandedCategories/requires_ubuntu_pro 167s === PAUSE TestGenerateExpandedCategories/requires_ubuntu_pro 167s === RUN TestGenerateExpandedCategories/different_element_type 167s === PAUSE TestGenerateExpandedCategories/different_element_type 167s === RUN TestGenerateExpandedCategories/no_meta_disabled 167s === PAUSE TestGenerateExpandedCategories/no_meta_disabled 167s === RUN TestGenerateExpandedCategories/error_on_missing_release 167s === PAUSE TestGenerateExpandedCategories/error_on_missing_release 167s === RUN TestGenerateExpandedCategories/basic 167s === PAUSE TestGenerateExpandedCategories/basic 167s === RUN TestGenerateExpandedCategories/different_explain_text 167s === PAUSE TestGenerateExpandedCategories/different_explain_text 167s === RUN TestGenerateExpandedCategories/different_display_name 167s === PAUSE TestGenerateExpandedCategories/different_display_name 167s === RUN TestGenerateExpandedCategories/no_defaults 167s === PAUSE TestGenerateExpandedCategories/no_defaults 167s === RUN TestGenerateExpandedCategories/default_policy_class_is_capitalized 167s === PAUSE TestGenerateExpandedCategories/default_policy_class_is_capitalized 167s === RUN TestGenerateExpandedCategories/different_meta 167s === PAUSE TestGenerateExpandedCategories/different_meta 167s === RUN TestGenerateExpandedCategories/meta_entry_only 167s === PAUSE TestGenerateExpandedCategories/meta_entry_only 167s === RUN TestGenerateExpandedCategories/error_on_empty_default_policy_class 167s === PAUSE TestGenerateExpandedCategories/error_on_empty_default_policy_class 167s === RUN TestGenerateExpandedCategories/multiple_top_categories 167s === PAUSE TestGenerateExpandedCategories/multiple_top_categories 167s === RUN TestGenerateExpandedCategories/no_meta_at_all 167s === PAUSE TestGenerateExpandedCategories/no_meta_at_all 167s === RUN TestGenerateExpandedCategories/meta_is_overridden_by_enabled_key 167s === PAUSE TestGenerateExpandedCategories/meta_is_overridden_by_enabled_key 167s === RUN TestGenerateExpandedCategories/error_on_unexisting_policy_referenced 167s === PAUSE TestGenerateExpandedCategories/error_on_unexisting_policy_referenced 167s === RUN TestGenerateExpandedCategories/error_on_different_class 167s === PAUSE TestGenerateExpandedCategories/error_on_different_class 167s === RUN TestGenerateExpandedCategories/policy_directory_doesn't_exist 167s === PAUSE TestGenerateExpandedCategories/policy_directory_doesn't_exist 167s === RUN TestGenerateExpandedCategories/category_definition_doesn't_exist 167s === PAUSE TestGenerateExpandedCategories/category_definition_doesn't_exist 167s === RUN TestGenerateExpandedCategories/same_default 167s === CONT TestExpand 167s === RUN TestExpand/dconf 167s === PAUSE TestExpand/dconf 167s === RUN TestExpand/expanded_policy_with_meta 167s === PAUSE TestExpand/expanded_policy_with_meta 167s === RUN TestExpand/invalid_dconf.yaml 167s === PAUSE TestExpand/invalid_dconf.yaml 167s === RUN TestExpand/expanded_policy 167s === PAUSE TestExpand/expanded_policy 167s === RUN TestExpand/expanded_policy_with_release_any 167s === PAUSE TestExpand/expanded_policy_with_release_any 167s === PAUSE TestGenerateExpandedCategories/same_default 167s === RUN TestExpand/ignore_categories_and_non_yaml_files 167s === PAUSE TestExpand/ignore_categories_and_non_yaml_files 167s === RUN TestExpand/no_release_file 167s === PAUSE TestExpand/no_release_file 167s === RUN TestExpand/no_version_id 167s === PAUSE TestExpand/no_version_id 167s === RUN TestExpand/unsupported_policy_type 167s === PAUSE TestExpand/unsupported_policy_type 167s === RUN TestExpand/no_source_directory 167s === PAUSE TestExpand/no_source_directory 167s === RUN TestExpand/dconf_generation_fails 167s === PAUSE TestExpand/dconf_generation_fails 167s === CONT TestGenerateDoc 167s === RUN TestGenerateExpandedCategories/same_policy_used_in_two_categories 167s === PAUSE TestGenerateExpandedCategories/same_policy_used_in_two_categories 167s === RUN TestGenerateExpandedCategories/no_note_strategy_append 167s === PAUSE TestGenerateExpandedCategories/no_note_strategy_append 167s === RUN TestGenerateExpandedCategories/error_on_one_policy_not_used 167s === PAUSE TestGenerateExpandedCategories/error_on_one_policy_not_used 167s === RUN TestGenerateExpandedCategories/error_on_invalid_default_policy_class 167s === PAUSE TestGenerateExpandedCategories/error_on_invalid_default_policy_class 167s === RUN TestGenerateExpandedCategories/use_policy_class_instead_of_category_default 167s === PAUSE TestGenerateExpandedCategories/use_policy_class_instead_of_category_default 167s === RUN TestGenerateExpandedCategories/available_on_one_release_only 167s === PAUSE TestGenerateExpandedCategories/available_on_one_release_only 167s === RUN TestGenerateExpandedCategories/applicable_to_all_releases 167s === PAUSE TestGenerateExpandedCategories/applicable_to_all_releases 167s === RUN TestGenerateExpandedCategories/choices 167s === PAUSE TestGenerateExpandedCategories/choices 167s === RUN TestGenerateExpandedCategories/allow_policy_referenced_but_not_available_in_any_releases 167s === PAUSE TestGenerateExpandedCategories/allow_policy_referenced_but_not_available_in_any_releases 167s === RUN TestGenerateExpandedCategories/no_meta_enabled 167s === PAUSE TestGenerateExpandedCategories/no_meta_enabled 167s === RUN TestGenerateExpandedCategories/meta_is_overridden_by_disabled_key 167s === PAUSE TestGenerateExpandedCategories/meta_is_overridden_by_disabled_key 167s === RUN TestGenerateExpandedCategories/two_policies 167s === PAUSE TestGenerateExpandedCategories/two_policies 167s === RUN TestGenerateExpandedCategories/different_defaults 167s === PAUSE TestGenerateExpandedCategories/different_defaults 167s === RUN TestGenerateExpandedCategories/with_prefix 167s === PAUSE TestGenerateExpandedCategories/with_prefix 167s === RUN TestGenerateExpandedCategories/same_policy_used_in_two_categories_but_different_default_class 167s === PAUSE TestGenerateExpandedCategories/same_policy_used_in_two_categories_but_different_default_class 167s === RUN TestGenerateExpandedCategories/range 167s === PAUSE TestGenerateExpandedCategories/range 167s === RUN TestGenerateExpandedCategories/error_on_policy_not_attached_to_any_releases 167s === PAUSE TestGenerateExpandedCategories/error_on_policy_not_attached_to_any_releases 167s === RUN TestGenerateExpandedCategories/nested_categories 167s === PAUSE TestGenerateExpandedCategories/nested_categories 167s === RUN TestGenerateExpandedCategories/different_choices 167s === PAUSE TestGenerateExpandedCategories/different_choices 167s === RUN TestGenerateExpandedCategories/different_range 167s === PAUSE TestGenerateExpandedCategories/different_range 167s === RUN TestGenerateExpandedCategories/error_on_different_policy_type 167s === RUN TestGenerateDoc/invalid_definition_file 167s === PAUSE TestGenerateDoc/invalid_definition_file 167s === RUN TestGenerateDoc/category_expansion_fails 167s === PAUSE TestGenerateDoc/category_expansion_fails 167s === RUN TestGenerateDoc/doc_generation_fails 167s === PAUSE TestGenerateDoc/doc_generation_fails 167s === RUN TestGenerateDoc/releases_from_yaml 167s === PAUSE TestGenerateDoc/releases_from_yaml 167s === RUN TestGenerateDoc/autodetect_overrides_releases_from_yaml 167s === PAUSE TestGenerateDoc/autodetect_overrides_releases_from_yaml 167s === CONT TestGenerateAD 167s === RUN TestGenerateAD/invalid_definition_file 167s === PAUSE TestGenerateAD/invalid_definition_file 167s === RUN TestGenerateAD/category_expansion_fails 167s === PAUSE TestGenerateAD/category_expansion_fails 167s === RUN TestGenerateAD/admx_generation_fails 167s === PAUSE TestGenerateAD/admx_generation_fails 167s === RUN TestGenerateAD/releases_from_yaml 167s === PAUSE TestGenerateAD/releases_from_yaml 167s === RUN TestGenerateAD/autodetect_overrides_releases_from_yaml 167s === PAUSE TestGenerateAD/autodetect_overrides_releases_from_yaml 167s === PAUSE TestGenerateExpandedCategories/error_on_different_policy_type 167s === RUN TestGenerateExpandedCategories/error_on_nested_category 167s === CONT TestExpandedCategoriesToMD 167s === RUN TestExpandedCategoriesToMD/multiple_releases_for_one_key 167s === PAUSE TestExpandedCategoriesToMD/multiple_releases_for_one_key 167s === RUN TestExpandedCategoriesToMD/multiple_releases_with_different_choices 167s === PAUSE TestExpandedCategoriesToMD/multiple_releases_with_different_choices 167s === RUN TestExpandedCategoriesToMD/multiple_releases_with_all_widgets_and_different_defaults 167s === PAUSE TestExpandedCategoriesToMD/multiple_releases_with_all_widgets_and_different_defaults 167s === RUN TestExpandedCategoriesToMD/no_meta_enabled 167s === PAUSE TestExpandedCategoriesToMD/no_meta_enabled 167s === RUN TestExpandedCategoriesToMD/multiple_categories 167s === PAUSE TestExpandedCategoriesToMD/multiple_categories 167s === RUN TestExpandedCategoriesToMD/decimal_with_range 167s === PAUSE TestExpandedCategoriesToMD/decimal_with_range 167s === PAUSE TestGenerateExpandedCategories/error_on_nested_category 167s === RUN TestGenerateExpandedCategories/error_on_key_independent_of_any_release_key_but_with_one_release_specified 167s === PAUSE TestGenerateExpandedCategories/error_on_key_independent_of_any_release_key_but_with_one_release_specified 167s === CONT TestExpandedCategoriesToADMX 167s === RUN TestExpandedCategoriesToADMX/double_with_range 167s === PAUSE TestExpandedCategoriesToADMX/double_with_range 167s === RUN TestExpandedCategoriesToADMX/multiple_releases_for_one_key 167s === PAUSE TestExpandedCategoriesToADMX/multiple_releases_for_one_key 167s === RUN TestExpandedCategoriesToADMX/multiple_releases_with_different_choices 167s === PAUSE TestExpandedCategoriesToADMX/multiple_releases_with_different_choices 167s === RUN TestExpandedCategoriesToADMX/no_meta_enabled 167s === PAUSE TestExpandedCategoriesToADMX/no_meta_enabled 167s === RUN TestExpandedCategoriesToADMX/choices_with_default 167s === PAUSE TestExpandedCategoriesToADMX/choices_with_default 167s === RUN TestExpandedCategoriesToADMX/double 167s === PAUSE TestExpandedCategoriesToADMX/double 167s === RUN TestExpandedCategoriesToADMX/multiple_releases_with_different_ranges 167s === PAUSE TestExpandedCategoriesToADMX/multiple_releases_with_different_ranges 167s === RUN TestExpandedCategoriesToADMX/no_meta_disabled 167s === PAUSE TestExpandedCategoriesToADMX/no_meta_disabled 167s === RUN TestExpandedCategoriesToADMX/error_on_destination_creation 167s === PAUSE TestExpandedCategoriesToADMX/error_on_destination_creation 167s === RUN TestExpandedCategoriesToADMX/multiple_categories 167s === PAUSE TestExpandedCategoriesToADMX/multiple_categories 167s === RUN TestExpandedCategoriesToADMX/array_of_strings 167s === PAUSE TestExpandedCategoriesToADMX/array_of_strings 167s === RUN TestExpandedCategoriesToADMX/multiple_releases_with_different_widgettype 167s === PAUSE TestExpandedCategoriesToADMX/multiple_releases_with_different_widgettype 167s === RUN TestExpandedCategoriesToADMX/multiple_releases_with_all_widgets_and_different_defaults 167s === PAUSE TestExpandedCategoriesToADMX/multiple_releases_with_all_widgets_and_different_defaults 167s === RUN TestExpandedCategoriesToADMX/no_meta_at_all 167s === PAUSE TestExpandedCategoriesToADMX/no_meta_at_all 167s === RUN TestExpandedCategoriesToMD/decimal_with_max_only 167s === PAUSE TestExpandedCategoriesToMD/decimal_with_max_only 167s === RUN TestExpandedCategoriesToMD/array_of_integers 167s === PAUSE TestExpandedCategoriesToMD/array_of_integers 167s === RUN TestExpandedCategoriesToMD/choices 167s === PAUSE TestExpandedCategoriesToMD/choices 167s === RUN TestExpandedCategoriesToMD/double 167s === PAUSE TestExpandedCategoriesToMD/double 167s === RUN TestExpandedCategoriesToMD/double_with_range 167s === PAUSE TestExpandedCategoriesToMD/double_with_range 167s === RUN TestExpandedCategoriesToMD/multiple_releases_with_different_widgettype 167s === PAUSE TestExpandedCategoriesToMD/multiple_releases_with_different_widgettype 167s === RUN TestExpandedCategoriesToMD/simple 167s === PAUSE TestExpandedCategoriesToMD/simple 167s === RUN TestExpandedCategoriesToADMX/simple 167s === PAUSE TestExpandedCategoriesToADMX/simple 167s === RUN TestExpandedCategoriesToADMX/nested_categories 167s === PAUSE TestExpandedCategoriesToADMX/nested_categories 167s === RUN TestExpandedCategoriesToADMX/other_distro 167s === PAUSE TestExpandedCategoriesToADMX/other_distro 167s === RUN TestExpandedCategoriesToADMX/basic_key 167s === PAUSE TestExpandedCategoriesToADMX/basic_key 167s === RUN TestExpandedCategoriesToADMX/boolean 167s === PAUSE TestExpandedCategoriesToADMX/boolean 167s === RUN TestExpandedCategoriesToADMX/decimal 167s === PAUSE TestExpandedCategoriesToADMX/decimal 167s === RUN TestExpandedCategoriesToADMX/decimal_with_range 167s === PAUSE TestExpandedCategoriesToADMX/decimal_with_range 167s === RUN TestExpandedCategoriesToADMX/long_decimal 167s === PAUSE TestExpandedCategoriesToADMX/long_decimal 167s === RUN TestExpandedCategoriesToADMX/decimal_with_min_only 167s === PAUSE TestExpandedCategoriesToADMX/decimal_with_min_only 167s === RUN TestExpandedCategoriesToADMX/decimal_with_max_only 167s === PAUSE TestExpandedCategoriesToADMX/decimal_with_max_only 167s === RUN TestExpandedCategoriesToADMX/array_of_integers 167s === PAUSE TestExpandedCategoriesToADMX/array_of_integers 167s === RUN TestExpandedCategoriesToADMX/choices 167s === PAUSE TestExpandedCategoriesToADMX/choices 167s === RUN TestExpandedCategoriesToMD/nested_categories 167s === PAUSE TestExpandedCategoriesToMD/nested_categories 167s === RUN TestExpandedCategoriesToMD/nested_categories,_classes_and_empty 167s === PAUSE TestExpandedCategoriesToMD/nested_categories,_classes_and_empty 167s === RUN TestExpandedCategoriesToMD/boolean 167s === PAUSE TestExpandedCategoriesToMD/boolean 167s === RUN TestExpandedCategoriesToMD/array_of_strings 167s === PAUSE TestExpandedCategoriesToMD/array_of_strings 167s === RUN TestExpandedCategoriesToMD/error_on_destination_creation 167s === PAUSE TestExpandedCategoriesToMD/error_on_destination_creation 167s === RUN TestExpandedCategoriesToMD/basic_key 167s === PAUSE TestExpandedCategoriesToMD/basic_key 167s === RUN TestExpandedCategoriesToMD/user_policy 167s === PAUSE TestExpandedCategoriesToMD/user_policy 167s === RUN TestExpandedCategoriesToMD/decimal 167s === PAUSE TestExpandedCategoriesToMD/decimal 167s === RUN TestExpandedCategoriesToMD/long_decimal 167s === PAUSE TestExpandedCategoriesToMD/long_decimal 167s === RUN TestExpandedCategoriesToMD/multiple_releases_with_different_ranges 167s === PAUSE TestExpandedCategoriesToMD/multiple_releases_with_different_ranges 167s === RUN TestExpandedCategoriesToMD/no_meta_disabled 167s === PAUSE TestExpandedCategoriesToMD/no_meta_disabled 167s === RUN TestExpandedCategoriesToMD/no_meta_at_all 167s === PAUSE TestExpandedCategoriesToMD/no_meta_at_all 167s === RUN TestExpandedCategoriesToMD/decimal_with_min_only 167s === PAUSE TestExpandedCategoriesToMD/decimal_with_min_only 167s === RUN TestExpandedCategoriesToMD/choices_with_default 167s === PAUSE TestExpandedCategoriesToMD/choices_with_default 167s === CONT TestExpand/dconf 167s === CONT TestExpand/no_release_file 167s === CONT TestExpand/dconf_generation_fails 167s === CONT TestExpand/no_source_directory 167s === CONT TestExpand/unsupported_policy_type 167s === CONT TestExpand/no_version_id 167s === CONT TestExpand/expanded_policy 167s === NAME TestExpand/dconf 167s admxgen_test.go:78: Serializing object for golden file 167s === NAME TestExpand/expanded_policy 167s admxgen_test.go:78: Serializing object for golden file 167s === CONT TestExpand/ignore_categories_and_non_yaml_files 167s === CONT TestExpand/expanded_policy_with_release_any 167s admxgen_test.go:78: Serializing object for golden file 167s === CONT TestExpand/invalid_dconf.yaml 167s === CONT TestExpand/expanded_policy_with_meta 167s admxgen_test.go:78: Serializing object for golden file 167s === NAME TestExpand/ignore_categories_and_non_yaml_files 167s admxgen_test.go:78: Serializing object for golden file 167s --- PASS: TestExpand (0.00s) 167s --- PASS: TestExpand/no_release_file (0.00s) 167s --- PASS: TestExpand/dconf_generation_fails (0.00s) 167s --- PASS: TestExpand/no_source_directory (0.00s) 167s --- PASS: TestExpand/unsupported_policy_type (0.00s) 167s --- PASS: TestExpand/no_version_id (0.00s) 167s --- PASS: TestExpand/expanded_policy (0.00s) 167s --- PASS: TestExpand/dconf (0.00s) 167s --- PASS: TestExpand/expanded_policy_with_release_any (0.01s) 167s --- PASS: TestExpand/invalid_dconf.yaml (0.00s) 167s --- PASS: TestExpand/expanded_policy_with_meta (0.00s) 167s --- PASS: TestExpand/ignore_categories_and_non_yaml_files (0.01s) 167s === CONT TestGenerateDoc/invalid_definition_file 167s === CONT TestGenerateDoc/releases_from_yaml 167s === CONT TestGenerateDoc/doc_generation_fails 167s === CONT TestGenerateDoc/category_expansion_fails 167s === CONT TestGenerateDoc/autodetect_overrides_releases_from_yaml 167s --- PASS: TestGenerateDoc (0.00s) 167s --- PASS: TestGenerateDoc/invalid_definition_file (0.00s) 167s --- PASS: TestGenerateDoc/releases_from_yaml (0.00s) 167s --- PASS: TestGenerateDoc/doc_generation_fails (0.00s) 167s --- PASS: TestGenerateDoc/category_expansion_fails (0.00s) 167s --- PASS: TestGenerateDoc/autodetect_overrides_releases_from_yaml (0.00s) 167s === CONT TestGenerateAD/invalid_definition_file 167s === CONT TestGenerateAD/releases_from_yaml 167s === CONT TestGenerateExpandedCategories/simple 167s === CONT TestGenerateAD/admx_generation_fails 167s === NAME TestGenerateExpandedCategories/simple 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateAD/category_expansion_fails 167s === CONT TestGenerateAD/autodetect_overrides_releases_from_yaml 167s === CONT TestGenerateExpandedCategories/no_note_strategy_append 167s internal_test.go:112: Serializing object for golden file 167s --- PASS: TestGenerateAD (0.00s) 167s --- PASS: TestGenerateAD/releases_from_yaml (0.00s) 167s --- PASS: TestGenerateAD/invalid_definition_file (0.01s) 167s --- PASS: TestGenerateAD/category_expansion_fails (0.00s) 167s --- PASS: TestGenerateAD/admx_generation_fails (0.00s) 167s --- PASS: TestGenerateAD/autodetect_overrides_releases_from_yaml (0.00s) 167s === CONT TestGenerateExpandedCategories/error_on_key_independent_of_any_release_key_but_with_one_release_specified 167s === CONT TestGenerateExpandedCategories/error_on_nested_category 167s === CONT TestGenerateExpandedCategories/error_on_different_policy_type 167s === CONT TestGenerateExpandedCategories/different_range 167s === CONT TestGenerateExpandedCategories/different_choices 167s === NAME TestGenerateExpandedCategories/different_range 167s internal_test.go:112: Serializing object for golden file 167s === NAME TestGenerateExpandedCategories/different_choices 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/nested_categories 167s === CONT TestGenerateExpandedCategories/error_on_policy_not_attached_to_any_releases 167s === CONT TestGenerateExpandedCategories/range 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/same_policy_used_in_two_categories_but_different_default_class 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/with_prefix 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/different_defaults 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/two_policies 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/meta_is_overridden_by_disabled_key 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/no_meta_enabled 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/allow_policy_referenced_but_not_available_in_any_releases 167s time="2025-10-18T16:22:53Z" level=warning msg="policy /org/gnome/desktop/policy-doesnotexit referenced in \"Category1 Display Name\" does not exist in any supported releases" 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/choices 167s internal_test.go:112: Serializing object for golden file 167s === NAME TestGenerateExpandedCategories/nested_categories 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/available_on_one_release_only 167s === CONT TestGenerateExpandedCategories/applicable_to_all_releases 167s internal_test.go:112: Serializing object for golden file 167s === NAME TestGenerateExpandedCategories/available_on_one_release_only 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/use_policy_class_instead_of_category_default 167s === CONT TestGenerateExpandedCategories/error_on_invalid_default_policy_class 167s === CONT TestGenerateExpandedCategories/error_on_one_policy_not_used 167s === CONT TestGenerateExpandedCategories/meta_entry_only 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/same_policy_used_in_two_categories 167s === NAME TestGenerateExpandedCategories/use_policy_class_instead_of_category_default 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/same_default 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/category_definition_doesn't_exist 167s === CONT TestGenerateExpandedCategories/policy_directory_doesn't_exist 167s === CONT TestGenerateExpandedCategories/error_on_different_class 167s === CONT TestGenerateExpandedCategories/error_on_unexisting_policy_referenced 167s === CONT TestGenerateExpandedCategories/meta_is_overridden_by_enabled_key 167s internal_test.go:112: Serializing object for golden file 167s === NAME TestGenerateExpandedCategories/same_policy_used_in_two_categories 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/multiple_top_categories 167s === CONT TestGenerateExpandedCategories/no_meta_at_all 167s === NAME TestGenerateExpandedCategories/multiple_top_categories 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/error_on_empty_default_policy_class 167s === CONT TestGenerateExpandedCategories/basic 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/different_meta 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/default_policy_class_is_capitalized 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/no_defaults 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/different_display_name 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/different_explain_text 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/different_element_type 167s === NAME TestGenerateExpandedCategories/no_meta_at_all 167s internal_test.go:112: Serializing object for golden file 167s === NAME TestGenerateExpandedCategories/different_element_type 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/error_on_missing_release 167s === CONT TestGenerateExpandedCategories/no_meta_disabled 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestGenerateExpandedCategories/no_note 167s internal_test.go:112: Serializing object for golden file 167s === CONT TestExpandedCategoriesToADMX/double_with_range 167s === CONT TestGenerateExpandedCategories/requires_ubuntu_pro 167s internal_test.go:112: Serializing object for golden file 167s --- PASS: TestGenerateExpandedCategories (0.00s) 167s --- PASS: TestGenerateExpandedCategories/simple (0.00s) 167s --- PASS: TestGenerateExpandedCategories/no_note_strategy_append (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_key_independent_of_any_release_key_but_with_one_release_specified (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_different_policy_type (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_nested_category (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_range (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_choices (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_policy_not_attached_to_any_releases (0.00s) 167s --- PASS: TestGenerateExpandedCategories/range (0.00s) 167s --- PASS: TestGenerateExpandedCategories/same_policy_used_in_two_categories_but_different_default_class (0.00s) 167s --- PASS: TestGenerateExpandedCategories/with_prefix (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_defaults (0.00s) 167s --- PASS: TestGenerateExpandedCategories/two_policies (0.00s) 167s --- PASS: TestGenerateExpandedCategories/meta_is_overridden_by_disabled_key (0.00s) 167s --- PASS: TestGenerateExpandedCategories/no_meta_enabled (0.00s) 167s --- PASS: TestGenerateExpandedCategories/allow_policy_referenced_but_not_available_in_any_releases (0.00s) 167s --- PASS: TestGenerateExpandedCategories/choices (0.00s) 167s --- PASS: TestGenerateExpandedCategories/nested_categories (0.01s) 167s --- PASS: TestGenerateExpandedCategories/available_on_one_release_only (0.00s) 167s --- PASS: TestGenerateExpandedCategories/applicable_to_all_releases (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_invalid_default_policy_class (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_one_policy_not_used (0.00s) 167s --- PASS: TestGenerateExpandedCategories/meta_entry_only (0.00s) 167s --- PASS: TestGenerateExpandedCategories/use_policy_class_instead_of_category_default (0.00s) 167s --- PASS: TestGenerateExpandedCategories/same_default (0.00s) 167s --- PASS: TestGenerateExpandedCategories/category_definition_doesn't_exist (0.00s) 167s --- PASS: TestGenerateExpandedCategories/policy_directory_doesn't_exist (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_different_class (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_unexisting_policy_referenced (0.00s) 167s --- PASS: TestGenerateExpandedCategories/same_policy_used_in_two_categories (0.00s) 167s --- PASS: TestGenerateExpandedCategories/meta_is_overridden_by_enabled_key (0.00s) 167s --- PASS: TestGenerateExpandedCategories/multiple_top_categories (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_empty_default_policy_class (0.00s) 167s --- PASS: TestGenerateExpandedCategories/basic (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_meta (0.00s) 167s --- PASS: TestGenerateExpandedCategories/default_policy_class_is_capitalized (0.00s) 167s --- PASS: TestGenerateExpandedCategories/no_defaults (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_display_name (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_explain_text (0.00s) 167s --- PASS: TestGenerateExpandedCategories/different_element_type (0.00s) 167s --- PASS: TestGenerateExpandedCategories/error_on_missing_release (0.00s) 167s --- PASS: TestGenerateExpandedCategories/no_meta_disabled (0.00s) 167s --- PASS: TestGenerateExpandedCategories/no_meta_at_all (0.01s) 167s --- PASS: TestGenerateExpandedCategories/no_note (0.00s) 167s --- PASS: TestGenerateExpandedCategories/requires_ubuntu_pro (0.00s) 167s === CONT TestExpandedCategoriesToADMX/choices 167s === CONT TestExpandedCategoriesToADMX/array_of_integers 167s === CONT TestExpandedCategoriesToADMX/decimal_with_max_only 167s === CONT TestExpandedCategoriesToADMX/decimal_with_min_only 167s === CONT TestExpandedCategoriesToADMX/long_decimal 167s === CONT TestExpandedCategoriesToADMX/decimal_with_range 167s === CONT TestExpandedCategoriesToADMX/decimal 167s === CONT TestExpandedCategoriesToADMX/boolean 167s === CONT TestExpandedCategoriesToADMX/basic_key 167s === CONT TestExpandedCategoriesToADMX/other_distro 167s === CONT TestExpandedCategoriesToADMX/nested_categories 167s === CONT TestExpandedCategoriesToADMX/simple 167s === CONT TestExpandedCategoriesToADMX/no_meta_at_all 167s === CONT TestExpandedCategoriesToADMX/multiple_releases_with_all_widgets_and_different_defaults 167s === CONT TestExpandedCategoriesToADMX/multiple_releases_with_different_widgettype 167s === CONT TestExpandedCategoriesToADMX/array_of_strings 167s === CONT TestExpandedCategoriesToADMX/multiple_categories 167s === CONT TestExpandedCategoriesToADMX/error_on_destination_creation 167s === CONT TestExpandedCategoriesToADMX/multiple_releases_with_different_ranges 167s === CONT TestExpandedCategoriesToADMX/double 167s === CONT TestExpandedCategoriesToADMX/no_meta_disabled 167s === CONT TestExpandedCategoriesToADMX/choices_with_default 167s === CONT TestExpandedCategoriesToADMX/no_meta_enabled 167s === CONT TestExpandedCategoriesToADMX/multiple_releases_with_different_choices 167s === CONT TestExpandedCategoriesToADMX/multiple_releases_for_one_key 167s === CONT TestExpandedCategoriesToMD/multiple_releases_for_one_key 167s === CONT TestExpandedCategoriesToMD/boolean 167s === CONT TestExpandedCategoriesToMD/nested_categories,_classes_and_empty 167s === CONT TestExpandedCategoriesToMD/simple 167s === CONT TestExpandedCategoriesToMD/multiple_releases_with_different_widgettype 167s === CONT TestExpandedCategoriesToMD/double_with_range 167s === CONT TestExpandedCategoriesToMD/double 167s === CONT TestExpandedCategoriesToMD/choices 167s --- PASS: TestExpandedCategoriesToADMX (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/double_with_range (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/array_of_integers (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/decimal_with_max_only (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/decimal_with_min_only (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/long_decimal (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/decimal_with_range (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/choices (0.01s) 167s --- PASS: TestExpandedCategoriesToADMX/boolean (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/basic_key (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/decimal (0.01s) 167s --- PASS: TestExpandedCategoriesToADMX/other_distro (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/simple (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/no_meta_at_all (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/multiple_releases_with_all_widgets_and_different_defaults (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/multiple_releases_with_different_widgettype (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/nested_categories (0.01s) 167s --- PASS: TestExpandedCategoriesToADMX/multiple_categories (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/array_of_strings (0.01s) 167s --- PASS: TestExpandedCategoriesToADMX/error_on_destination_creation (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/multiple_releases_with_different_ranges (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/double (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/choices_with_default (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/no_meta_enabled (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/multiple_releases_with_different_choices (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/multiple_releases_for_one_key (0.00s) 167s --- PASS: TestExpandedCategoriesToADMX/no_meta_disabled (0.01s) 167s === CONT TestExpandedCategoriesToMD/array_of_integers 167s === CONT TestExpandedCategoriesToMD/decimal_with_max_only 167s === CONT TestExpandedCategoriesToMD/decimal_with_range 167s === CONT TestExpandedCategoriesToMD/multiple_categories 167s === CONT TestExpandedCategoriesToMD/no_meta_enabled 167s === CONT TestExpandedCategoriesToMD/multiple_releases_with_all_widgets_and_different_defaults 167s === CONT TestExpandedCategoriesToMD/multiple_releases_with_different_choices 167s === CONT TestExpandedCategoriesToMD/long_decimal 167s === CONT TestExpandedCategoriesToMD/choices_with_default 167s === CONT TestExpandedCategoriesToMD/decimal_with_min_only 167s === CONT TestExpandedCategoriesToMD/no_meta_at_all 167s === CONT TestExpandedCategoriesToMD/no_meta_disabled 167s === CONT TestExpandedCategoriesToMD/multiple_releases_with_different_ranges 167s === CONT TestExpandedCategoriesToMD/user_policy 167s === CONT TestExpandedCategoriesToMD/decimal 167s === CONT TestExpandedCategoriesToMD/nested_categories 167s === CONT TestExpandedCategoriesToMD/error_on_destination_creation 167s === CONT TestExpandedCategoriesToMD/basic_key 167s === CONT TestExpandedCategoriesToMD/array_of_strings 167s --- PASS: TestExpandedCategoriesToMD (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/multiple_releases_for_one_key (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/boolean (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/simple (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/multiple_releases_with_different_widgettype (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/double_with_range (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/double (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/choices (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/array_of_integers (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/decimal_with_max_only (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/decimal_with_range (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/multiple_categories (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/no_meta_enabled (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/multiple_releases_with_all_widgets_and_different_defaults (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/multiple_releases_with_different_choices (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/long_decimal (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/choices_with_default (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/decimal_with_min_only (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/nested_categories,_classes_and_empty (0.01s) 167s --- PASS: TestExpandedCategoriesToMD/no_meta_disabled (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/multiple_releases_with_different_ranges (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/user_policy (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/decimal (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/nested_categories (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/error_on_destination_creation (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/basic_key (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/array_of_strings (0.00s) 167s --- PASS: TestExpandedCategoriesToMD/no_meta_at_all (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad/admxgen 0.113s 167s ? github.com/ubuntu/adsys/internal/ad/admxgen/common [no test files] 167s === RUN TestGenerate 167s === PAUSE TestGenerate 167s === CONT TestGenerate 167s === RUN TestGenerate/Double_key_with_range 167s === PAUSE TestGenerate/Double_key_with_range 167s === RUN TestGenerate/Override_takes_first_session 167s === PAUSE TestGenerate/Override_takes_first_session 167s === RUN TestGenerate/Malformed_XML_declaration_is_successfully_parsed 167s === PAUSE TestGenerate/Malformed_XML_declaration_is_successfully_parsed 167s === RUN TestGenerate/Unsupported_key_type 167s === PAUSE TestGenerate/Unsupported_key_type 167s === RUN TestGenerate/Invalid_min 167s === PAUSE TestGenerate/Invalid_min 167s === RUN TestGenerate/One_text_key 167s === PAUSE TestGenerate/One_text_key 167s === RUN TestGenerate/One_decimal_key_with_max_only 167s === PAUSE TestGenerate/One_decimal_key_with_max_only 167s === RUN TestGenerate/Long_decimal_key_with_range_min_gt_0 167s === PAUSE TestGenerate/Long_decimal_key_with_range_min_gt_0 167s === RUN TestGenerate/Override_with_no_matching_session_defaults_to_root_override 167s === PAUSE TestGenerate/Override_with_no_matching_session_defaults_to_root_override 167s === RUN TestGenerate/Description_containing_deprecated_without_starting_by_it_is_not_ignored 167s === PAUSE TestGenerate/Description_containing_deprecated_without_starting_by_it_is_not_ignored 167s === RUN TestGenerate/Invalid_schema_files 167s === PAUSE TestGenerate/Invalid_schema_files 167s === RUN TestGenerate/Relocatable_key 167s === PAUSE TestGenerate/Relocatable_key 167s === RUN TestGenerate/One_decimal_key 167s === PAUSE TestGenerate/One_decimal_key 167s === RUN TestGenerate/Enum_does_not_exist 167s === PAUSE TestGenerate/Enum_does_not_exist 167s === RUN TestGenerate/One_boolean_key 167s === PAUSE TestGenerate/One_boolean_key 167s === RUN TestGenerate/Long_decimal_key 167s === PAUSE TestGenerate/Long_decimal_key 167s === RUN TestGenerate/Array_of_integers 167s === PAUSE TestGenerate/Array_of_integers 167s === RUN TestGenerate/Double_key 167s === PAUSE TestGenerate/Double_key 167s === RUN TestGenerate/Override_default_to_second_if_first_not_present 167s === PAUSE TestGenerate/Override_default_to_second_if_first_not_present 167s === RUN TestGenerate/Override_without_session_takes_default 167s === PAUSE TestGenerate/Override_without_session_takes_default 167s === RUN TestGenerate/Relocatable_key_overridden 167s === PAUSE TestGenerate/Relocatable_key_overridden 167s === RUN TestGenerate/Empty 167s === PAUSE TestGenerate/Empty 167s === RUN TestGenerate/One_decimal_key_with_min_only 167s === PAUSE TestGenerate/One_decimal_key_with_min_only 167s === RUN TestGenerate/Overridden_by_multiple_files,_last_wins 167s === PAUSE TestGenerate/Overridden_by_multiple_files,_last_wins 167s === RUN TestGenerate/Enums_in_other_files_are_converted_to_choices 167s === PAUSE TestGenerate/Enums_in_other_files_are_converted_to_choices 167s === RUN TestGenerate/No_key_on_system 167s === PAUSE TestGenerate/No_key_on_system 167s === RUN TestGenerate/Invalid_override_files_are_skipped 167s === PAUSE TestGenerate/Invalid_override_files_are_skipped 167s === RUN TestGenerate/Missing_XML_declaration_is_successfully_parsed 167s === PAUSE TestGenerate/Missing_XML_declaration_is_successfully_parsed 167s === RUN TestGenerate/NaN_min 167s === PAUSE TestGenerate/NaN_min 167s === RUN TestGenerate/Description_starting_with_deprecated_is_ignored 167s === PAUSE TestGenerate/Description_starting_with_deprecated_is_ignored 167s === RUN TestGenerate/Invalid_class 167s === PAUSE TestGenerate/Invalid_class 167s === RUN TestGenerate/One_decimal_key_with_range 167s === PAUSE TestGenerate/One_decimal_key_with_range 167s === RUN TestGenerate/Long_decimal_key_with_range_min_lt_0 167s === PAUSE TestGenerate/Long_decimal_key_with_range_min_lt_0 167s === RUN TestGenerate/Override_without_session 167s === PAUSE TestGenerate/Override_without_session 167s === RUN TestGenerate/Valid_class_should_be_capitalized 167s === PAUSE TestGenerate/Valid_class_should_be_capitalized 167s === RUN TestGenerate/Description_starting_with_deprecated_mixed_case_is_ignored 167s === PAUSE TestGenerate/Description_starting_with_deprecated_mixed_case_is_ignored 167s === RUN TestGenerate/Array_of_strings 167s === PAUSE TestGenerate/Array_of_strings 167s === RUN TestGenerate/Override_with_session_takes_session_override 167s === PAUSE TestGenerate/Override_with_session_takes_session_override 167s === RUN TestGenerate/Choices_are_loaded 167s === PAUSE TestGenerate/Choices_are_loaded 167s === RUN TestGenerate/Inlined_Enums_are_converted_to_choices 167s === PAUSE TestGenerate/Inlined_Enums_are_converted_to_choices 167s === RUN TestGenerate/Description_starting_with_obsolete_is_ignored 167s === PAUSE TestGenerate/Description_starting_with_obsolete_is_ignored 167s === RUN TestGenerate/Key_with_class 167s === PAUSE TestGenerate/Key_with_class 167s === RUN TestGenerate/Same_key_relocated_twice 167s === PAUSE TestGenerate/Same_key_relocated_twice 167s === CONT TestGenerate/Double_key_with_range 167s === CONT TestGenerate/One_decimal_key_with_min_only 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Same_key_relocated_twice 167s dconf_test.go:106: Serializing object for golden file 167s === NAME TestGenerate/Double_key_with_range 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Empty 167s === CONT TestGenerate/Relocatable_key_overridden 167s dconf_test.go:106: Serializing object for golden file 167s === NAME TestGenerate/Empty 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Override_without_session_takes_default 167s === CONT TestGenerate/Override_default_to_second_if_first_not_present 167s === NAME TestGenerate/Override_without_session_takes_default 167s dconf_test.go:106: Serializing object for golden file 167s === NAME TestGenerate/Override_default_to_second_if_first_not_present 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Array_of_integers 167s === CONT TestGenerate/Double_key 167s === NAME TestGenerate/Array_of_integers 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Long_decimal_key 167s === NAME TestGenerate/Double_key 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/One_boolean_key 167s === NAME TestGenerate/Long_decimal_key 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Enum_does_not_exist 167s === CONT TestGenerate/One_decimal_key 167s === NAME TestGenerate/One_boolean_key 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Relocatable_key 167s === NAME TestGenerate/One_decimal_key 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Invalid_schema_files 167s === NAME TestGenerate/Relocatable_key 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Override_with_no_matching_session_defaults_to_root_override 167s === CONT TestGenerate/Description_containing_deprecated_without_starting_by_it_is_not_ignored 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Long_decimal_key_with_range_min_gt_0 167s === NAME TestGenerate/Override_with_no_matching_session_defaults_to_root_override 167s dconf_test.go:106: Serializing object for golden file 167s === NAME TestGenerate/Long_decimal_key_with_range_min_gt_0 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/One_decimal_key_with_max_only 167s === CONT TestGenerate/One_text_key 167s === NAME TestGenerate/One_decimal_key_with_max_only 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Invalid_min 167s === NAME TestGenerate/One_text_key 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Unsupported_key_type 167s === CONT TestGenerate/Malformed_XML_declaration_is_successfully_parsed 167s === CONT TestGenerate/Override_takes_first_session 167s dconf_test.go:106: Serializing object for golden file 167s === NAME TestGenerate/Malformed_XML_declaration_is_successfully_parsed 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Long_decimal_key_with_range_min_lt_0 167s === CONT TestGenerate/Key_with_class 167s === NAME TestGenerate/Long_decimal_key_with_range_min_lt_0 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Description_starting_with_obsolete_is_ignored 167s === NAME TestGenerate/Key_with_class 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Inlined_Enums_are_converted_to_choices 167s time="2025-10-18T16:22:53Z" level=warning msg="dconf key \"com.ubuntu.with.deprecated\":\"/com/ubuntu/with-deprecated/obsolete\" is deprecated. Ignoring" 167s === NAME TestGenerate/Description_starting_with_obsolete_is_ignored 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Choices_are_loaded 167s === NAME TestGenerate/Inlined_Enums_are_converted_to_choices 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Override_with_session_takes_session_override 167s === NAME TestGenerate/Choices_are_loaded 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Array_of_strings 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Description_starting_with_deprecated_mixed_case_is_ignored 167s time="2025-10-18T16:22:53Z" level=warning msg="dconf key \"com.ubuntu.with.deprecated\":\"/com/ubuntu/with-deprecated/deprecated-different-cases\" is deprecated. Ignoring" 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Valid_class_should_be_capitalized 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Override_without_session 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Missing_XML_declaration_is_successfully_parsed 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/One_decimal_key_with_range 167s === NAME TestGenerate/Override_with_session_takes_session_override 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Invalid_class 167s === CONT TestGenerate/Description_starting_with_deprecated_is_ignored 167s time="2025-10-18T16:22:53Z" level=warning msg="dconf key \"com.ubuntu.with.deprecated\":\"/com/ubuntu/with-deprecated/deprecated\" is deprecated. Ignoring" 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/NaN_min 167s === CONT TestGenerate/No_key_on_system 167s time="2025-10-18T16:22:53Z" level=warning msg="dconf entry \"/com/ubuntu/simple/non-existent\" is not available on this machine" 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Invalid_override_files_are_skipped 167s time="2025-10-18T16:22:53Z" level=warning msg="testdata/TestGenerate/system/broken_override/usr/share/glib-2.0/schemas/broken.gschema.override is an invalid override file: unclosed section: [com.ubuntu.simple.overridden\n" 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Enums_in_other_files_are_converted_to_choices 167s dconf_test.go:106: Serializing object for golden file 167s === CONT TestGenerate/Overridden_by_multiple_files,_last_wins 167s dconf_test.go:106: Serializing object for golden file 167s === NAME TestGenerate/One_decimal_key_with_range 167s dconf_test.go:106: Serializing object for golden file 167s --- PASS: TestGenerate (0.00s) 167s --- PASS: TestGenerate/One_decimal_key_with_min_only (0.00s) 167s --- PASS: TestGenerate/Same_key_relocated_twice (0.00s) 167s --- PASS: TestGenerate/Double_key_with_range (0.00s) 167s --- PASS: TestGenerate/Empty (0.00s) 167s --- PASS: TestGenerate/Relocatable_key_overridden (0.00s) 167s --- PASS: TestGenerate/Override_without_session_takes_default (0.00s) 167s --- PASS: TestGenerate/Override_default_to_second_if_first_not_present (0.00s) 167s --- PASS: TestGenerate/Array_of_integers (0.00s) 167s --- PASS: TestGenerate/Double_key (0.00s) 167s --- PASS: TestGenerate/Long_decimal_key (0.00s) 167s --- PASS: TestGenerate/Enum_does_not_exist (0.00s) 167s --- PASS: TestGenerate/One_boolean_key (0.00s) 167s --- PASS: TestGenerate/One_decimal_key (0.00s) 167s --- PASS: TestGenerate/Invalid_schema_files (0.00s) 167s --- PASS: TestGenerate/Relocatable_key (0.00s) 167s --- PASS: TestGenerate/Description_containing_deprecated_without_starting_by_it_is_not_ignored (0.00s) 167s --- PASS: TestGenerate/Override_with_no_matching_session_defaults_to_root_override (0.00s) 167s --- PASS: TestGenerate/Long_decimal_key_with_range_min_gt_0 (0.00s) 167s --- PASS: TestGenerate/One_decimal_key_with_max_only (0.00s) 167s --- PASS: TestGenerate/One_text_key (0.00s) 167s --- PASS: TestGenerate/Invalid_min (0.00s) 167s --- PASS: TestGenerate/Unsupported_key_type (0.00s) 167s --- PASS: TestGenerate/Malformed_XML_declaration_is_successfully_parsed (0.00s) 167s --- PASS: TestGenerate/Override_takes_first_session (0.00s) 167s --- PASS: TestGenerate/Long_decimal_key_with_range_min_lt_0 (0.00s) 167s --- PASS: TestGenerate/Key_with_class (0.00s) 167s --- PASS: TestGenerate/Description_starting_with_obsolete_is_ignored (0.00s) 167s --- PASS: TestGenerate/Inlined_Enums_are_converted_to_choices (0.00s) 167s --- PASS: TestGenerate/Choices_are_loaded (0.00s) 167s --- PASS: TestGenerate/Array_of_strings (0.00s) 167s --- PASS: TestGenerate/Description_starting_with_deprecated_mixed_case_is_ignored (0.00s) 167s --- PASS: TestGenerate/Valid_class_should_be_capitalized (0.00s) 167s --- PASS: TestGenerate/Override_without_session (0.00s) 167s --- PASS: TestGenerate/Missing_XML_declaration_is_successfully_parsed (0.00s) 167s --- PASS: TestGenerate/Override_with_session_takes_session_override (0.00s) 167s --- PASS: TestGenerate/Invalid_class (0.00s) 167s --- PASS: TestGenerate/Description_starting_with_deprecated_is_ignored (0.00s) 167s --- PASS: TestGenerate/NaN_min (0.00s) 167s --- PASS: TestGenerate/No_key_on_system (0.00s) 167s --- PASS: TestGenerate/Invalid_override_files_are_skipped (0.00s) 167s --- PASS: TestGenerate/Enums_in_other_files_are_converted_to_choices (0.00s) 167s --- PASS: TestGenerate/One_decimal_key_with_range (0.01s) 167s --- PASS: TestGenerate/Overridden_by_multiple_files,_last_wins (0.01s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad/admxgen/dconf 0.045s 167s ? github.com/ubuntu/adsys/internal/ad/backends [no test files] 167s ? github.com/ubuntu/adsys/internal/ad/backends/mock [no test files] 167s === RUN TestSSSD 167s === PAUSE TestSSSD 167s === CONT TestSSSD 167s === RUN TestSSSD/Ad_server_defined_in_config_has_priority_over_active_server 167s === PAUSE TestSSSD/Ad_server_defined_in_config_has_priority_over_active_server 167s === RUN TestSSSD/Ad_server_defined_in_config_does_not_need_active_server 167s === PAUSE TestSSSD/Ad_server_defined_in_config_does_not_need_active_server 167s === RUN TestSSSD/Ad_server_starting_with_ldap_prefix_does_not_stutter 167s === PAUSE TestSSSD/Ad_server_starting_with_ldap_prefix_does_not_stutter 167s === RUN TestSSSD/Can_handle_special_DNS_domain_characters 167s === PAUSE TestSSSD/Can_handle_special_DNS_domain_characters 167s === RUN TestSSSD/Error_returned_by_ServerFQDN()_on_no_config_nor_active_server_provided 167s === PAUSE TestSSSD/Error_returned_by_ServerFQDN()_on_no_config_nor_active_server_provided 167s === RUN TestSSSD/Error_returned_by_IsOnline()__when_calls_is_erroring_out 167s === PAUSE TestSSSD/Error_returned_by_IsOnline()__when_calls_is_erroring_out 167s === RUN TestSSSD/Error_on_sssd_conf_does_not_exists 167s === PAUSE TestSSSD/Error_on_sssd_conf_does_not_exists 167s === RUN TestSSSD/SSSd_domain_can_not_match_ad_domain 167s === PAUSE TestSSSD/SSSd_domain_can_not_match_ad_domain 167s === RUN TestSSSD/Default_domain_suffix_is_read 167s === PAUSE TestSSSD/Default_domain_suffix_is_read 167s === RUN TestSSSD/Error_on_no_domains_field 167s === PAUSE TestSSSD/Error_on_no_domains_field 167s === RUN TestSSSD/Error_on_empty_domains_field 167s === PAUSE TestSSSD/Error_on_empty_domains_field 167s === RUN TestSSSD/Error_on_no_sssd_section 167s === PAUSE TestSSSD/Error_on_no_sssd_section 167s === RUN TestSSSD/Error_on_sssd_domain_empty_section 167s === PAUSE TestSSSD/Error_on_sssd_domain_empty_section 167s === RUN TestSSSD/Regular_config 167s === PAUSE TestSSSD/Regular_config 167s === RUN TestSSSD/Regular_config,_with_cache_dir 167s === PAUSE TestSSSD/Regular_config,_with_cache_dir 167s === RUN TestSSSD/ServerFQDN()_does_not_fail_when_we_do_not_need_an_active_server 167s === PAUSE TestSSSD/ServerFQDN()_does_not_fail_when_we_do_not_need_an_active_server 167s === RUN TestSSSD/Is_not_online 167s === PAUSE TestSSSD/Is_not_online 167s === RUN TestSSSD/Use_domain_from_section_if_no_ad_domain 167s === PAUSE TestSSSD/Use_domain_from_section_if_no_ad_domain 167s === RUN TestSSSD/Ignore_upper_cases_in_domain_name 167s === PAUSE TestSSSD/Ignore_upper_cases_in_domain_name 167s === RUN TestSSSD/No_sssd_conf_loads_the_default 167s === PAUSE TestSSSD/No_sssd_conf_loads_the_default 167s === RUN TestSSSD/Error_returned_by_ServerFQDN()_when_calls_is_erroring_out 167s === PAUSE TestSSSD/Error_returned_by_ServerFQDN()_when_calls_is_erroring_out 167s === RUN TestSSSD/Error_returned_by_ServerFQDN()_and_IsOnline()_when_DBUS_has_no_object 167s === PAUSE TestSSSD/Error_returned_by_ServerFQDN()_and_IsOnline()_when_DBUS_has_no_object 167s === RUN TestSSSD/Error_on_sssd_domain_section_missing 167s === PAUSE TestSSSD/Error_on_sssd_domain_section_missing 167s === RUN TestSSSD/Multiple_domains,_pick_first 167s === PAUSE TestSSSD/Multiple_domains,_pick_first 167s === CONT TestSSSD/Ad_server_defined_in_config_has_priority_over_active_server 167s === CONT TestSSSD/Error_on_sssd_domain_empty_section 167s === CONT TestSSSD/Multiple_domains,_pick_first 167s === CONT TestSSSD/Error_on_sssd_domain_section_missing 167s === CONT TestSSSD/Error_returned_by_ServerFQDN()_and_IsOnline()_when_DBUS_has_no_object 167s === CONT TestSSSD/Error_returned_by_ServerFQDN()_when_calls_is_erroring_out 167s === CONT TestSSSD/No_sssd_conf_loads_the_default 167s === CONT TestSSSD/Ignore_upper_cases_in_domain_name 167s === CONT TestSSSD/Use_domain_from_section_if_no_ad_domain 167s === CONT TestSSSD/Is_not_online 167s === CONT TestSSSD/ServerFQDN()_does_not_fail_when_we_do_not_need_an_active_server 167s === CONT TestSSSD/Regular_config,_with_cache_dir 167s === CONT TestSSSD/Regular_config 167s === CONT TestSSSD/Error_on_sssd_conf_does_not_exists 167s === CONT TestSSSD/Error_on_no_sssd_section 167s === CONT TestSSSD/Error_on_empty_domains_field 167s === CONT TestSSSD/Error_on_no_domains_field 167s === CONT TestSSSD/Default_domain_suffix_is_read 167s === CONT TestSSSD/SSSd_domain_can_not_match_ad_domain 167s === CONT TestSSSD/Can_handle_special_DNS_domain_characters 167s === CONT TestSSSD/Error_returned_by_IsOnline()__when_calls_is_erroring_out 167s === CONT TestSSSD/Error_returned_by_ServerFQDN()_on_no_config_nor_active_server_provided 167s === CONT TestSSSD/Ad_server_starting_with_ldap_prefix_does_not_stutter 167s === CONT TestSSSD/Ad_server_defined_in_config_does_not_need_active_server 167s --- PASS: TestSSSD (0.00s) 167s --- PASS: TestSSSD/Error_on_sssd_domain_empty_section (0.00s) 167s --- PASS: TestSSSD/Ad_server_defined_in_config_has_priority_over_active_server (0.00s) 167s --- PASS: TestSSSD/Error_on_sssd_domain_section_missing (0.00s) 167s --- PASS: TestSSSD/Multiple_domains,_pick_first (0.00s) 167s --- PASS: TestSSSD/Error_returned_by_ServerFQDN()_when_calls_is_erroring_out (0.00s) 167s --- PASS: TestSSSD/No_sssd_conf_loads_the_default (0.00s) 167s --- PASS: TestSSSD/Error_returned_by_ServerFQDN()_and_IsOnline()_when_DBUS_has_no_object (0.00s) 167s --- PASS: TestSSSD/Ignore_upper_cases_in_domain_name (0.00s) 167s --- PASS: TestSSSD/Is_not_online (0.00s) 167s --- PASS: TestSSSD/ServerFQDN()_does_not_fail_when_we_do_not_need_an_active_server (0.00s) 167s --- PASS: TestSSSD/Use_domain_from_section_if_no_ad_domain (0.00s) 167s --- PASS: TestSSSD/Regular_config,_with_cache_dir (0.00s) 167s --- PASS: TestSSSD/Error_on_sssd_conf_does_not_exists (0.00s) 167s --- PASS: TestSSSD/Error_on_no_sssd_section (0.00s) 167s --- PASS: TestSSSD/Error_on_empty_domains_field (0.00s) 167s --- PASS: TestSSSD/Error_on_no_domains_field (0.00s) 167s --- PASS: TestSSSD/Regular_config (0.00s) 167s --- PASS: TestSSSD/Default_domain_suffix_is_read (0.00s) 167s --- PASS: TestSSSD/Can_handle_special_DNS_domain_characters (0.00s) 167s --- PASS: TestSSSD/SSSd_domain_can_not_match_ad_domain (0.00s) 167s --- PASS: TestSSSD/Error_returned_by_IsOnline()__when_calls_is_erroring_out (0.00s) 167s --- PASS: TestSSSD/Error_returned_by_ServerFQDN()_on_no_config_nor_active_server_provided (0.00s) 167s --- PASS: TestSSSD/Ad_server_starting_with_ldap_prefix_does_not_stutter (0.00s) 167s --- PASS: TestSSSD/Ad_server_defined_in_config_does_not_need_active_server (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad/backends/sss 0.019s 167s === RUN TestWinbind 167s winbind_test.go:25: Running subprocess with [/tmp/go-build1987938368/b619/winbind.test -test.testlogfile=/tmp/go-build1987938368/b619/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true -test.run=TestWinbind] 167s === RUN TestWinbind 167s === RUN TestWinbind/Lookup_is_successful 167s === RUN TestWinbind/Lookup_with_different_hostname_is_successful 167s === RUN TestWinbind/Lookup_with_overridden_ad_domain 167s === RUN TestWinbind/Lookup_with_overridden_ad_server_with_LDAP_prefix 167s === RUN TestWinbind/Error_when_looking_up_DC_name 167s === RUN TestWinbind/Error_when_getting_online_status 167s === RUN TestWinbind/Lookup_with_overridden_ad_server 167s === RUN TestWinbind/Error_when_looking_up_domain 167s === RUN TestWinbind/Error_when_domain_is_offline 167s === RUN TestWinbind/Error_when_requesting_krb5cc 167s --- PASS: TestWinbind (0.06s) 167s --- PASS: TestWinbind/Lookup_is_successful (0.01s) 167s --- PASS: TestWinbind/Lookup_with_different_hostname_is_successful (0.00s) 167s --- PASS: TestWinbind/Lookup_with_overridden_ad_domain (0.00s) 167s --- PASS: TestWinbind/Lookup_with_overridden_ad_server_with_LDAP_prefix (0.00s) 167s --- PASS: TestWinbind/Error_when_looking_up_DC_name (0.00s) 167s --- PASS: TestWinbind/Error_when_getting_online_status (0.01s) 167s --- PASS: TestWinbind/Lookup_with_overridden_ad_server (0.01s) 167s --- PASS: TestWinbind/Error_when_looking_up_domain (0.00s) 167s --- PASS: TestWinbind/Error_when_domain_is_offline (0.01s) 167s --- PASS: TestWinbind/Error_when_requesting_krb5cc (0.01s) 167s PASS 167s --- PASS: TestWinbind (0.13s) 167s === RUN TestExecuteKinitCommand 167s --- PASS: TestExecuteKinitCommand (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad/backends/winbind 0.141s 167s === RUN TestGetVersionID 167s === PAUSE TestGetVersionID 167s === CONT TestGetVersionID 167s === RUN TestGetVersionID/Read_VERSION_ID 167s === PAUSE TestGetVersionID/Read_VERSION_ID 167s === RUN TestGetVersionID/No_VERSION_ID_in_file 167s === PAUSE TestGetVersionID/No_VERSION_ID_in_file 167s === RUN TestGetVersionID/No_os-release_file 167s === PAUSE TestGetVersionID/No_os-release_file 167s === CONT TestGetVersionID/Read_VERSION_ID 167s === CONT TestGetVersionID/No_os-release_file 167s === CONT TestGetVersionID/No_VERSION_ID_in_file 167s --- PASS: TestGetVersionID (0.00s) 167s --- PASS: TestGetVersionID/Read_VERSION_ID (0.00s) 167s --- PASS: TestGetVersionID/No_os-release_file (0.00s) 167s --- PASS: TestGetVersionID/No_VERSION_ID_in_file (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad/common 0.003s 167s === RUN TestReadPolicy 167s === PAUSE TestReadPolicy 167s === RUN TestDecodePolicy 167s === PAUSE TestDecodePolicy 167s === CONT TestReadPolicy 167s === CONT TestDecodePolicy 167s === RUN TestDecodePolicy/empty_file 167s === PAUSE TestDecodePolicy/empty_file 167s === RUN TestDecodePolicy/empty_key 167s === PAUSE TestDecodePolicy/empty_key 167s === RUN TestDecodePolicy/container_strategy_is_reflected_on_child 167s === PAUSE TestDecodePolicy/container_strategy_is_reflected_on_child 167s === RUN TestDecodePolicy/container_with_meta_elements_and_default_without_value_on_options 167s === PAUSE TestDecodePolicy/container_with_meta_elements_and_default_without_value_on_options 167s === RUN TestDecodePolicy/one_container_with_2_children_don’t_mix_their_default_values 167s === PAUSE TestDecodePolicy/one_container_with_2_children_don’t_mix_their_default_values 167s === RUN TestDecodePolicy/two_containers_don’t_mix_their_default_values_even_when_second_has_none 167s === PAUSE TestDecodePolicy/two_containers_don’t_mix_their_default_values_even_when_second_has_none 167s === RUN TestDecodePolicy/one_container_with_2_children_don’t_mix_their_meta_values 167s === PAUSE TestDecodePolicy/one_container_with_2_children_don’t_mix_their_meta_values 167s === RUN TestDecodePolicy/basic_type,_enabled 167s === PAUSE TestDecodePolicy/basic_type,_enabled 167s === RUN TestDecodePolicy/container_with_default_elements_are_ignored_on_non_empty_option_values 167s === PAUSE TestDecodePolicy/container_with_default_elements_are_ignored_on_non_empty_option_values 167s === RUN TestDecodePolicy/container_with_missing_default_element_for_option_values_have_empty_strings 167s === PAUSE TestDecodePolicy/container_with_missing_default_element_for_option_values_have_empty_strings 167s === RUN TestDecodePolicy/disabled_container_with_values_needs_a_DISABLED_marker 167s === PAUSE TestDecodePolicy/disabled_container_with_values_needs_a_DISABLED_marker 167s === RUN TestDecodePolicy/disabled_container_with_values_still_keep_meta_and_strategy_with_a_DISABLED_marker 167s === PAUSE TestDecodePolicy/disabled_container_with_values_still_keep_meta_and_strategy_with_a_DISABLED_marker 167s === RUN TestDecodePolicy/two_containers_don’t_mix_their_meta_values,_even_if_second_has_none 167s === PAUSE TestDecodePolicy/two_containers_don’t_mix_their_meta_values,_even_if_second_has_none 167s === RUN TestDecodePolicy/semicolon_in_data 167s === PAUSE TestDecodePolicy/semicolon_in_data 167s === RUN TestDecodePolicy/invalid_decimal_value 167s === PAUSE TestDecodePolicy/invalid_decimal_value 167s === RUN TestDecodePolicy/invalid_header,_header_doesnt_match 167s === PAUSE TestDecodePolicy/invalid_header,_header_doesnt_match 167s === RUN TestDecodePolicy/value_is_not_utf16 167s === PAUSE TestDecodePolicy/value_is_not_utf16 167s === RUN TestDecodePolicy/basic_type,_disabled 167s === PAUSE TestDecodePolicy/basic_type,_disabled 167s === RUN TestDecodePolicy/container_without_metavalues 167s === PAUSE TestDecodePolicy/container_without_metavalues 167s === RUN TestDecodePolicy/two_containers_don’t_mix_their_default_values_when_redefined 167s === PAUSE TestDecodePolicy/two_containers_don’t_mix_their_default_values_when_redefined 167s === RUN TestDecodePolicy/invalid_header,_file_truncated 167s === PAUSE TestDecodePolicy/invalid_header,_file_truncated 167s === RUN TestDecodePolicy/invalid_container_default_values 167s === PAUSE TestDecodePolicy/invalid_container_default_values 167s === RUN TestDecodePolicy/section_not_closed 167s === PAUSE TestDecodePolicy/section_not_closed 167s === RUN TestDecodePolicy/missing_field 167s === PAUSE TestDecodePolicy/missing_field 167s === RUN TestDecodePolicy/key_is_not_utf16 167s === PAUSE TestDecodePolicy/key_is_not_utf16 167s === RUN TestDecodePolicy/one_element,_multitext_value 167s === PAUSE TestDecodePolicy/one_element,_multitext_value 167s === RUN TestDecodePolicy/basic_type_with_a_DISABLED_marker_keeps_meta_and_strategy 167s === PAUSE TestDecodePolicy/basic_type_with_a_DISABLED_marker_keeps_meta_and_strategy 167s === RUN TestDecodePolicy/disabled_container_with_disabled_option_values 167s === PAUSE TestDecodePolicy/disabled_container_with_disabled_option_values 167s === RUN TestDecodePolicy/header_only 167s === PAUSE TestDecodePolicy/header_only 167s === RUN TestDecodePolicy/container_with_default_elements_override_empty_option_values 167s === PAUSE TestDecodePolicy/container_with_default_elements_override_empty_option_values 167s === RUN TestDecodePolicy/policy_container_is_ignored_for_meta_of_wrong_type 167s === PAUSE TestDecodePolicy/policy_container_is_ignored_for_meta_of_wrong_type 167s === RUN TestDecodePolicy/null_character_in_data 167s === PAUSE TestDecodePolicy/null_character_in_data 167s === RUN TestDecodePolicy/basic_type_is_ignored_for_meta_of_wrong_type 167s === PAUSE TestDecodePolicy/basic_type_is_ignored_for_meta_of_wrong_type 167s === RUN TestDecodePolicy/invalid_header,_header_too_short 167s === PAUSE TestDecodePolicy/invalid_header,_header_too_short 167s === RUN TestDecodePolicy/no_header 167s === PAUSE TestDecodePolicy/no_header 167s === RUN TestDecodePolicy/one_element,_decimal_value 167s === PAUSE TestDecodePolicy/one_element,_decimal_value 167s === RUN TestDecodePolicy/two_elements 167s === PAUSE TestDecodePolicy/two_elements 167s === RUN TestDecodePolicy/basic_type_with_default_value_has_value_filed_in 167s === PAUSE TestDecodePolicy/basic_type_with_default_value_has_value_filed_in 167s === RUN TestDecodePolicy/container_with_default_elements_are_ignored_on_int_option_values_(always_have_values) 167s === PAUSE TestDecodePolicy/container_with_default_elements_are_ignored_on_int_option_values_(always_have_values) 167s === RUN TestDecodePolicy/container_with_meta_elements_and_value_on_options 167s === PAUSE TestDecodePolicy/container_with_meta_elements_and_value_on_options 167s === RUN TestDecodePolicy/one_element,_disabled 167s === PAUSE TestDecodePolicy/one_element,_disabled 167s === RUN TestDecodePolicy/section_separators_in_data 167s === PAUSE TestDecodePolicy/section_separators_in_data 167s === RUN TestDecodePolicy/empty_data 167s === PAUSE TestDecodePolicy/empty_data 167s === RUN TestDecodePolicy/empty_value 167s === PAUSE TestDecodePolicy/empty_value 167s === RUN TestDecodePolicy/exotic_return_type 167s === PAUSE TestDecodePolicy/exotic_return_type 167s === RUN TestDecodePolicy/one_element,_string_value 167s === PAUSE TestDecodePolicy/one_element,_string_value 167s === RUN TestDecodePolicy/basic_type_with_default_value_needs_a_DISABLED_marker 167s === PAUSE TestDecodePolicy/basic_type_with_default_value_needs_a_DISABLED_marker 167s === RUN TestDecodePolicy/basic_type_with_strategy 167s === PAUSE TestDecodePolicy/basic_type_with_strategy 167s === RUN TestDecodePolicy/disabled_container_disables_its_option_values 167s === PAUSE TestDecodePolicy/disabled_container_disables_its_option_values 167s === RUN TestReadPolicy/header_only 167s === CONT TestDecodePolicy/empty_file 167s === PAUSE TestReadPolicy/header_only 167s === RUN TestReadPolicy/invalid_header,_header_doesnt_match 167s === PAUSE TestReadPolicy/invalid_header,_header_doesnt_match 167s === RUN TestReadPolicy/invalid_header,_header_too_short 167s === PAUSE TestReadPolicy/invalid_header,_header_too_short 167s === RUN TestReadPolicy/value_is_not_utf16 167s === CONT TestDecodePolicy/disabled_container_disables_its_option_values 167s === PAUSE TestReadPolicy/value_is_not_utf16 167s === RUN TestReadPolicy/semicolon_in_data 167s === PAUSE TestReadPolicy/semicolon_in_data 167s === RUN TestReadPolicy/invalid_header,_file_truncated 167s === PAUSE TestReadPolicy/invalid_header,_file_truncated 167s === RUN TestReadPolicy/missing_field 167s === PAUSE TestReadPolicy/missing_field 167s === RUN TestReadPolicy/key_is_not_utf16 167s === PAUSE TestReadPolicy/key_is_not_utf16 167s === RUN TestReadPolicy/empty_key 167s === PAUSE TestReadPolicy/empty_key 167s === RUN TestReadPolicy/two_elements 167s === PAUSE TestReadPolicy/two_elements 167s === RUN TestReadPolicy/empty_value 167s === PAUSE TestReadPolicy/empty_value 167s === RUN TestReadPolicy/no_header 167s === PAUSE TestReadPolicy/no_header 167s === RUN TestReadPolicy/one_element,_string_value 167s === PAUSE TestReadPolicy/one_element,_string_value 167s === RUN TestReadPolicy/one_element,_decimal_value 167s === PAUSE TestReadPolicy/one_element,_decimal_value 167s === RUN TestReadPolicy/section_separators_in_data 167s === PAUSE TestReadPolicy/section_separators_in_data 167s === RUN TestReadPolicy/empty_file 167s === PAUSE TestReadPolicy/empty_file 167s === RUN TestReadPolicy/section_not_closed 167s === PAUSE TestReadPolicy/section_not_closed 167s === RUN TestReadPolicy/memory_on_multiple_elements_dont_overlap 167s === PAUSE TestReadPolicy/memory_on_multiple_elements_dont_overlap 167s === RUN TestReadPolicy/exotic_return_type 167s === PAUSE TestReadPolicy/exotic_return_type 167s === RUN TestReadPolicy/very_large_gpo 167s === PAUSE TestReadPolicy/very_large_gpo 167s === CONT TestReadPolicy/header_only 167s === CONT TestReadPolicy/very_large_gpo 167s === CONT TestReadPolicy/exotic_return_type 167s === CONT TestReadPolicy/memory_on_multiple_elements_dont_overlap 167s === CONT TestReadPolicy/section_not_closed 167s === CONT TestReadPolicy/empty_file 167s === CONT TestReadPolicy/section_separators_in_data 167s === CONT TestReadPolicy/one_element,_decimal_value 167s === CONT TestReadPolicy/one_element,_string_value 167s === CONT TestReadPolicy/no_header 167s === CONT TestReadPolicy/empty_value 167s === CONT TestReadPolicy/two_elements 167s === CONT TestReadPolicy/empty_key 167s === CONT TestReadPolicy/key_is_not_utf16 167s === CONT TestReadPolicy/missing_field 167s === CONT TestReadPolicy/invalid_header,_file_truncated 167s === CONT TestReadPolicy/semicolon_in_data 167s === CONT TestReadPolicy/value_is_not_utf16 167s === CONT TestReadPolicy/invalid_header,_header_too_short 167s === CONT TestReadPolicy/invalid_header,_header_doesnt_match 167s === CONT TestDecodePolicy/key_is_not_utf16 167s === CONT TestDecodePolicy/basic_type_with_strategy 167s === CONT TestDecodePolicy/basic_type_with_default_value_needs_a_DISABLED_marker 167s === CONT TestDecodePolicy/one_element,_string_value 167s === CONT TestDecodePolicy/exotic_return_type 167s === CONT TestDecodePolicy/empty_value 167s === CONT TestDecodePolicy/empty_data 167s === CONT TestDecodePolicy/section_separators_in_data 167s === CONT TestDecodePolicy/one_element,_disabled 167s === CONT TestDecodePolicy/container_with_meta_elements_and_value_on_options 167s === CONT TestDecodePolicy/container_with_default_elements_are_ignored_on_int_option_values_(always_have_values) 167s === CONT TestDecodePolicy/basic_type_with_default_value_has_value_filed_in 167s === CONT TestDecodePolicy/two_elements 167s === CONT TestDecodePolicy/one_element,_decimal_value 167s === CONT TestDecodePolicy/no_header 167s === CONT TestDecodePolicy/invalid_header,_header_too_short 167s === CONT TestDecodePolicy/basic_type_is_ignored_for_meta_of_wrong_type 167s === CONT TestDecodePolicy/null_character_in_data 167s === CONT TestDecodePolicy/policy_container_is_ignored_for_meta_of_wrong_type 167s === CONT TestDecodePolicy/container_with_default_elements_override_empty_option_values 167s === CONT TestDecodePolicy/header_only 167s === CONT TestDecodePolicy/disabled_container_with_disabled_option_values 167s === CONT TestDecodePolicy/basic_type_with_a_DISABLED_marker_keeps_meta_and_strategy 167s === CONT TestDecodePolicy/one_element,_multitext_value 167s === CONT TestDecodePolicy/two_containers_don’t_mix_their_meta_values,_even_if_second_has_none 167s === CONT TestDecodePolicy/missing_field 167s === CONT TestDecodePolicy/section_not_closed 167s === CONT TestDecodePolicy/invalid_container_default_values 167s === CONT TestDecodePolicy/invalid_header,_file_truncated 167s === CONT TestDecodePolicy/two_containers_don’t_mix_their_default_values_when_redefined 167s === CONT TestDecodePolicy/container_without_metavalues 167s === CONT TestDecodePolicy/basic_type,_disabled 167s === CONT TestDecodePolicy/value_is_not_utf16 167s === CONT TestDecodePolicy/invalid_header,_header_doesnt_match 167s === CONT TestDecodePolicy/invalid_decimal_value 167s === CONT TestDecodePolicy/semicolon_in_data 167s === CONT TestDecodePolicy/one_container_with_2_children_don’t_mix_their_meta_values 167s === CONT TestDecodePolicy/disabled_container_with_values_still_keep_meta_and_strategy_with_a_DISABLED_marker 167s === CONT TestDecodePolicy/disabled_container_with_values_needs_a_DISABLED_marker 167s --- PASS: TestReadPolicy (0.00s) 167s --- PASS: TestReadPolicy/header_only (0.00s) 167s --- PASS: TestReadPolicy/exotic_return_type (0.00s) 167s --- PASS: TestReadPolicy/memory_on_multiple_elements_dont_overlap (0.00s) 167s --- PASS: TestReadPolicy/section_not_closed (0.00s) 167s --- PASS: TestReadPolicy/empty_file (0.00s) 167s --- PASS: TestReadPolicy/section_separators_in_data (0.00s) 167s --- PASS: TestReadPolicy/one_element,_decimal_value (0.00s) 167s --- PASS: TestReadPolicy/one_element,_string_value (0.00s) 167s --- PASS: TestReadPolicy/no_header (0.00s) 167s --- PASS: TestReadPolicy/empty_value (0.00s) 167s --- PASS: TestReadPolicy/two_elements (0.00s) 167s --- PASS: TestReadPolicy/empty_key (0.00s) 167s --- PASS: TestReadPolicy/key_is_not_utf16 (0.00s) 167s --- PASS: TestReadPolicy/missing_field (0.00s) 167s --- PASS: TestReadPolicy/invalid_header,_file_truncated (0.00s) 167s --- PASS: TestReadPolicy/semicolon_in_data (0.00s) 167s --- PASS: TestReadPolicy/value_is_not_utf16 (0.00s) 167s --- PASS: TestReadPolicy/invalid_header,_header_too_short (0.00s) 167s --- PASS: TestReadPolicy/invalid_header,_header_doesnt_match (0.00s) 167s --- PASS: TestReadPolicy/very_large_gpo (0.02s) 167s === CONT TestDecodePolicy/container_with_default_elements_are_ignored_on_non_empty_option_values 167s === CONT TestDecodePolicy/basic_type,_enabled 167s === CONT TestDecodePolicy/container_with_missing_default_element_for_option_values_have_empty_strings 167s === CONT TestDecodePolicy/container_with_meta_elements_and_default_without_value_on_options 167s === CONT TestDecodePolicy/two_containers_don’t_mix_their_default_values_even_when_second_has_none 167s === CONT TestDecodePolicy/one_container_with_2_children_don’t_mix_their_default_values 167s === CONT TestDecodePolicy/container_strategy_is_reflected_on_child 167s === CONT TestDecodePolicy/empty_key 167s --- PASS: TestDecodePolicy (0.00s) 167s --- PASS: TestDecodePolicy/empty_file (0.00s) 167s --- PASS: TestDecodePolicy/disabled_container_disables_its_option_values (0.00s) 167s --- PASS: TestDecodePolicy/key_is_not_utf16 (0.00s) 167s --- PASS: TestDecodePolicy/basic_type_with_strategy (0.00s) 167s --- PASS: TestDecodePolicy/basic_type_with_default_value_needs_a_DISABLED_marker (0.00s) 167s --- PASS: TestDecodePolicy/one_element,_string_value (0.00s) 167s --- PASS: TestDecodePolicy/exotic_return_type (0.00s) 167s --- PASS: TestDecodePolicy/empty_value (0.00s) 167s --- PASS: TestDecodePolicy/empty_data (0.00s) 167s --- PASS: TestDecodePolicy/section_separators_in_data (0.00s) 167s --- PASS: TestDecodePolicy/one_element,_disabled (0.00s) 167s --- PASS: TestDecodePolicy/container_with_meta_elements_and_value_on_options (0.00s) 167s --- PASS: TestDecodePolicy/container_with_default_elements_are_ignored_on_int_option_values_(always_have_values) (0.00s) 167s --- PASS: TestDecodePolicy/basic_type_with_default_value_has_value_filed_in (0.00s) 167s --- PASS: TestDecodePolicy/two_elements (0.00s) 167s --- PASS: TestDecodePolicy/one_element,_decimal_value (0.00s) 167s --- PASS: TestDecodePolicy/no_header (0.00s) 167s --- PASS: TestDecodePolicy/invalid_header,_header_too_short (0.00s) 167s --- PASS: TestDecodePolicy/basic_type_is_ignored_for_meta_of_wrong_type (0.00s) 167s --- PASS: TestDecodePolicy/null_character_in_data (0.00s) 167s --- PASS: TestDecodePolicy/policy_container_is_ignored_for_meta_of_wrong_type (0.00s) 167s --- PASS: TestDecodePolicy/container_with_default_elements_override_empty_option_values (0.00s) 167s --- PASS: TestDecodePolicy/header_only (0.00s) 167s --- PASS: TestDecodePolicy/disabled_container_with_disabled_option_values (0.00s) 167s --- PASS: TestDecodePolicy/basic_type_with_a_DISABLED_marker_keeps_meta_and_strategy (0.00s) 167s --- PASS: TestDecodePolicy/one_element,_multitext_value (0.00s) 167s --- PASS: TestDecodePolicy/two_containers_don’t_mix_their_meta_values,_even_if_second_has_none (0.00s) 167s --- PASS: TestDecodePolicy/missing_field (0.00s) 167s --- PASS: TestDecodePolicy/section_not_closed (0.00s) 167s --- PASS: TestDecodePolicy/invalid_container_default_values (0.00s) 167s --- PASS: TestDecodePolicy/invalid_header,_file_truncated (0.00s) 167s --- PASS: TestDecodePolicy/two_containers_don’t_mix_their_default_values_when_redefined (0.00s) 167s --- PASS: TestDecodePolicy/container_without_metavalues (0.00s) 167s --- PASS: TestDecodePolicy/basic_type,_disabled (0.00s) 167s --- PASS: TestDecodePolicy/value_is_not_utf16 (0.00s) 167s --- PASS: TestDecodePolicy/invalid_header,_header_doesnt_match (0.00s) 167s --- PASS: TestDecodePolicy/invalid_decimal_value (0.00s) 167s --- PASS: TestDecodePolicy/semicolon_in_data (0.00s) 167s --- PASS: TestDecodePolicy/one_container_with_2_children_don’t_mix_their_meta_values (0.00s) 167s --- PASS: TestDecodePolicy/disabled_container_with_values_still_keep_meta_and_strategy_with_a_DISABLED_marker (0.00s) 167s --- PASS: TestDecodePolicy/disabled_container_with_values_needs_a_DISABLED_marker (0.00s) 167s --- PASS: TestDecodePolicy/container_with_default_elements_are_ignored_on_non_empty_option_values (0.00s) 167s --- PASS: TestDecodePolicy/container_with_missing_default_element_for_option_values_have_empty_strings (0.00s) 167s --- PASS: TestDecodePolicy/basic_type,_enabled (0.00s) 167s --- PASS: TestDecodePolicy/container_with_meta_elements_and_default_without_value_on_options (0.00s) 167s --- PASS: TestDecodePolicy/one_container_with_2_children_don’t_mix_their_default_values (0.00s) 167s --- PASS: TestDecodePolicy/two_containers_don’t_mix_their_default_values_even_when_second_has_none (0.00s) 167s --- PASS: TestDecodePolicy/empty_key (0.00s) 167s --- PASS: TestDecodePolicy/container_strategy_is_reflected_on_child (0.00s) 167s === RUN FuzzDecodePolicy 167s === RUN FuzzDecodePolicy/seed#0 167s === RUN FuzzDecodePolicy/seed#1 167s === RUN FuzzDecodePolicy/seed#2 167s === RUN FuzzDecodePolicy/seed#3 167s === RUN FuzzDecodePolicy/seed#4 167s === RUN FuzzDecodePolicy/seed#5 167s === RUN FuzzDecodePolicy/seed#6 167s === RUN FuzzDecodePolicy/seed#7 167s === RUN FuzzDecodePolicy/seed#8 167s === RUN FuzzDecodePolicy/seed#9 167s === RUN FuzzDecodePolicy/seed#10 167s === RUN FuzzDecodePolicy/seed#11 167s === RUN FuzzDecodePolicy/seed#12 167s === RUN FuzzDecodePolicy/seed#13 167s === RUN FuzzDecodePolicy/seed#14 167s === RUN FuzzDecodePolicy/seed#15 167s === RUN FuzzDecodePolicy/seed#16 167s === RUN FuzzDecodePolicy/seed#17 167s === RUN FuzzDecodePolicy/seed#18 167s === RUN FuzzDecodePolicy/seed#19 167s === RUN FuzzDecodePolicy/seed#20 167s === RUN FuzzDecodePolicy/seed#21 167s === RUN FuzzDecodePolicy/seed#22 167s === RUN FuzzDecodePolicy/seed#23 167s === RUN FuzzDecodePolicy/seed#24 167s === RUN FuzzDecodePolicy/seed#25 167s === RUN FuzzDecodePolicy/seed#26 167s === RUN FuzzDecodePolicy/seed#27 167s === RUN FuzzDecodePolicy/seed#28 167s === RUN FuzzDecodePolicy/seed#29 167s === RUN FuzzDecodePolicy/seed#30 167s === RUN FuzzDecodePolicy/seed#31 167s === RUN FuzzDecodePolicy/seed#32 167s === RUN FuzzDecodePolicy/seed#33 167s === RUN FuzzDecodePolicy/seed#34 167s === RUN FuzzDecodePolicy/seed#35 167s === RUN FuzzDecodePolicy/seed#36 167s === RUN FuzzDecodePolicy/seed#37 167s === RUN FuzzDecodePolicy/seed#38 167s === RUN FuzzDecodePolicy/seed#39 167s === RUN FuzzDecodePolicy/seed#40 167s === RUN FuzzDecodePolicy/seed#41 167s === RUN FuzzDecodePolicy/seed#42 167s === RUN FuzzDecodePolicy/seed#43 167s === RUN FuzzDecodePolicy/seed#44 167s === RUN FuzzDecodePolicy/seed#45 167s === RUN FuzzDecodePolicy/seed#46 167s === RUN FuzzDecodePolicy/seed#47 167s === RUN FuzzDecodePolicy/seed#48 167s === RUN FuzzDecodePolicy/seed#49 167s === RUN FuzzDecodePolicy/seed#50 167s === RUN FuzzDecodePolicy/seed#51 167s === RUN FuzzDecodePolicy/seed#52 167s === RUN FuzzDecodePolicy/seed#53 167s === RUN FuzzDecodePolicy/0062cd090fe349d2 167s === RUN FuzzDecodePolicy/04b7526092323e1c 167s === RUN FuzzDecodePolicy/0defa8b97933a28f 167s === RUN FuzzDecodePolicy/133d1110defea029 167s === RUN FuzzDecodePolicy/1417961320cddc32 167s === RUN FuzzDecodePolicy/18ca9a9ddd9b04c5 167s === RUN FuzzDecodePolicy/1b6cf53b6668b5b8 167s === RUN FuzzDecodePolicy/1b723f18e7bbd2bd 167s === RUN FuzzDecodePolicy/1fa4e44bc7eaab2b 167s === RUN FuzzDecodePolicy/20bb28e943f3a163 167s === RUN FuzzDecodePolicy/20f9df382d135424 167s === RUN FuzzDecodePolicy/21a02646df37f4a3 167s === RUN FuzzDecodePolicy/222e7dcc7ccf2b94 167s === RUN FuzzDecodePolicy/263b842aaa06d620 167s === RUN FuzzDecodePolicy/28ee70a86ff08ae5 167s === RUN FuzzDecodePolicy/298aa48ef602f955 167s === RUN FuzzDecodePolicy/2cb06d9f4d5ffe78 167s === RUN FuzzDecodePolicy/2e90d7e4f1973efd 167s === RUN FuzzDecodePolicy/2f2f939e0f0a5dfa 167s === RUN FuzzDecodePolicy/2f559466be2bb6db 167s === RUN FuzzDecodePolicy/3183a1d080909e99 167s === RUN FuzzDecodePolicy/31b9c4efbfccaa4b 167s === RUN FuzzDecodePolicy/33661e4c5fce45df 167s === RUN FuzzDecodePolicy/33c1677cf59487f5 167s === RUN FuzzDecodePolicy/3a49e3a9b34e7ca0 167s === RUN FuzzDecodePolicy/3f5a8494482ab97f 167s === RUN FuzzDecodePolicy/40a5045c4171f005 167s === RUN FuzzDecodePolicy/44e971d5bd7f28b3 167s === RUN FuzzDecodePolicy/44ef800113434b04 167s === RUN FuzzDecodePolicy/471661e7b661c53d 167s === RUN FuzzDecodePolicy/476ca3647151c006 167s === RUN FuzzDecodePolicy/4843648786c70b38 167s === RUN FuzzDecodePolicy/48ca8b9fbeccc5a8 167s === RUN FuzzDecodePolicy/4a75b70e3bbd2aee 167s === RUN FuzzDecodePolicy/4ab54fbe4f748f85 167s === RUN FuzzDecodePolicy/4b03a60474b90bbd 167s === RUN FuzzDecodePolicy/4cf871ee411324fb 167s === RUN FuzzDecodePolicy/4f1d38c1e12aef6a 167s === RUN FuzzDecodePolicy/5044e53350040819 167s === RUN FuzzDecodePolicy/504944f54851313c 167s === RUN FuzzDecodePolicy/582528ddfad69eb5 167s === RUN FuzzDecodePolicy/593a3ee315061853 167s === RUN FuzzDecodePolicy/59d23806a24221a5 167s === RUN FuzzDecodePolicy/5a29ff4d9005ba8b 167s === RUN FuzzDecodePolicy/5f0ada98ca1ad1a9 167s === RUN FuzzDecodePolicy/62a8dced0efc9d72 167s === RUN FuzzDecodePolicy/68c1564da597fea0 167s === RUN FuzzDecodePolicy/69603dec84f1482b 167s === RUN FuzzDecodePolicy/6960c361007d8825 167s === RUN FuzzDecodePolicy/699e9d8d0197487d 167s === RUN FuzzDecodePolicy/6ccb1b379873af9f 167s === RUN FuzzDecodePolicy/6d1b1e240f60f6c9 167s === RUN FuzzDecodePolicy/6d3215f003388cf1 167s === RUN FuzzDecodePolicy/6d817b46e0caad15 167s === RUN FuzzDecodePolicy/6dc2686e428754f3 167s === RUN FuzzDecodePolicy/6ddc8b3bed7c0e39 167s === RUN FuzzDecodePolicy/6e0990202f9b9d55 167s === RUN FuzzDecodePolicy/6e1da4d6ea90bc7a 167s === RUN FuzzDecodePolicy/6f0e2fcef25f63cf 167s === RUN FuzzDecodePolicy/72cca4222533d089 167s === RUN FuzzDecodePolicy/731d3b5bde9cc690 167s === RUN FuzzDecodePolicy/7361de35bf70bf17 167s === RUN FuzzDecodePolicy/749f16c9bc3cc87e 167s === RUN FuzzDecodePolicy/74ac7250a3338978 167s === RUN FuzzDecodePolicy/758383ad78d1ddd4 167s === RUN FuzzDecodePolicy/76f1ccb3afa04e6e 167s === RUN FuzzDecodePolicy/795ceb881d4221e3 167s === RUN FuzzDecodePolicy/7b60c5de747214b6 167s === RUN FuzzDecodePolicy/7bc7f7ba36ff22f5 167s === RUN FuzzDecodePolicy/7f3faed21426db2f 167s === RUN FuzzDecodePolicy/82a803231677d0f5 167s === RUN FuzzDecodePolicy/837bc22f260799fd 167s === RUN FuzzDecodePolicy/85315bd4891f6c1e 167s === RUN FuzzDecodePolicy/867b5ab9e5d21aea 167s === RUN FuzzDecodePolicy/888de5c9e80ce3b0 167s === RUN FuzzDecodePolicy/8a61b9487446d726 167s === RUN FuzzDecodePolicy/8b0f0dee6f9a48fd 167s === RUN FuzzDecodePolicy/8e8f4e91b7c5bfd0 167s === RUN FuzzDecodePolicy/8f19b0f96affeba8 167s === RUN FuzzDecodePolicy/9334c46469323973 167s === RUN FuzzDecodePolicy/9604c69b88bc6151 167s === RUN FuzzDecodePolicy/963211680af6bd1a 167s === RUN FuzzDecodePolicy/972db90b4d6a1d5b 167s === RUN FuzzDecodePolicy/985ec3cbf457896a 167s === RUN FuzzDecodePolicy/997536fa86bbbc34 167s === RUN FuzzDecodePolicy/9acd70418e457d18 167s === RUN FuzzDecodePolicy/9b0a4105f1089a20 167s === RUN FuzzDecodePolicy/9d8cdc0719c46928 167s === RUN FuzzDecodePolicy/9e6f333572766a4b 167s === RUN FuzzDecodePolicy/9e943f761adfbbd0 167s === RUN FuzzDecodePolicy/a1698d53f5c4d82d 167s === RUN FuzzDecodePolicy/a1841a4689867471 167s === RUN FuzzDecodePolicy/a26ca284000eeff9 167s === RUN FuzzDecodePolicy/a552164bb872fda4 167s === RUN FuzzDecodePolicy/a9c5e443bf44c80d 167s === RUN FuzzDecodePolicy/ac277569a745611f 167s === RUN FuzzDecodePolicy/ac53c3dce7a4706d 167s === RUN FuzzDecodePolicy/ada28ad70c7345f1 167s === RUN FuzzDecodePolicy/adb9a13c291b7e8c 167s === RUN FuzzDecodePolicy/aeb9d5c55731dae0 167s === RUN FuzzDecodePolicy/af71c7d394bbf535 167s === RUN FuzzDecodePolicy/b0ecd34477c6628e 167s === RUN FuzzDecodePolicy/b1585b9aa01c16b3 167s === RUN FuzzDecodePolicy/b6264d058ed4028a 167s === RUN FuzzDecodePolicy/b6790bea1e752c32 167s === RUN FuzzDecodePolicy/b741e8aa6c8179ba 167s === RUN FuzzDecodePolicy/b9032509681e867b 167s === RUN FuzzDecodePolicy/bb684f658455e982 167s === RUN FuzzDecodePolicy/bc6ddfc82e38438b 167s === RUN FuzzDecodePolicy/bf4f46d3858edb39 167s === RUN FuzzDecodePolicy/bfdd1bd65b5f5c04 167s === RUN FuzzDecodePolicy/c01841582b4cdc2f 167s === RUN FuzzDecodePolicy/c340eca55c3c30e3 167s === RUN FuzzDecodePolicy/c39235a2f77e92fd 167s === RUN FuzzDecodePolicy/c4d9def3916de265 167s === RUN FuzzDecodePolicy/c610d176a1726c39 167s === RUN FuzzDecodePolicy/ca683af05a78b772 167s === RUN FuzzDecodePolicy/cac340cbf4f81f48 167s === RUN FuzzDecodePolicy/ccdaead0f44dc069 167s === RUN FuzzDecodePolicy/ce8467c12ac1478e 167s === RUN FuzzDecodePolicy/cebcbd67b0b51d54 167s === RUN FuzzDecodePolicy/cf318b520a8e55be 167s === RUN FuzzDecodePolicy/cf592b0a6a725d1c 167s === RUN FuzzDecodePolicy/d0b8dc40737b3ff0 167s === RUN FuzzDecodePolicy/d2969c8e25b51895 167s === RUN FuzzDecodePolicy/d4e956bdff66867a 167s === RUN FuzzDecodePolicy/d5b932675c6ca808 167s === RUN FuzzDecodePolicy/dac7bf5435c51dea 167s === RUN FuzzDecodePolicy/dddc8d06ef526aba 167s === RUN FuzzDecodePolicy/e3065cb3ac7c0f78 167s === RUN FuzzDecodePolicy/e4242a66193c4579 167s === RUN FuzzDecodePolicy/e4a4780eb4ee185b 167s === RUN FuzzDecodePolicy/e5b22ed07e48d3fb 167s === RUN FuzzDecodePolicy/e7e4a84593481e49 167s === RUN FuzzDecodePolicy/e8030826b4125cbb 167s === RUN FuzzDecodePolicy/e923261af5ebad81 167s === RUN FuzzDecodePolicy/ea426f6b8bedc4d6 167s === RUN FuzzDecodePolicy/ead723bc16638dcb 167s === RUN FuzzDecodePolicy/f131b8f78f028a54 167s === RUN FuzzDecodePolicy/f1c1d58ecbe0d6dd 167s === RUN FuzzDecodePolicy/f3313a9f40c82a87 167s === RUN FuzzDecodePolicy/f4f490e788a76488 167s === RUN FuzzDecodePolicy/fa7acaf11cff6812 167s === RUN FuzzDecodePolicy/fb991a0182b5fe4d 167s === RUN FuzzDecodePolicy/fc0deb922246d3b7 167s === RUN FuzzDecodePolicy/fccd118f10988218 167s === RUN FuzzDecodePolicy/fe9d2018570dc6c6 167s === RUN FuzzDecodePolicy/ffd2d2b4544a818d 167s === RUN FuzzDecodePolicy/ffd60d90486b3974 167s === RUN FuzzDecodePolicy/regression-test-input-333 167s --- PASS: FuzzDecodePolicy (0.32s) 167s --- PASS: FuzzDecodePolicy/seed#0 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#1 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#2 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#3 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#4 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#5 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#6 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#7 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#8 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#9 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#10 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#11 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#12 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#13 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#14 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#15 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#16 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#17 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#18 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#19 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#20 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#21 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#22 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#23 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#24 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#25 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#26 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#27 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#28 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#29 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#30 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#31 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#32 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#33 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#34 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#35 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#36 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#37 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#38 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#39 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#40 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#41 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#42 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#43 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#44 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#45 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#46 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#47 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#48 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#49 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#50 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#51 (0.00s) 167s --- PASS: FuzzDecodePolicy/seed#52 (0.01s) 167s --- PASS: FuzzDecodePolicy/seed#53 (0.00s) 167s --- PASS: FuzzDecodePolicy/0062cd090fe349d2 (0.00s) 167s --- PASS: FuzzDecodePolicy/04b7526092323e1c (0.00s) 167s --- PASS: FuzzDecodePolicy/0defa8b97933a28f (0.00s) 167s --- PASS: FuzzDecodePolicy/133d1110defea029 (0.00s) 167s --- PASS: FuzzDecodePolicy/1417961320cddc32 (0.00s) 167s --- PASS: FuzzDecodePolicy/18ca9a9ddd9b04c5 (0.00s) 167s --- PASS: FuzzDecodePolicy/1b6cf53b6668b5b8 (0.00s) 167s --- PASS: FuzzDecodePolicy/1b723f18e7bbd2bd (0.00s) 167s --- PASS: FuzzDecodePolicy/1fa4e44bc7eaab2b (0.00s) 167s --- PASS: FuzzDecodePolicy/20bb28e943f3a163 (0.00s) 167s --- PASS: FuzzDecodePolicy/20f9df382d135424 (0.00s) 167s --- PASS: FuzzDecodePolicy/21a02646df37f4a3 (0.00s) 167s --- PASS: FuzzDecodePolicy/222e7dcc7ccf2b94 (0.00s) 167s --- PASS: FuzzDecodePolicy/263b842aaa06d620 (0.00s) 167s --- PASS: FuzzDecodePolicy/28ee70a86ff08ae5 (0.00s) 167s --- PASS: FuzzDecodePolicy/298aa48ef602f955 (0.00s) 167s --- PASS: FuzzDecodePolicy/2cb06d9f4d5ffe78 (0.01s) 167s --- PASS: FuzzDecodePolicy/2e90d7e4f1973efd (0.00s) 167s --- PASS: FuzzDecodePolicy/2f2f939e0f0a5dfa (0.00s) 167s --- PASS: FuzzDecodePolicy/2f559466be2bb6db (0.00s) 167s --- PASS: FuzzDecodePolicy/3183a1d080909e99 (0.00s) 167s --- PASS: FuzzDecodePolicy/31b9c4efbfccaa4b (0.00s) 167s --- PASS: FuzzDecodePolicy/33661e4c5fce45df (0.00s) 167s --- PASS: FuzzDecodePolicy/33c1677cf59487f5 (0.00s) 167s --- PASS: FuzzDecodePolicy/3a49e3a9b34e7ca0 (0.00s) 167s --- PASS: FuzzDecodePolicy/3f5a8494482ab97f (0.00s) 167s --- PASS: FuzzDecodePolicy/40a5045c4171f005 (0.00s) 167s --- PASS: FuzzDecodePolicy/44e971d5bd7f28b3 (0.00s) 167s --- PASS: FuzzDecodePolicy/44ef800113434b04 (0.03s) 167s --- PASS: FuzzDecodePolicy/471661e7b661c53d (0.00s) 167s --- PASS: FuzzDecodePolicy/476ca3647151c006 (0.00s) 167s --- PASS: FuzzDecodePolicy/4843648786c70b38 (0.00s) 167s --- PASS: FuzzDecodePolicy/48ca8b9fbeccc5a8 (0.00s) 167s --- PASS: FuzzDecodePolicy/4a75b70e3bbd2aee (0.00s) 167s --- PASS: FuzzDecodePolicy/4ab54fbe4f748f85 (0.00s) 167s --- PASS: FuzzDecodePolicy/4b03a60474b90bbd (0.00s) 167s --- PASS: FuzzDecodePolicy/4cf871ee411324fb (0.00s) 167s --- PASS: FuzzDecodePolicy/4f1d38c1e12aef6a (0.00s) 167s --- PASS: FuzzDecodePolicy/5044e53350040819 (0.00s) 167s --- PASS: FuzzDecodePolicy/504944f54851313c (0.00s) 167s --- PASS: FuzzDecodePolicy/582528ddfad69eb5 (0.00s) 167s --- PASS: FuzzDecodePolicy/593a3ee315061853 (0.00s) 167s --- PASS: FuzzDecodePolicy/59d23806a24221a5 (0.00s) 167s --- PASS: FuzzDecodePolicy/5a29ff4d9005ba8b (0.00s) 167s --- PASS: FuzzDecodePolicy/5f0ada98ca1ad1a9 (0.00s) 167s --- PASS: FuzzDecodePolicy/62a8dced0efc9d72 (0.01s) 167s --- PASS: FuzzDecodePolicy/68c1564da597fea0 (0.00s) 167s --- PASS: FuzzDecodePolicy/69603dec84f1482b (0.00s) 167s --- PASS: FuzzDecodePolicy/6960c361007d8825 (0.00s) 167s --- PASS: FuzzDecodePolicy/699e9d8d0197487d (0.00s) 167s --- PASS: FuzzDecodePolicy/6ccb1b379873af9f (0.00s) 167s --- PASS: FuzzDecodePolicy/6d1b1e240f60f6c9 (0.00s) 167s --- PASS: FuzzDecodePolicy/6d3215f003388cf1 (0.00s) 167s --- PASS: FuzzDecodePolicy/6d817b46e0caad15 (0.00s) 167s --- PASS: FuzzDecodePolicy/6dc2686e428754f3 (0.00s) 167s --- PASS: FuzzDecodePolicy/6ddc8b3bed7c0e39 (0.00s) 167s --- PASS: FuzzDecodePolicy/6e0990202f9b9d55 (0.00s) 167s --- PASS: FuzzDecodePolicy/6e1da4d6ea90bc7a (0.00s) 167s --- PASS: FuzzDecodePolicy/6f0e2fcef25f63cf (0.00s) 167s --- PASS: FuzzDecodePolicy/72cca4222533d089 (0.00s) 167s --- PASS: FuzzDecodePolicy/731d3b5bde9cc690 (0.00s) 167s --- PASS: FuzzDecodePolicy/7361de35bf70bf17 (0.00s) 167s --- PASS: FuzzDecodePolicy/749f16c9bc3cc87e (0.00s) 167s --- PASS: FuzzDecodePolicy/74ac7250a3338978 (0.00s) 167s --- PASS: FuzzDecodePolicy/758383ad78d1ddd4 (0.00s) 167s --- PASS: FuzzDecodePolicy/76f1ccb3afa04e6e (0.00s) 167s --- PASS: FuzzDecodePolicy/795ceb881d4221e3 (0.00s) 167s --- PASS: FuzzDecodePolicy/7b60c5de747214b6 (0.05s) 167s --- PASS: FuzzDecodePolicy/7bc7f7ba36ff22f5 (0.00s) 167s --- PASS: FuzzDecodePolicy/7f3faed21426db2f (0.00s) 167s --- PASS: FuzzDecodePolicy/82a803231677d0f5 (0.00s) 167s --- PASS: FuzzDecodePolicy/837bc22f260799fd (0.00s) 167s --- PASS: FuzzDecodePolicy/85315bd4891f6c1e (0.00s) 167s --- PASS: FuzzDecodePolicy/867b5ab9e5d21aea (0.00s) 167s --- PASS: FuzzDecodePolicy/888de5c9e80ce3b0 (0.00s) 167s --- PASS: FuzzDecodePolicy/8a61b9487446d726 (0.00s) 167s --- PASS: FuzzDecodePolicy/8b0f0dee6f9a48fd (0.00s) 167s --- PASS: FuzzDecodePolicy/8e8f4e91b7c5bfd0 (0.00s) 167s --- PASS: FuzzDecodePolicy/8f19b0f96affeba8 (0.00s) 167s --- PASS: FuzzDecodePolicy/9334c46469323973 (0.00s) 167s --- PASS: FuzzDecodePolicy/9604c69b88bc6151 (0.00s) 167s --- PASS: FuzzDecodePolicy/963211680af6bd1a (0.00s) 167s --- PASS: FuzzDecodePolicy/972db90b4d6a1d5b (0.00s) 167s --- PASS: FuzzDecodePolicy/985ec3cbf457896a (0.00s) 167s --- PASS: FuzzDecodePolicy/997536fa86bbbc34 (0.00s) 167s --- PASS: FuzzDecodePolicy/9acd70418e457d18 (0.00s) 167s --- PASS: FuzzDecodePolicy/9b0a4105f1089a20 (0.00s) 167s --- PASS: FuzzDecodePolicy/9d8cdc0719c46928 (0.00s) 167s --- PASS: FuzzDecodePolicy/9e6f333572766a4b (0.00s) 167s --- PASS: FuzzDecodePolicy/9e943f761adfbbd0 (0.00s) 167s --- PASS: FuzzDecodePolicy/a1698d53f5c4d82d (0.00s) 167s --- PASS: FuzzDecodePolicy/a1841a4689867471 (0.00s) 167s --- PASS: FuzzDecodePolicy/a26ca284000eeff9 (0.00s) 167s --- PASS: FuzzDecodePolicy/a552164bb872fda4 (0.00s) 167s --- PASS: FuzzDecodePolicy/a9c5e443bf44c80d (0.00s) 167s --- PASS: FuzzDecodePolicy/ac277569a745611f (0.00s) 167s --- PASS: FuzzDecodePolicy/ac53c3dce7a4706d (0.00s) 167s --- PASS: FuzzDecodePolicy/ada28ad70c7345f1 (0.00s) 167s --- PASS: FuzzDecodePolicy/adb9a13c291b7e8c (0.00s) 167s --- PASS: FuzzDecodePolicy/aeb9d5c55731dae0 (0.00s) 167s --- PASS: FuzzDecodePolicy/af71c7d394bbf535 (0.00s) 167s --- PASS: FuzzDecodePolicy/b0ecd34477c6628e (0.00s) 167s --- PASS: FuzzDecodePolicy/b1585b9aa01c16b3 (0.00s) 167s --- PASS: FuzzDecodePolicy/b6264d058ed4028a (0.00s) 167s --- PASS: FuzzDecodePolicy/b6790bea1e752c32 (0.00s) 167s --- PASS: FuzzDecodePolicy/b741e8aa6c8179ba (0.00s) 167s --- PASS: FuzzDecodePolicy/b9032509681e867b (0.00s) 167s --- PASS: FuzzDecodePolicy/bb684f658455e982 (0.00s) 167s --- PASS: FuzzDecodePolicy/bc6ddfc82e38438b (0.00s) 167s --- PASS: FuzzDecodePolicy/bf4f46d3858edb39 (0.00s) 167s --- PASS: FuzzDecodePolicy/bfdd1bd65b5f5c04 (0.00s) 167s --- PASS: FuzzDecodePolicy/c01841582b4cdc2f (0.00s) 167s --- PASS: FuzzDecodePolicy/c340eca55c3c30e3 (0.00s) 167s --- PASS: FuzzDecodePolicy/c39235a2f77e92fd (0.00s) 167s --- PASS: FuzzDecodePolicy/c4d9def3916de265 (0.00s) 167s --- PASS: FuzzDecodePolicy/c610d176a1726c39 (0.00s) 167s --- PASS: FuzzDecodePolicy/ca683af05a78b772 (0.00s) 167s --- PASS: FuzzDecodePolicy/cac340cbf4f81f48 (0.00s) 167s --- PASS: FuzzDecodePolicy/ccdaead0f44dc069 (0.00s) 167s --- PASS: FuzzDecodePolicy/ce8467c12ac1478e (0.00s) 167s --- PASS: FuzzDecodePolicy/cebcbd67b0b51d54 (0.00s) 167s --- PASS: FuzzDecodePolicy/cf318b520a8e55be (0.00s) 167s --- PASS: FuzzDecodePolicy/cf592b0a6a725d1c (0.00s) 167s --- PASS: FuzzDecodePolicy/d0b8dc40737b3ff0 (0.00s) 167s --- PASS: FuzzDecodePolicy/d2969c8e25b51895 (0.00s) 167s --- PASS: FuzzDecodePolicy/d4e956bdff66867a (0.00s) 167s --- PASS: FuzzDecodePolicy/d5b932675c6ca808 (0.00s) 167s --- PASS: FuzzDecodePolicy/dac7bf5435c51dea (0.00s) 167s --- PASS: FuzzDecodePolicy/dddc8d06ef526aba (0.00s) 167s --- PASS: FuzzDecodePolicy/e3065cb3ac7c0f78 (0.00s) 167s --- PASS: FuzzDecodePolicy/e4242a66193c4579 (0.00s) 167s --- PASS: FuzzDecodePolicy/e4a4780eb4ee185b (0.00s) 167s --- PASS: FuzzDecodePolicy/e5b22ed07e48d3fb (0.00s) 167s --- PASS: FuzzDecodePolicy/e7e4a84593481e49 (0.00s) 167s --- PASS: FuzzDecodePolicy/e8030826b4125cbb (0.00s) 167s --- PASS: FuzzDecodePolicy/e923261af5ebad81 (0.00s) 167s --- PASS: FuzzDecodePolicy/ea426f6b8bedc4d6 (0.00s) 167s --- PASS: FuzzDecodePolicy/ead723bc16638dcb (0.00s) 167s --- PASS: FuzzDecodePolicy/f131b8f78f028a54 (0.00s) 167s --- PASS: FuzzDecodePolicy/f1c1d58ecbe0d6dd (0.00s) 167s --- PASS: FuzzDecodePolicy/f3313a9f40c82a87 (0.00s) 167s --- PASS: FuzzDecodePolicy/f4f490e788a76488 (0.00s) 167s --- PASS: FuzzDecodePolicy/fa7acaf11cff6812 (0.00s) 167s --- PASS: FuzzDecodePolicy/fb991a0182b5fe4d (0.00s) 167s --- PASS: FuzzDecodePolicy/fc0deb922246d3b7 (0.00s) 167s --- PASS: FuzzDecodePolicy/fccd118f10988218 (0.00s) 167s --- PASS: FuzzDecodePolicy/fe9d2018570dc6c6 (0.08s) 167s --- PASS: FuzzDecodePolicy/ffd2d2b4544a818d (0.00s) 167s --- PASS: FuzzDecodePolicy/ffd60d90486b3974 (0.00s) 167s --- PASS: FuzzDecodePolicy/regression-test-input-333 (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/ad/registry 0.352s 167s === RUN TestNew 167s === PAUSE TestNew 167s === CONT TestNew 167s === RUN TestNew/New_and_Quit_succeeds_and_defaults_to_sssd,_first_run 167s === PAUSE TestNew/New_and_Quit_succeeds_and_defaults_to_sssd,_first_run 167s === RUN TestNew/Adsys_directory_can_already_exists 167s === PAUSE TestNew/Adsys_directory_can_already_exists 167s === RUN TestNew/Select_winbind_backend_explicitly 167s === PAUSE TestNew/Select_winbind_backend_explicitly 167s === RUN TestNew/Error_on_failure_to_create_cache_directory 167s === PAUSE TestNew/Error_on_failure_to_create_cache_directory 167s === RUN TestNew/Error_on_nonexistent_sssd.conf 167s === PAUSE TestNew/Error_on_nonexistent_sssd.conf 167s === RUN TestNew/Unknown_backend_defaults_to_sssd 167s === PAUSE TestNew/Unknown_backend_defaults_to_sssd 167s === RUN TestNew/Select_sssd_backend_explicitly 167s === PAUSE TestNew/Select_sssd_backend_explicitly 167s === RUN TestNew/Error_on_failure_to_create_run_directory 167s === PAUSE TestNew/Error_on_failure_to_create_run_directory 167s === RUN TestNew/Error_on_ad.New_prevents_adsysservice_creation 167s === PAUSE TestNew/Error_on_ad.New_prevents_adsysservice_creation 167s === CONT TestNew/New_and_Quit_succeeds_and_defaults_to_sssd,_first_run 167s === CONT TestNew/Error_on_ad.New_prevents_adsysservice_creation 167s === CONT TestNew/Error_on_failure_to_create_run_directory 167s === CONT TestNew/Select_sssd_backend_explicitly 167s === CONT TestNew/Unknown_backend_defaults_to_sssd 167s time="2025-10-18T16:22:58Z" level=warning msg="Unknown configured backend \"unknown-backend\". Defaulting to sssd." 167s === CONT TestNew/Error_on_nonexistent_sssd.conf 167s === CONT TestNew/Error_on_failure_to_create_cache_directory 167s === CONT TestNew/Select_winbind_backend_explicitly 167s === CONT TestNew/Adsys_directory_can_already_exists 167s time="2025-10-18T16:22:58Z" level=warning msg="could not get online status for domain \"example.com\": status code 6" 167s --- PASS: TestNew (0.00s) 167s --- PASS: TestNew/Error_on_ad.New_prevents_adsysservice_creation (0.00s) 167s --- PASS: TestNew/Error_on_failure_to_create_run_directory (0.00s) 167s --- PASS: TestNew/New_and_Quit_succeeds_and_defaults_to_sssd,_first_run (0.00s) 167s --- PASS: TestNew/Unknown_backend_defaults_to_sssd (0.01s) 167s --- PASS: TestNew/Select_sssd_backend_explicitly (0.01s) 167s --- PASS: TestNew/Error_on_failure_to_create_cache_directory (0.01s) 167s --- PASS: TestNew/Error_on_nonexistent_sssd.conf (0.01s) 167s --- PASS: TestNew/Select_winbind_backend_explicitly (0.00s) 167s --- PASS: TestNew/Adsys_directory_can_already_exists (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/adsysservice 0.065s 167s ? github.com/ubuntu/adsys/internal/adsysservice/actions [no test files] 167s === RUN TestIsAllowed 167s === PAUSE TestIsAllowed 167s === RUN TestPeerCredsInfoAuthType 167s === PAUSE TestPeerCredsInfoAuthType 167s === RUN TestServerPeerCredsHandshake 167s === PAUSE TestServerPeerCredsHandshake 167s === RUN TestServerPeerCredsInvalidSocket 167s === PAUSE TestServerPeerCredsInvalidSocket 167s === RUN TestIsAllowedFromContext 167s === PAUSE TestIsAllowedFromContext 167s === RUN TestIsAllowedFromContextWithoutPeer 167s === PAUSE TestIsAllowedFromContextWithoutPeer 167s === RUN TestIsAllowedFromContextWithInvalidPeerCreds 167s === PAUSE TestIsAllowedFromContextWithInvalidPeerCreds 167s === RUN TestIsAllowedFromContextWithoutUserKey 167s === PAUSE TestIsAllowedFromContextWithoutUserKey 167s === CONT TestIsAllowed 167s === CONT TestIsAllowedFromContext 167s === RUN TestIsAllowedFromContext/Unauthorizes_when_user_has_invalid_uid 167s === PAUSE TestIsAllowedFromContext/Unauthorizes_when_user_has_invalid_uid 167s === RUN TestIsAllowedFromContext/Root_is_always_authorized 167s === PAUSE TestIsAllowedFromContext/Root_is_always_authorized 167s === RUN TestIsAllowed/Root_is_always_authorized 167s === PAUSE TestIsAllowed/Root_is_always_authorized 167s === RUN TestIsAllowed/Valid_process_and_ACK 167s === RUN TestIsAllowedFromContext/Valid_process_and_ACK 167s === PAUSE TestIsAllowed/Valid_process_and_ACK 167s === PAUSE TestIsAllowedFromContext/Valid_process_and_ACK 167s === RUN TestIsAllowedFromContext/Valid_process_and_NACK 167s === PAUSE TestIsAllowedFromContext/Valid_process_and_NACK 167s === RUN TestIsAllowedFromContext/Extract_current_user_action_from_request 167s === PAUSE TestIsAllowedFromContext/Extract_current_user_action_from_request 167s === RUN TestIsAllowedFromContext/Extract_other_user_action_from_request 167s === PAUSE TestIsAllowedFromContext/Extract_other_user_action_from_request 167s === RUN TestIsAllowedFromContext/Unauthorizes_when_user_lookup_returns_an_error 167s === PAUSE TestIsAllowedFromContext/Unauthorizes_when_user_lookup_returns_an_error 167s === RUN TestIsAllowed/Valid_process_and_NACK 167s === CONT TestIsAllowedFromContextWithoutUserKey 167s === PAUSE TestIsAllowed/Valid_process_and_NACK 167s === RUN TestIsAllowed/Process_doesn't_exists 167s === PAUSE TestIsAllowed/Process_doesn't_exists 167s === RUN TestIsAllowed/Invalid_process_stat_file:_)_at_the_end 167s === PAUSE TestIsAllowed/Invalid_process_stat_file:_)_at_the_end 167s === RUN TestIsAllowed/Invalid_process_stat_file:_field_isn't_an_int 167s === PAUSE TestIsAllowed/Invalid_process_stat_file:_field_isn't_an_int 167s === RUN TestIsAllowed/Polkit_dbus_call_errors_out 167s === PAUSE TestIsAllowed/Polkit_dbus_call_errors_out 167s === RUN TestIsAllowed/ActionAlwaysAllowed_is_always_allowed 167s === PAUSE TestIsAllowed/ActionAlwaysAllowed_is_always_allowed 167s === RUN TestIsAllowed/Invalid_process_stat_file:_missing_) 167s === PAUSE TestIsAllowed/Invalid_process_stat_file:_missing_) 167s === RUN TestIsAllowed/Invalid_process_stat_file:_field_isn't_present 167s === PAUSE TestIsAllowed/Invalid_process_stat_file:_field_isn't_present 167s === RUN TestIsAllowed/User_Action_for_own_user_translates_to_Self_parameter_as_ID 167s === PAUSE TestIsAllowed/User_Action_for_own_user_translates_to_Self_parameter_as_ID 167s === RUN TestIsAllowed/User_Action_on_other_user_translates_to_Other_parameter_as_ID 167s === PAUSE TestIsAllowed/User_Action_on_other_user_translates_to_Other_parameter_as_ID 167s === CONT TestIsAllowedFromContextWithInvalidPeerCreds 167s --- PASS: TestIsAllowedFromContextWithoutUserKey (0.00s) 167s === CONT TestIsAllowedFromContextWithoutPeer 167s --- PASS: TestIsAllowedFromContextWithInvalidPeerCreds (0.00s) 167s === CONT TestServerPeerCredsHandshake 167s --- PASS: TestServerPeerCredsHandshake (0.00s) 167s === CONT TestServerPeerCredsInvalidSocket 167s --- PASS: TestServerPeerCredsInvalidSocket (0.00s) 167s === CONT TestPeerCredsInfoAuthType 167s --- PASS: TestPeerCredsInfoAuthType (0.00s) 167s === CONT TestIsAllowedFromContext/Unauthorizes_when_user_has_invalid_uid 167s === CONT TestIsAllowedFromContext/Extract_current_user_action_from_request 167s === CONT TestIsAllowedFromContext/Unauthorizes_when_user_lookup_returns_an_error 167s === CONT TestIsAllowedFromContext/Extract_other_user_action_from_request 167s === CONT TestIsAllowedFromContext/Valid_process_and_ACK 167s === CONT TestIsAllowedFromContext/Valid_process_and_NACK 167s === CONT TestIsAllowedFromContext/Root_is_always_authorized 167s --- PASS: TestIsAllowedFromContext (0.00s) 167s --- PASS: TestIsAllowedFromContext/Unauthorizes_when_user_has_invalid_uid (0.00s) 167s --- PASS: TestIsAllowedFromContext/Extract_current_user_action_from_request (0.00s) 167s --- PASS: TestIsAllowedFromContext/Unauthorizes_when_user_lookup_returns_an_error (0.00s) 167s --- PASS: TestIsAllowedFromContext/Extract_other_user_action_from_request (0.00s) 167s --- PASS: TestIsAllowedFromContext/Valid_process_and_ACK (0.00s) 167s --- PASS: TestIsAllowedFromContext/Valid_process_and_NACK (0.00s) 167s --- PASS: TestIsAllowedFromContext/Root_is_always_authorized (0.00s) 167s === CONT TestIsAllowed/ActionAlwaysAllowed_is_always_allowed 167s === CONT TestIsAllowed/Root_is_always_authorized 167s === CONT TestIsAllowed/Polkit_dbus_call_errors_out 167s === CONT TestIsAllowed/Invalid_process_stat_file:_field_isn't_an_int 167s === CONT TestIsAllowed/Invalid_process_stat_file:_)_at_the_end 167s === CONT TestIsAllowed/Process_doesn't_exists 167s === CONT TestIsAllowed/Valid_process_and_NACK 167s === CONT TestIsAllowed/Valid_process_and_ACK 167s === CONT TestIsAllowed/User_Action_for_own_user_translates_to_Self_parameter_as_ID 167s === CONT TestIsAllowed/User_Action_on_other_user_translates_to_Other_parameter_as_ID 167s === CONT TestIsAllowed/Invalid_process_stat_file:_field_isn't_present 167s === CONT TestIsAllowed/Invalid_process_stat_file:_missing_) 167s --- PASS: TestIsAllowed (0.00s) 167s --- PASS: TestIsAllowed/ActionAlwaysAllowed_is_always_allowed (0.00s) 167s --- PASS: TestIsAllowed/Root_is_always_authorized (0.00s) 167s --- PASS: TestIsAllowed/Polkit_dbus_call_errors_out (0.00s) 167s --- PASS: TestIsAllowed/Invalid_process_stat_file:_field_isn't_an_int (0.00s) 167s --- PASS: TestIsAllowed/Invalid_process_stat_file:_)_at_the_end (0.00s) 167s --- PASS: TestIsAllowed/Process_doesn't_exists (0.00s) 167s --- PASS: TestIsAllowed/Valid_process_and_NACK (0.00s) 167s --- PASS: TestIsAllowed/Valid_process_and_ACK (0.00s) 167s --- PASS: TestIsAllowed/User_Action_for_own_user_translates_to_Self_parameter_as_ID (0.00s) 167s --- PASS: TestIsAllowed/User_Action_on_other_user_translates_to_Other_parameter_as_ID (0.00s) 167s --- PASS: TestIsAllowed/Invalid_process_stat_file:_field_isn't_present (0.00s) 167s --- PASS: TestIsAllowed/Invalid_process_stat_file:_missing_) (0.00s) 167s --- PASS: TestIsAllowedFromContextWithoutPeer (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/authorizer 0.012s 167s === RUN TestNoCmd 167s === PAUSE TestNoCmd 167s === RUN TestZeroOrNArgs 167s === PAUSE TestZeroOrNArgs 167s === RUN TestNoValidArgs 167s === PAUSE TestNoValidArgs 167s === RUN TestRegisterAlias 167s === PAUSE TestRegisterAlias 167s === CONT TestNoCmd 167s === CONT TestNoValidArgs 167s --- PASS: TestNoValidArgs (0.00s) 167s === CONT TestRegisterAlias 167s --- PASS: TestRegisterAlias (0.00s) 167s === CONT TestZeroOrNArgs 167s === RUN TestZeroOrNArgs/Zero_args 167s === PAUSE TestZeroOrNArgs/Zero_args 167s === RUN TestZeroOrNArgs/Exactly_N_args 167s === PAUSE TestZeroOrNArgs/Exactly_N_args 167s === RUN TestZeroOrNArgs/Error_with_less_than_N_args 167s === PAUSE TestZeroOrNArgs/Error_with_less_than_N_args 167s === RUN TestZeroOrNArgs/Error_with_more_than_N_args 167s === PAUSE TestZeroOrNArgs/Error_with_more_than_N_args 167s === CONT TestZeroOrNArgs/Zero_args 167s === CONT TestZeroOrNArgs/Error_with_more_than_N_args 167s === CONT TestZeroOrNArgs/Error_with_less_than_N_args 167s === CONT TestZeroOrNArgs/Exactly_N_args 167s --- PASS: TestZeroOrNArgs (0.00s) 167s --- PASS: TestZeroOrNArgs/Zero_args (0.00s) 167s --- PASS: TestZeroOrNArgs/Error_with_more_than_N_args (0.00s) 167s --- PASS: TestZeroOrNArgs/Error_with_less_than_N_args (0.00s) 167s --- PASS: TestZeroOrNArgs/Exactly_N_args (0.00s) 167s --- PASS: TestNoCmd (0.00s) 167s PASS 167s ok github.com/ubuntu/adsys/internal/cmdhandler 0.003s 178s === RUN TestSetVerboseMode 178s === RUN TestSetVerboseMode/Default_level_is_warning 178s === RUN TestSetVerboseMode/1_is_for_info 178s === RUN TestSetVerboseMode/2_is_for_debug 178s === RUN TestSetVerboseMode/3_is_debug_printing_callers 178s --- PASS: TestSetVerboseMode (0.00s) 178s --- PASS: TestSetVerboseMode/Default_level_is_warning (0.00s) 178s --- PASS: TestSetVerboseMode/1_is_for_info (0.00s) 178s --- PASS: TestSetVerboseMode/2_is_for_debug (0.00s) 178s --- PASS: TestSetVerboseMode/3_is_debug_printing_callers (0.00s) 178s === RUN TestInit 178s === RUN TestInit/Flag_has_precedence_over_env 178s === RUN TestInit/Env_has_precedence_over_configuration 178s === RUN TestInit/Error_on_callback_returning_error_on_first_call 178s === RUN TestInit/Load_configuration,_no_file,_no_flag,_no_env 178s === RUN TestInit/Empty_configuration_file_is_supported 178s === RUN TestInit/Configuration_file_created_after_Init()_is_not_taken_into_account 178s === RUN TestInit/No_config_flag_set_before_Init_is_call_is_ignored 178s === RUN TestInit/Environment_is_supported 178s === RUN TestInit/Configuration_changed_directly 178s === RUN TestInit/Callback_in_error_on_refresh_only_prints_warning 178s time="2025-10-18T16:23:08Z" level=warning msg="Error while refreshing configuration: Error from callback" 178s === RUN TestInit/Error_on_no_verbose_flag_set_before_Init_is_call 178s === RUN TestInit/Load_configuration_with_file 178s === RUN TestInit/Configuration_flag,_not_in_config_dir 178s === RUN TestInit/Configuration_file_overwritten 178s === RUN TestInit/Configuration_flag_has_precedence_over_local_file 178s === RUN TestInit/Error_on_invalid_configuration_file 178s === RUN TestInit/Error_on_config_flag_points_to_unexisting_path 178s === RUN TestInit/Load_configuration_from_executable_dir 178s === RUN TestInit/Configuration_flag_on_parent,_not_in_config_dir,_init_on_subcommand 178s === RUN TestInit/Configuration_flag_on_subcommand,_not_in_config_dir,_init_on_subcommand 178s === RUN TestInit/Flag_is_supported 178s --- PASS: TestInit (10.12s) 178s --- PASS: TestInit/Flag_has_precedence_over_env (0.03s) 178s --- PASS: TestInit/Env_has_precedence_over_configuration (0.00s) 178s --- PASS: TestInit/Error_on_callback_returning_error_on_first_call (0.00s) 178s --- PASS: TestInit/Load_configuration,_no_file,_no_flag,_no_env (0.00s) 178s --- PASS: TestInit/Empty_configuration_file_is_supported (0.00s) 178s --- PASS: TestInit/Configuration_file_created_after_Init()_is_not_taken_into_account (4.02s) 178s --- PASS: TestInit/No_config_flag_set_before_Init_is_call_is_ignored (0.01s) 178s --- PASS: TestInit/Environment_is_supported (0.00s) 178s --- PASS: TestInit/Configuration_changed_directly (2.01s) 178s --- PASS: TestInit/Callback_in_error_on_refresh_only_prints_warning (2.02s) 178s --- PASS: TestInit/Error_on_no_verbose_flag_set_before_Init_is_call (0.00s) 178s --- PASS: TestInit/Load_configuration_with_file (0.00s) 178s --- PASS: TestInit/Configuration_flag,_not_in_config_dir (0.00s) 178s --- PASS: TestInit/Configuration_file_overwritten (2.01s) 178s --- PASS: TestInit/Configuration_flag_has_precedence_over_local_file (0.00s) 178s --- PASS: TestInit/Error_on_invalid_configuration_file (0.00s) 178s --- PASS: TestInit/Error_on_config_flag_points_to_unexisting_path (0.00s) 178s --- PASS: TestInit/Load_configuration_from_executable_dir (0.01s) 178s --- PASS: TestInit/Configuration_flag_on_parent,_not_in_config_dir,_init_on_subcommand (0.00s) 178s --- PASS: TestInit/Configuration_flag_on_subcommand,_not_in_config_dir,_init_on_subcommand (0.00s) 178s --- PASS: TestInit/Flag_is_supported (0.00s) 178s === RUN TestLoadConfig 178s === PAUSE TestLoadConfig 178s === CONT TestLoadConfig 178s === RUN TestLoadConfig/Empty_configuration_is_supported 178s === PAUSE TestLoadConfig/Empty_configuration_is_supported 178s === RUN TestLoadConfig/Load_configuration_deserialize_its 178s === PAUSE TestLoadConfig/Load_configuration_deserialize_its 178s === CONT TestLoadConfig/Empty_configuration_is_supported 178s === CONT TestLoadConfig/Load_configuration_deserialize_its 178s --- PASS: TestLoadConfig (0.00s) 178s --- PASS: TestLoadConfig/Empty_configuration_is_supported (0.00s) 178s --- PASS: TestLoadConfig/Load_configuration_deserialize_its (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/config 10.189s 178s === RUN TestConfigFileFromArgs 178s === PAUSE TestConfigFileFromArgs 178s === RUN TestDirsFromConfigFile 178s === PAUSE TestDirsFromConfigFile 178s === RUN TestWriteConfig 178s === RUN TestWriteConfig/With_nested_config_path 178s === RUN TestWriteConfig/Error_on_absent_dirs 178s === RUN TestWriteConfig/Error_on_empty_dirs 178s === RUN TestWriteConfig/With_relative_config_path 178s --- PASS: TestWriteConfig (0.00s) 178s --- PASS: TestWriteConfig/With_nested_config_path (0.00s) 178s --- PASS: TestWriteConfig/Error_on_absent_dirs (0.00s) 178s --- PASS: TestWriteConfig/Error_on_empty_dirs (0.00s) 178s --- PASS: TestWriteConfig/With_relative_config_path (0.00s) 178s === CONT TestConfigFileFromArgs 178s === RUN TestConfigFileFromArgs/Short_config_argument_with_quotes 178s === PAUSE TestConfigFileFromArgs/Short_config_argument_with_quotes 178s === RUN TestConfigFileFromArgs/Error_on_empty_args 178s === PAUSE TestConfigFileFromArgs/Error_on_empty_args 178s === RUN TestConfigFileFromArgs/Error_on_no_config_argument 178s === PAUSE TestConfigFileFromArgs/Error_on_no_config_argument 178s === RUN TestConfigFileFromArgs/Error_on_config_argument_with_no_value 178s === PAUSE TestConfigFileFromArgs/Error_on_config_argument_with_no_value 178s === RUN TestConfigFileFromArgs/Short_config_argument 178s === PAUSE TestConfigFileFromArgs/Short_config_argument 178s === CONT TestConfigFileFromArgs/Short_config_argument_with_quotes 178s === CONT TestDirsFromConfigFile 178s === RUN TestDirsFromConfigFile/No_config_file 178s === PAUSE TestDirsFromConfigFile/No_config_file 178s === RUN TestDirsFromConfigFile/Empty_config_file 178s === PAUSE TestDirsFromConfigFile/Empty_config_file 178s === RUN TestDirsFromConfigFile/No_dirs_in_config_file 178s === PAUSE TestDirsFromConfigFile/No_dirs_in_config_file 178s === RUN TestDirsFromConfigFile/Config_dirs_is_not_an_array 178s === PAUSE TestDirsFromConfigFile/Config_dirs_is_not_an_array 178s === RUN TestDirsFromConfigFile/Config_dirs_is_an_array 178s === PAUSE TestDirsFromConfigFile/Config_dirs_is_an_array 178s === CONT TestConfigFileFromArgs/Error_on_config_argument_with_no_value 178s === CONT TestConfigFileFromArgs/Short_config_argument 178s === CONT TestDirsFromConfigFile/No_config_file 178s === CONT TestDirsFromConfigFile/Config_dirs_is_an_array 178s === CONT TestDirsFromConfigFile/Config_dirs_is_not_an_array 178s === CONT TestDirsFromConfigFile/No_dirs_in_config_file 178s === CONT TestDirsFromConfigFile/Empty_config_file 178s --- PASS: TestDirsFromConfigFile (0.00s) 178s --- PASS: TestDirsFromConfigFile/No_config_file (0.00s) 178s --- PASS: TestDirsFromConfigFile/Config_dirs_is_an_array (0.00s) 178s --- PASS: TestDirsFromConfigFile/Config_dirs_is_not_an_array (0.00s) 178s --- PASS: TestDirsFromConfigFile/No_dirs_in_config_file (0.00s) 178s --- PASS: TestDirsFromConfigFile/Empty_config_file (0.00s) 178s === CONT TestConfigFileFromArgs/Error_on_no_config_argument 178s === CONT TestConfigFileFromArgs/Error_on_empty_args 178s --- PASS: TestConfigFileFromArgs (0.00s) 178s --- PASS: TestConfigFileFromArgs/Short_config_argument_with_quotes (0.00s) 178s --- PASS: TestConfigFileFromArgs/Error_on_config_argument_with_no_value (0.00s) 178s --- PASS: TestConfigFileFromArgs/Error_on_no_config_argument (0.00s) 178s --- PASS: TestConfigFileFromArgs/Error_on_empty_args (0.00s) 178s --- PASS: TestConfigFileFromArgs/Short_config_argument (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/config/watchd 0.006s 178s ? github.com/ubuntu/adsys/internal/consts [no test files] 178s === RUN TestStartStop 178s === PAUSE TestStartStop 178s === RUN TestStopBeforeServe 178s === PAUSE TestStopBeforeServe 178s === RUN TestChangeSocket 178s === PAUSE TestChangeSocket 178s === RUN TestSocketActivation 178s === PAUSE TestSocketActivation 178s === RUN TestUseSocketIgnoredWithSocketActivation 178s === PAUSE TestUseSocketIgnoredWithSocketActivation 178s === RUN TestSdNotifier 178s === PAUSE TestSdNotifier 178s === RUN TestFailingOption 178s === PAUSE TestFailingOption 178s === RUN TestCannotCreateSocket 178s === PAUSE TestCannotCreateSocket 178s === RUN TestServerStartListenTimeout 178s === PAUSE TestServerStartListenTimeout 178s === RUN TestServerDontTimeoutWithActiveRequest 178s === PAUSE TestServerDontTimeoutWithActiveRequest 178s === RUN TestServerDontTimeoutWithMultipleActiveRequests 178s === PAUSE TestServerDontTimeoutWithMultipleActiveRequests 178s === RUN TestServerChangeTimeout 178s === PAUSE TestServerChangeTimeout 178s === RUN TestServerDoubleQuit 178s === PAUSE TestServerDoubleQuit 178s === CONT TestStartStop 178s === CONT TestCannotCreateSocket 178s --- PASS: TestCannotCreateSocket (0.00s) 178s === CONT TestServerDoubleQuit 178s time="2025-10-18T16:23:00Z" level=info msg="Serving on /tmp/TestServerDoubleQuit1512994964/001/test.sock" 178s time="2025-10-18T16:23:00Z" level=info msg="Serving on /tmp/TestStartStop2222007541/001/test.sock" 178s time="2025-10-18T16:23:00Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:00Z" level=info msg="Wait for active requests to close." 178s --- PASS: TestStartStop (0.01s) 178s time="2025-10-18T16:23:00Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:00Z" level=info msg="Wait for active requests to close." 178s --- PASS: TestServerDoubleQuit (0.01s) 178s === CONT TestServerDontTimeoutWithMultipleActiveRequests 178s === CONT TestServerChangeTimeout 178s time="2025-10-18T16:23:00Z" level=info msg="Serving on /tmp/TestServerDontTimeoutWithMultipleActiveRequests3190063298/001/test.sock" 178s time="2025-10-18T16:23:00Z" level=info msg="Serving on /tmp/TestServerChangeTimeout229801111/001/test.sock" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s --- PASS: TestServerChangeTimeout (0.05s) 178s === CONT TestServerDontTimeoutWithActiveRequest 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestServerDontTimeoutWithActiveRequest4036053808/001/test.sock" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s --- PASS: TestServerDontTimeoutWithMultipleActiveRequests (0.11s) 178s === CONT TestServerStartListenTimeout 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestServerStartListenTimeout2641627379/001/test.sock" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s --- PASS: TestServerStartListenTimeout (0.01s) 178s === CONT TestUseSocketIgnoredWithSocketActivation 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestUseSocketIgnoredWithSocketActivation2748313561/001/socket" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s --- PASS: TestUseSocketIgnoredWithSocketActivation (0.02s) 178s === CONT TestFailingOption 178s --- PASS: TestFailingOption (0.00s) 178s === CONT TestSdNotifier 178s === RUN TestSdNotifier/Sends_signal 178s === PAUSE TestSdNotifier/Sends_signal 178s === RUN TestSdNotifier/Doesn't_fail_when_not_under_systemd 178s === PAUSE TestSdNotifier/Doesn't_fail_when_not_under_systemd 178s === RUN TestSdNotifier/Error_when_notifier_fails 178s === PAUSE TestSdNotifier/Error_when_notifier_fails 178s === CONT TestChangeSocket 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestChangeSocket1591904467/001/test.sock" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestChangeSocket1591904467/001/test2.sock" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s --- PASS: TestServerDontTimeoutWithActiveRequest (0.11s) 178s === CONT TestSocketActivation 178s === RUN TestSocketActivation/Error_when_provided_with_many_sockets 178s === PAUSE TestSocketActivation/Error_when_provided_with_many_sockets 178s === RUN TestSocketActivation/Error_when_Listeners()_fails 178s === PAUSE TestSocketActivation/Error_when_Listeners()_fails 178s === RUN TestSocketActivation/Success_with_one_socket 178s === PAUSE TestSocketActivation/Success_with_one_socket 178s === CONT TestStopBeforeServe 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s --- PASS: TestStopBeforeServe (0.00s) 178s === CONT TestSdNotifier/Sends_signal 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestSdNotifierSends_signal4192190947/001/socket" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s --- PASS: TestChangeSocket (0.02s) 178s === CONT TestSdNotifier/Error_when_notifier_fails 178s === CONT TestSdNotifier/Doesn't_fail_when_not_under_systemd 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestSdNotifierDoesnt_fail_when_not_under_systemd2491238603/001/socket" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s === CONT TestSocketActivation/Error_when_provided_with_many_sockets 178s === CONT TestSocketActivation/Success_with_one_socket 178s time="2025-10-18T16:23:01Z" level=info msg="Serving on /tmp/TestSocketActivationSuccess_with_one_socket2273352591/001/sock1" 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s --- PASS: TestSdNotifier (0.00s) 178s --- PASS: TestSdNotifier/Error_when_notifier_fails (0.00s) 178s --- PASS: TestSdNotifier/Sends_signal (0.01s) 178s --- PASS: TestSdNotifier/Doesn't_fail_when_not_under_systemd (0.01s) 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s === CONT TestSocketActivation/Error_when_Listeners()_fails 178s time="2025-10-18T16:23:01Z" level=info msg="Stopping daemon requested." 178s time="2025-10-18T16:23:01Z" level=info msg="Wait for active requests to close." 178s --- PASS: TestSocketActivation (0.00s) 178s --- PASS: TestSocketActivation/Error_when_provided_with_many_sockets (0.00s) 178s --- PASS: TestSocketActivation/Error_when_Listeners()_fails (0.00s) 178s --- PASS: TestSocketActivation/Success_with_one_socket (0.01s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/daemon 0.201s 178s === RUN TestCleanDirectory 178s === PAUSE TestCleanDirectory 178s === RUN TestCleanDirectoryNoDirectoryExists 178s === PAUSE TestCleanDirectoryNoDirectoryExists 178s === RUN TestCleanDirectoryCantRemoveDirectory 178s === PAUSE TestCleanDirectoryCantRemoveDirectory 178s === RUN TestInstallOnlyMode 178s --- PASS: TestInstallOnlyMode (0.00s) 178s === RUN TestDestDirectory 178s --- PASS: TestDestDirectory (0.00s) 178s === CONT TestCleanDirectory 178s === CONT TestCleanDirectoryCantRemoveDirectory 178s --- PASS: TestCleanDirectoryCantRemoveDirectory (0.00s) 178s === CONT TestCleanDirectoryNoDirectoryExists 178s --- PASS: TestCleanDirectory (0.00s) 178s --- PASS: TestCleanDirectoryNoDirectoryExists (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/generators 0.005s 178s === RUN TestNoNotification 178s === PAUSE TestNoNotification 178s === RUN TestNewConnectionNotification 178s === PAUSE TestNewConnectionNotification 178s === RUN TestDoneConnectionNotification 178s === PAUSE TestDoneConnectionNotification 178s === RUN TestErrorFromHandlerReturned 178s === PAUSE TestErrorFromHandlerReturned 178s === RUN TestErrorOnNilStream 178s === PAUSE TestErrorOnNilStream 178s === CONT TestNoNotification 178s --- PASS: TestNoNotification (0.00s) 178s === CONT TestDoneConnectionNotification 178s --- PASS: TestDoneConnectionNotification (0.00s) 178s === CONT TestNewConnectionNotification 178s --- PASS: TestNewConnectionNotification (0.00s) 178s === CONT TestErrorOnNilStream 178s --- PASS: TestErrorOnNilStream (0.00s) 178s === CONT TestErrorFromHandlerReturned 178s --- PASS: TestErrorFromHandlerReturned (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/grpc/connectionnotify 0.003s 178s === RUN TestActiveConnection 178s === PAUSE TestActiveConnection 178s === RUN TestTimeoutOnInactiveConnection 178s === PAUSE TestTimeoutOnInactiveConnection 178s === RUN TestCancelOnClientSide 178s === PAUSE TestCancelOnClientSide 178s === RUN TestClientInterceptorFailed 178s === PAUSE TestClientInterceptorFailed 178s === RUN TestRecvMessageError 178s === PAUSE TestRecvMessageError 178s === CONT TestActiveConnection 178s === CONT TestClientInterceptorFailed 178s --- PASS: TestClientInterceptorFailed (0.00s) 178s === CONT TestCancelOnClientSide 178s --- PASS: TestCancelOnClientSide (0.00s) 178s === CONT TestTimeoutOnInactiveConnection 178s --- PASS: TestTimeoutOnInactiveConnection (0.05s) 178s === CONT TestRecvMessageError 178s --- PASS: TestRecvMessageError (0.00s) 178s --- PASS: TestActiveConnection (0.15s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/grpc/contextidler 0.155s 178s === RUN TestFormat 178s === PAUSE TestFormat 178s === CONT TestFormat 178s === RUN TestFormat/Nil_returns_nil 178s === PAUSE TestFormat/Nil_returns_nil 178s === RUN TestFormat/Non_GRPC_errors_are_returned_as_is 178s === PAUSE TestFormat/Non_GRPC_errors_are_returned_as_is 178s === RUN TestFormat/GRPC_Unavailable_errors_prints_daemon_name 178s === PAUSE TestFormat/GRPC_Unavailable_errors_prints_daemon_name 178s === RUN TestFormat/GRPC_Deadline_errors_don’t_print_status_nor_daemon_nor_message 178s === PAUSE TestFormat/GRPC_Deadline_errors_don’t_print_status_nor_daemon_nor_message 178s === RUN TestFormat/GRPC_Unknown_errors_don’t_print_status_and_daemon 178s === PAUSE TestFormat/GRPC_Unknown_errors_don’t_print_status_and_daemon 178s === RUN TestFormat/GRPC_Random_errors_prints_status_and_message 178s === PAUSE TestFormat/GRPC_Random_errors_prints_status_and_message 178s === CONT TestFormat/Nil_returns_nil 178s === CONT TestFormat/GRPC_Random_errors_prints_status_and_message 178s === CONT TestFormat/GRPC_Deadline_errors_don’t_print_status_nor_daemon_nor_message 178s === CONT TestFormat/GRPC_Unknown_errors_don’t_print_status_and_daemon 178s === CONT TestFormat/GRPC_Unavailable_errors_prints_daemon_name 178s === CONT TestFormat/Non_GRPC_errors_are_returned_as_is 178s --- PASS: TestFormat (0.00s) 178s --- PASS: TestFormat/Nil_returns_nil (0.00s) 178s --- PASS: TestFormat/GRPC_Deadline_errors_don’t_print_status_nor_daemon_nor_message (0.00s) 178s --- PASS: TestFormat/GRPC_Unknown_errors_don’t_print_status_and_daemon (0.00s) 178s --- PASS: TestFormat/GRPC_Unavailable_errors_prints_daemon_name (0.00s) 178s --- PASS: TestFormat/Non_GRPC_errors_are_returned_as_is (0.00s) 178s --- PASS: TestFormat/GRPC_Random_errors_prints_status_and_message (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/grpc/grpcerror 0.002s 178s === RUN TestStreamServer 178s === PAUSE TestStreamServer 178s === RUN TestStreamClient 178s === PAUSE TestStreamClient 178s === CONT TestStreamServer 178s --- PASS: TestStreamServer (0.00s) 178s === CONT TestStreamClient 178s --- PASS: TestStreamClient (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/grpc/interceptorschain 0.003s 178s === RUN TestChildRecvMsgAndHandlerCalled 178s === PAUSE TestChildRecvMsgAndHandlerCalled 178s === CONT TestChildRecvMsgAndHandlerCalled 178s === RUN TestChildRecvMsgAndHandlerCalled/Handler_and_RecvMsg_are_called 178s === PAUSE TestChildRecvMsgAndHandlerCalled/Handler_and_RecvMsg_are_called 178s === RUN TestChildRecvMsgAndHandlerCalled/Info_being_nil_has_no_impact 178s === PAUSE TestChildRecvMsgAndHandlerCalled/Info_being_nil_has_no_impact 178s === RUN TestChildRecvMsgAndHandlerCalled/Error_when_handler_fails_out 178s === PAUSE TestChildRecvMsgAndHandlerCalled/Error_when_handler_fails_out 178s === RUN TestChildRecvMsgAndHandlerCalled/Error_when_RecvMsg_errors_out 178s === PAUSE TestChildRecvMsgAndHandlerCalled/Error_when_RecvMsg_errors_out 178s === CONT TestChildRecvMsgAndHandlerCalled/Handler_and_RecvMsg_are_called 178s === CONT TestChildRecvMsgAndHandlerCalled/Error_when_RecvMsg_errors_out 178s === CONT TestChildRecvMsgAndHandlerCalled/Error_when_handler_fails_out 178s time="2025-10-18T16:23:03Z" level=info msg="Error sent to client: Failing handler" 178s === CONT TestChildRecvMsgAndHandlerCalled/Info_being_nil_has_no_impact 178s --- PASS: TestChildRecvMsgAndHandlerCalled (0.00s) 178s --- PASS: TestChildRecvMsgAndHandlerCalled/Handler_and_RecvMsg_are_called (0.00s) 178s --- PASS: TestChildRecvMsgAndHandlerCalled/Error_when_RecvMsg_errors_out (0.00s) 178s --- PASS: TestChildRecvMsgAndHandlerCalled/Error_when_handler_fails_out (0.00s) 178s --- PASS: TestChildRecvMsgAndHandlerCalled/Info_being_nil_has_no_impact (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/grpc/logconnections 0.003s 178s === RUN TestRecvLogMsg 178s === PAUSE TestRecvLogMsg 178s === RUN TestAddStreamToForwardLocalLogs 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:008961]]" 178s time="2025-10-18T16:23:04Z" level=warning msg=something 178s --- PASS: TestAddStreamToForwardLocalLogs (0.00s) 178s === RUN TestAddStreamToForwardOtherStream 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:842668]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:651517]]" 178s --- PASS: TestAddStreamToForwardOtherStream (0.00s) 178s === RUN TestAddStreamToForwardAfterClientIsConnected 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:652852]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:347134]]" 178s --- PASS: TestAddStreamToForwardAfterClientIsConnected (0.00s) 178s === RUN TestAddStreamToForwardDisconnect 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:903400]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:315941]]" 178s --- PASS: TestAddStreamToForwardDisconnect (0.00s) 178s === RUN TestAddStreamToForwardTwoClients 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:490182]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:992326]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:491523]]" 178s --- PASS: TestAddStreamToForwardTwoClients (0.00s) 178s === RUN TestAddStreamToForwardWithListenerCaller 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:596770]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:148893]]" 178s --- PASS: TestAddStreamToForwardWithListenerCaller (0.00s) 178s === RUN TestAddStreamMultipleForwarders 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:358737]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:753118]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:759814]]" 178s --- PASS: TestAddStreamMultipleForwarders (0.00s) 178s === RUN TestAddStreamMultipleForwardersOneWithCaller 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:772084]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:857178]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:379241]]" 178s --- PASS: TestAddStreamMultipleForwardersOneWithCaller (0.00s) 178s === RUN TestAddStreamToForwardFailSend 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:550429]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:505628]]" 178s time="2025-10-18T16:23:04Z" level=warning msg="Couldn't send log to one or more listener: SendMsg failed" 178s --- PASS: TestAddStreamToForwardFailSend (0.00s) 178s === RUN TestRemoveAllStreams 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:233582]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:447102]]" 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:782012]]" 178s time="2025-10-18T16:23:04Z" level=warning msg="[[123456:782012]] else" 178s --- PASS: TestRemoveAllStreams (0.00s) 178s === RUN TestLogWarningOnly 178s === PAUSE TestLogWarningOnly 178s === RUN TestMultipleLogs 178s === PAUSE TestMultipleLogs 178s === RUN TestAllLogLevels 178s === PAUSE TestAllLogLevels 178s === RUN TestDebugSentToRemoteEvenIfLocalIsWarning 178s === PAUSE TestDebugSentToRemoteEvenIfLocalIsWarning 178s === RUN TestLogWarningWithLocalCaller 178s === PAUSE TestLogWarningWithLocalCaller 178s === RUN TestLogWarningWithRemoteCaller 178s === PAUSE TestLogWarningWithRemoteCaller 178s === RUN TestLogWithNoCaller 178s === PAUSE TestLogWithNoCaller 178s === RUN TestSetReportCaller 178s === RUN TestSetReportCaller/Report_caller 178s === RUN TestSetReportCaller/Disable_caller 178s --- PASS: TestSetReportCaller (0.00s) 178s --- PASS: TestSetReportCaller/Report_caller (0.00s) 178s --- PASS: TestSetReportCaller/Disable_caller (0.00s) 178s === RUN TestLogSendingFail 178s === PAUSE TestLogSendingFail 178s === RUN TestLogStreamsAreSeparated 178s === PAUSE TestLogStreamsAreSeparated 178s === RUN TestLogAddHook 178s time="2025-10-18T16:23:04Z" level=info 178s --- PASS: TestLogAddHook (0.00s) 178s === RUN TestStreamServerInterceptor 178s === PAUSE TestStreamServerInterceptor 178s === RUN TestStreamServerInterceptorSendLogsFails 178s === PAUSE TestStreamServerInterceptorSendLogsFails 178s === RUN TestStreamServerInterceptorLoggerInvalidMetadata 178s === PAUSE TestStreamServerInterceptorLoggerInvalidMetadata 178s === CONT TestRecvLogMsg 178s === CONT TestLogWithNoCaller 178s === RUN TestRecvLogMsg/One_message_with_error,_no_log,_error_is_preserved 178s === PAUSE TestRecvLogMsg/One_message_with_error,_no_log,_error_is_preserved 178s === RUN TestRecvLogMsg/Logs_and_then_message_with_error,_error_is_preserved 178s === PAUSE TestRecvLogMsg/Logs_and_then_message_with_error,_error_is_preserved 178s === RUN TestRecvLogMsg/Unknown_log_level_triggers_a_client_error_(protocole_issue) 178s === PAUSE TestRecvLogMsg/Unknown_log_level_triggers_a_client_error_(protocole_issue) 178s === RUN TestRecvLogMsg/Invalid_object_passed_to_RecvMsg_is_gracefully_skipped 178s === PAUSE TestRecvLogMsg/Invalid_object_passed_to_RecvMsg_is_gracefully_skipped 178s === RUN TestRecvLogMsg/One_log_(and_one_closing_empty_message) 178s === PAUSE TestRecvLogMsg/One_log_(and_one_closing_empty_message) 178s === RUN TestRecvLogMsg/Two_logs_with_different_debug_level 178s === PAUSE TestRecvLogMsg/Two_logs_with_different_debug_level 178s === RUN TestRecvLogMsg/Log_with_caller 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:044340]]" 178s === PAUSE TestRecvLogMsg/Log_with_caller 178s === RUN TestRecvLogMsg/No_caller_when_not_requested 178s === PAUSE TestRecvLogMsg/No_caller_when_not_requested 178s === RUN TestRecvLogMsg/No_caller_on_any_logs 178s === PAUSE TestRecvLogMsg/No_caller_on_any_logs 178s === RUN TestRecvLogMsg/One_message,_no_log 178s === PAUSE TestRecvLogMsg/One_message,_no_log 178s --- PASS: TestLogWithNoCaller (0.00s) 178s === CONT TestStreamServerInterceptorLoggerInvalidMetadata 178s === RUN TestStreamServerInterceptorLoggerInvalidMetadata/Caller_key_is_not_a_boolean 178s === PAUSE TestStreamServerInterceptorLoggerInvalidMetadata/Caller_key_is_not_a_boolean 178s === RUN TestStreamServerInterceptorLoggerInvalidMetadata/Multiple_log_metas 178s === PAUSE TestStreamServerInterceptorLoggerInvalidMetadata/Multiple_log_metas 178s === RUN TestStreamServerInterceptorLoggerInvalidMetadata/No_meta_sent 178s === CONT TestRecvLogMsg/One_message_with_error,_no_log,_error_is_preserved 178s === PAUSE TestStreamServerInterceptorLoggerInvalidMetadata/No_meta_sent 178s === RUN TestStreamServerInterceptorLoggerInvalidMetadata/Missing_client_ID 178s === PAUSE TestStreamServerInterceptorLoggerInvalidMetadata/Missing_client_ID 178s === RUN TestStreamServerInterceptorLoggerInvalidMetadata/Missing_caller_key 178s === PAUSE TestStreamServerInterceptorLoggerInvalidMetadata/Missing_caller_key 178s === CONT TestLogWarningWithRemoteCaller 178s === CONT TestLogWarningWithLocalCaller 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:332738]]" 178s --- PASS: TestLogWarningWithRemoteCaller (0.00s) 178s === CONT TestDebugSentToRemoteEvenIfLocalIsWarning 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:642193]]" 178s --- PASS: TestLogWarningWithLocalCaller (0.00s) 178s === CONT TestAllLogLevels 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:216886]]" 178s --- PASS: TestDebugSentToRemoteEvenIfLocalIsWarning (0.00s) 178s === CONT TestMultipleLogs 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:800755]]" 178s --- PASS: TestAllLogLevels (0.00s) 178s === CONT TestLogWarningOnly 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:794082]]" 178s --- PASS: TestMultipleLogs (0.00s) 178s === CONT TestRecvLogMsg/One_message,_no_log 178s === CONT TestRecvLogMsg/No_caller_on_any_logs 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:221047]]" 178s --- PASS: TestLogWarningOnly (0.00s) 178s === CONT TestRecvLogMsg/No_caller_when_not_requested 178s === CONT TestRecvLogMsg/Log_with_caller 178s === CONT TestRecvLogMsg/Two_logs_with_different_debug_level 178s === CONT TestRecvLogMsg/One_log_(and_one_closing_empty_message) 178s === CONT TestRecvLogMsg/Invalid_object_passed_to_RecvMsg_is_gracefully_skipped 178s === CONT TestRecvLogMsg/Unknown_log_level_triggers_a_client_error_(protocole_issue) 178s === CONT TestRecvLogMsg/Logs_and_then_message_with_error,_error_is_preserved 178s --- PASS: TestRecvLogMsg (0.00s) 178s --- PASS: TestRecvLogMsg/One_message_with_error,_no_log,_error_is_preserved (0.00s) 178s --- PASS: TestRecvLogMsg/One_message,_no_log (0.00s) 178s --- PASS: TestRecvLogMsg/No_caller_when_not_requested (0.00s) 178s --- PASS: TestRecvLogMsg/Log_with_caller (0.00s) 178s --- PASS: TestRecvLogMsg/Two_logs_with_different_debug_level (0.00s) 178s --- PASS: TestRecvLogMsg/One_log_(and_one_closing_empty_message) (0.00s) 178s --- PASS: TestRecvLogMsg/Invalid_object_passed_to_RecvMsg_is_gracefully_skipped (0.00s) 178s --- PASS: TestRecvLogMsg/Unknown_log_level_triggers_a_client_error_(protocole_issue) (0.00s) 178s --- PASS: TestRecvLogMsg/Logs_and_then_message_with_error,_error_is_preserved (0.00s) 178s --- PASS: TestRecvLogMsg/No_caller_on_any_logs (0.00s) 178s === CONT TestStreamServerInterceptor 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:960036]]" 178s --- PASS: TestStreamServerInterceptor (0.00s) 178s === CONT TestLogStreamsAreSeparated 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:127021]]" 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:123595]]" 178s --- PASS: TestLogStreamsAreSeparated (0.00s) 178s === CONT TestLogSendingFail 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:370685]]" 178s --- PASS: TestLogSendingFail (0.00s) 178s === CONT TestStreamServerInterceptorSendLogsFails 178s time="2025-10-18T16:23:04Z" level=warning msg="[[123456:268800]] Couldn't send initial connection log to client" 178s Failed to fire hook: hook fired 178s time="2025-10-18T16:23:04Z" level=info msg="New connection from client [[123456:268800]]" 178s --- PASS: TestStreamServerInterceptorSendLogsFails (0.00s) 178s === CONT TestStreamServerInterceptorLoggerInvalidMetadata/Caller_key_is_not_a_boolean 178s === CONT TestStreamServerInterceptorLoggerInvalidMetadata/Missing_client_ID 178s === CONT TestStreamServerInterceptorLoggerInvalidMetadata/No_meta_sent 178s === CONT TestStreamServerInterceptorLoggerInvalidMetadata/Multiple_log_metas 178s === CONT TestStreamServerInterceptorLoggerInvalidMetadata/Missing_caller_key 178s --- PASS: TestStreamServerInterceptorLoggerInvalidMetadata (0.00s) 178s --- PASS: TestStreamServerInterceptorLoggerInvalidMetadata/Caller_key_is_not_a_boolean (0.00s) 178s --- PASS: TestStreamServerInterceptorLoggerInvalidMetadata/Missing_client_ID (0.00s) 178s --- PASS: TestStreamServerInterceptorLoggerInvalidMetadata/No_meta_sent (0.00s) 178s --- PASS: TestStreamServerInterceptorLoggerInvalidMetadata/Multiple_log_metas (0.00s) 178s --- PASS: TestStreamServerInterceptorLoggerInvalidMetadata/Missing_caller_key (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/grpc/logstreamer 0.010s 178s ? github.com/ubuntu/adsys/internal/grpc/logstreamer/test [no test files] 178s === RUN TestEventLogHook 178s === RUN TestEventLogHook/error_level 178s time="2025-10-18T16:23:04Z" level=error msg="Error msg" 178s === RUN TestEventLogHook/warn_level 178s time="2025-10-18T16:23:04Z" level=warning msg="Warning msg" 178s time="2025-10-18T16:23:04Z" level=error msg="Error msg" 178s === RUN TestEventLogHook/info_level 178s time="2025-10-18T16:23:04Z" level=info msg="Info msg" 178s time="2025-10-18T16:23:04Z" level=warning msg="Warning msg" 178s time="2025-10-18T16:23:04Z" level=error msg="Error msg" 178s === RUN TestEventLogHook/debug_level 178s time="2025-10-18T16:23:04Z" level=debug msg="Debug msg" 178s time="2025-10-18T16:23:04Z" level=info msg="Info msg" 178s time="2025-10-18T16:23:04Z" level=warning msg="Warning msg" 178s time="2025-10-18T16:23:04Z" level=error msg="Error msg" 178s --- PASS: TestEventLogHook (0.00s) 178s --- PASS: TestEventLogHook/error_level (0.00s) 178s --- PASS: TestEventLogHook/warn_level (0.00s) 178s --- PASS: TestEventLogHook/info_level (0.00s) 178s --- PASS: TestEventLogHook/debug_level (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/loghooks 0.003s 178s === RUN TestFormat 178s === PAUSE TestFormat 178s === RUN TestApplyPolicies 178s === RUN TestApplyPolicies/Succeed 178s === RUN TestApplyPolicies/Succeed_if_checking_for_backend_online_status_returns_an_error 178s === RUN TestApplyPolicies/Second_call_with_no_rules_deletes_everything 178s time="2025-10-18T16:23:05Z" level=info msg="Unloading policies for hostname (machine: true)" 178s === RUN TestApplyPolicies/Second_call_with_no_subscription_should_remove_everything_but_dconf_content 178s time="2025-10-18T16:23:05Z" level=info msg="Applying policies for hostname (machine: true)" 178s time="2025-10-18T16:23:05Z" level=warning msg="Rules from the following policy types will be filtered out as the machine is not enrolled to Ubuntu Pro: privilege, scripts, mount, apparmor, proxy, certificate" 178s === RUN TestApplyPolicies/Second_call_with_no_subscription_don't_remove_scripts_if_session_hasn’t_ended 178s time="2025-10-18T16:23:05Z" level=info msg="Applying policies for hostname (machine: true)" 178s time="2025-10-18T16:23:05Z" level=warning msg="Rules from the following policy types will be filtered out as the machine is not enrolled to Ubuntu Pro: privilege, scripts, mount, apparmor, proxy, certificate" 178s time="2025-10-18T16:23:05Z" level=info msg="\"/tmp/TestApplyPoliciesSecond_call_with_no_subscription_dont_remove_31102305/001/run/adsys/machine/scripts/.running\" already exists, a session is already running, ignoring." 178s === RUN TestApplyPolicies/Error_when_applying_privilege_policy 178s === RUN TestApplyPolicies/Error_when_applying_scripts_policy 178s === RUN TestApplyPolicies/Error_when_applying_mount_policy 178s === RUN TestApplyPolicies/Second_call_with_no_rules_don't_remove_scripts_if_session_hasn’t_ended 178s time="2025-10-18T16:23:05Z" level=info msg="Unloading policies for hostname (machine: true)" 178s time="2025-10-18T16:23:05Z" level=info msg="\"/tmp/TestApplyPoliciesSecond_call_with_no_rules_dont_remove_scripts2616185219/001/run/adsys/machine/scripts/.running\" already exists, a session is already running, ignoring." 178s === RUN TestApplyPolicies/No_subscription_is_only_dconf_content 178s === RUN TestApplyPolicies/Error_when_applying_dconf_policy 178s === RUN TestApplyPolicies/Error_when_applying_apparmor_policy 178s === RUN TestApplyPolicies/Error_when_applying_proxy_policy 178s === RUN TestApplyPolicies/Error_when_applying_certificate_policy 178s --- PASS: TestApplyPolicies (0.08s) 178s --- PASS: TestApplyPolicies/Succeed (0.01s) 178s --- PASS: TestApplyPolicies/Succeed_if_checking_for_backend_online_status_returns_an_error (0.01s) 178s --- PASS: TestApplyPolicies/Second_call_with_no_rules_deletes_everything (0.01s) 178s --- PASS: TestApplyPolicies/Second_call_with_no_subscription_should_remove_everything_but_dconf_content (0.01s) 178s --- PASS: TestApplyPolicies/Second_call_with_no_subscription_don't_remove_scripts_if_session_hasn’t_ended (0.01s) 178s --- PASS: TestApplyPolicies/Error_when_applying_privilege_policy (0.00s) 178s --- PASS: TestApplyPolicies/Error_when_applying_scripts_policy (0.00s) 178s --- PASS: TestApplyPolicies/Error_when_applying_mount_policy (0.01s) 178s --- PASS: TestApplyPolicies/Second_call_with_no_rules_don't_remove_scripts_if_session_hasn’t_ended (0.01s) 178s --- PASS: TestApplyPolicies/No_subscription_is_only_dconf_content (0.00s) 178s --- PASS: TestApplyPolicies/Error_when_applying_dconf_policy (0.00s) 178s --- PASS: TestApplyPolicies/Error_when_applying_apparmor_policy (0.00s) 178s --- PASS: TestApplyPolicies/Error_when_applying_proxy_policy (0.00s) 178s --- PASS: TestApplyPolicies/Error_when_applying_certificate_policy (0.00s) 178s === RUN TestDumpPolicies 178s === PAUSE TestDumpPolicies 178s === RUN TestLastUpdateFor 178s === PAUSE TestLastUpdateFor 178s === RUN TestGetSubscriptionState 178s === RUN TestGetSubscriptionState/Returns_enablement_status_(enabled) 178s === RUN TestGetSubscriptionState/Returns_enablement_status_(disabled) 178s --- PASS: TestGetSubscriptionState (0.00s) 178s --- PASS: TestGetSubscriptionState/Returns_enablement_status_(enabled) (0.00s) 178s --- PASS: TestGetSubscriptionState/Returns_enablement_status_(disabled) (0.00s) 178s === RUN TestNew 178s === PAUSE TestNew 178s === RUN TestNewFromCache 178s === PAUSE TestNewFromCache 178s === RUN TestSave 178s === PAUSE TestSave 178s === RUN TestCachePolicies 178s === PAUSE TestCachePolicies 178s === RUN TestSaveAssetsTo 178s === PAUSE TestSaveAssetsTo 178s === RUN TestCompressAssets 178s === PAUSE TestCompressAssets 178s === RUN TestGetUniqueRules 178s === PAUSE TestGetUniqueRules 178s === CONT TestFormat 178s === RUN TestFormat/GPO_with_rules_and_overrides,_no_rules_processed 178s === PAUSE TestFormat/GPO_with_rules_and_overrides,_no_rules_processed 178s === RUN TestFormat/GPO_and_assets_with_rules,_append_is_overridden_after_a_topmost_override 178s === PAUSE TestFormat/GPO_and_assets_with_rules,_append_is_overridden_after_a_topmost_override 178s === CONT TestSave 178s === RUN TestSave/Can_refresh_on_existing_read_only_asset_file 178s === PAUSE TestSave/Can_refresh_on_existing_read_only_asset_file 178s === RUN TestSave/Error_on_can’t_write_to_policies_base_dir 178s === PAUSE TestSave/Error_on_can’t_write_to_policies_base_dir 178s === RUN TestSave/gpos_only 178s === PAUSE TestSave/gpos_only 178s === RUN TestSave/Existing_cache_with_assets,_new_cache_with_no_assets 178s === PAUSE TestSave/Existing_cache_with_assets,_new_cache_with_no_assets 178s === RUN TestSave/Save_assets_on_existing_opened_file_does_not_segfault 178s === PAUSE TestSave/Save_assets_on_existing_opened_file_does_not_segfault 178s === RUN TestSave/Destdir_does_not_exists 178s === PAUSE TestSave/Destdir_does_not_exists 178s === RUN TestSave/Error_on_can’t_write_to_dest_dir 178s === PAUSE TestSave/Error_on_can’t_write_to_dest_dir 178s === RUN TestSave/Error_on_can’t_remove_existing_assets 178s === PAUSE TestSave/Error_on_can’t_remove_existing_assets 178s === RUN TestSave/With_assets 178s === PAUSE TestSave/With_assets 178s === RUN TestSave/Existing_policies_cache_is_refreshed 178s === PAUSE TestSave/Existing_policies_cache_is_refreshed 178s === RUN TestSave/Existing_assets_cache_is_refreshed 178s === PAUSE TestSave/Existing_assets_cache_is_refreshed 178s === CONT TestSave/Can_refresh_on_existing_read_only_asset_file 178s === RUN TestFormat/GPO_with_rules 178s === PAUSE TestFormat/GPO_with_rules 178s === RUN TestFormat/GPO_with_rules,_appending_to_existing_treated_key 178s === PAUSE TestFormat/GPO_with_rules,_appending_to_existing_treated_key 178s === RUN TestFormat/GPO_with_rules,_override_hidden 178s === PAUSE TestFormat/GPO_with_rules,_override_hidden 178s === RUN TestFormat/GPO_with_rules,_override_displayed 178s === PAUSE TestFormat/GPO_with_rules,_override_displayed 178s === RUN TestFormat/GPO_with_rules,_override_disabled_key 178s === PAUSE TestFormat/GPO_with_rules,_override_disabled_key 178s === RUN TestFormat/GPO_and_assets_with_rules,_appending_to_same_key_do_not_add_to_processed_rules 178s === PAUSE TestFormat/GPO_and_assets_with_rules,_appending_to_same_key_do_not_add_to_processed_rules 178s === RUN TestFormat/GPO_summary 178s === PAUSE TestFormat/GPO_summary 178s === CONT TestFormat/GPO_with_rules_and_overrides,_no_rules_processed 178s === CONT TestNewFromCache 178s === RUN TestNewFromCache/gpos_only 178s === PAUSE TestNewFromCache/gpos_only 178s === RUN TestNewFromCache/With_assets 178s === PAUSE TestNewFromCache/With_assets 178s === RUN TestNewFromCache/Error_on_invalid_policies_cache 178s === PAUSE TestNewFromCache/Error_on_invalid_policies_cache 178s === RUN TestNewFromCache/Error_on_invalid_assets_db 178s === PAUSE TestNewFromCache/Error_on_invalid_assets_db 178s === RUN TestNewFromCache/Error_on_no_policies_cache 178s === PAUSE TestNewFromCache/Error_on_no_policies_cache 178s === CONT TestNewFromCache/gpos_only 178s === CONT TestNew 178s === RUN TestNew/Error_on_assets_db_does_not_exists 178s === PAUSE TestNew/Error_on_assets_db_does_not_exists 178s === RUN TestNew/gpos_only 178s === PAUSE TestNew/gpos_only 178s === RUN TestNew/With_assets 178s === PAUSE TestNew/With_assets 178s === RUN TestNew/No_gpos 178s === PAUSE TestNew/No_gpos 178s === RUN TestNew/Error_on_invalid_assets_db 178s === PAUSE TestNew/Error_on_invalid_assets_db 178s === CONT TestNew/Error_on_assets_db_does_not_exists 178s === CONT TestLastUpdateFor 178s === CONT TestDumpPolicies 178s === RUN TestLastUpdateFor/Returns_user's_last_update_time 178s === PAUSE TestLastUpdateFor/Returns_user's_last_update_time 178s === RUN TestLastUpdateFor/Target_is_ignored_for_machine_request 178s === PAUSE TestLastUpdateFor/Target_is_ignored_for_machine_request 178s === RUN TestLastUpdateFor/Error_when_target_does_not_exist 178s === PAUSE TestLastUpdateFor/Error_when_target_does_not_exist 178s === RUN TestLastUpdateFor/Returns_machine's_last_update_time 178s === PAUSE TestLastUpdateFor/Returns_machine's_last_update_time 178s === CONT TestFormat/GPO_summary 178s === CONT TestFormat/GPO_and_assets_with_rules,_appending_to_same_key_do_not_add_to_processed_rules 178s === RUN TestDumpPolicies/Same_GPO_Machine_and_User_with_rules 178s === PAUSE TestDumpPolicies/Same_GPO_Machine_and_User_with_rules 178s === CONT TestFormat/GPO_with_rules,_override_disabled_key 178s === RUN TestDumpPolicies/Error_on_missing_target_cache 178s === PAUSE TestDumpPolicies/Error_on_missing_target_cache 178s === RUN TestDumpPolicies/Error_on_missing_machine_cache_when_targeting_user 178s === PAUSE TestDumpPolicies/Error_on_missing_machine_cache_when_targeting_user 178s === RUN TestDumpPolicies/Machine_only_GPO_with_rules 178s === PAUSE TestDumpPolicies/Machine_only_GPO_with_rules 178s === RUN TestDumpPolicies/One_GPO_User 178s === PAUSE TestDumpPolicies/One_GPO_User 178s === RUN TestDumpPolicies/Multiple_GPOs_with_rules,_override_hidden 178s === PAUSE TestDumpPolicies/Multiple_GPOs_with_rules,_override_hidden 178s === RUN TestDumpPolicies/Same_GPO_Machine_and_User 178s === PAUSE TestDumpPolicies/Same_GPO_Machine_and_User 178s === CONT TestFormat/GPO_with_rules,_override_displayed 178s === RUN TestDumpPolicies/Same_GPO_Machine_and_User_with_rules_and_overrides 178s === PAUSE TestDumpPolicies/Same_GPO_Machine_and_User_with_rules_and_overrides 178s === RUN TestDumpPolicies/Multiple_GPOs 178s === PAUSE TestDumpPolicies/Multiple_GPOs 178s === RUN TestDumpPolicies/Multiple_GPOs_with_rules,_no_override 178s === PAUSE TestDumpPolicies/Multiple_GPOs_with_rules,_no_override 178s === RUN TestDumpPolicies/Multiple_GPOs_with_rules,_override,_shown 178s === PAUSE TestDumpPolicies/Multiple_GPOs_with_rules,_override,_shown 178s === RUN TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_hidden 178s === PAUSE TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_hidden 178s === RUN TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_shown 178s === PAUSE TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_shown 178s === RUN TestDumpPolicies/One_GPO_Machine 178s === PAUSE TestDumpPolicies/One_GPO_Machine 178s === RUN TestDumpPolicies/One_GPO_User_+_Machine 178s === PAUSE TestDumpPolicies/One_GPO_User_+_Machine 178s === RUN TestDumpPolicies/One_GPO_with_rules 178s === PAUSE TestDumpPolicies/One_GPO_with_rules 178s === CONT TestFormat/GPO_with_rules,_override_hidden 178s === CONT TestFormat/GPO_with_rules,_appending_to_existing_treated_key 178s === CONT TestFormat/GPO_with_rules 178s === CONT TestFormat/GPO_and_assets_with_rules,_append_is_overridden_after_a_topmost_override 178s === CONT TestNewFromCache/Error_on_no_policies_cache 178s === CONT TestNewFromCache/Error_on_invalid_assets_db 178s --- PASS: TestFormat (0.00s) 178s --- PASS: TestFormat/GPO_with_rules_and_overrides,_no_rules_processed (0.00s) 178s --- PASS: TestFormat/GPO_summary (0.00s) 178s --- PASS: TestFormat/GPO_and_assets_with_rules,_appending_to_same_key_do_not_add_to_processed_rules (0.00s) 178s --- PASS: TestFormat/GPO_with_rules,_override_disabled_key (0.00s) 178s --- PASS: TestFormat/GPO_with_rules,_override_displayed (0.00s) 178s --- PASS: TestFormat/GPO_with_rules,_override_hidden (0.00s) 178s --- PASS: TestFormat/GPO_with_rules,_appending_to_existing_treated_key (0.00s) 178s --- PASS: TestFormat/GPO_with_rules (0.00s) 178s --- PASS: TestFormat/GPO_and_assets_with_rules,_append_is_overridden_after_a_topmost_override (0.00s) 178s === CONT TestNewFromCache/Error_on_invalid_policies_cache 178s === CONT TestNew/Error_on_invalid_assets_db 178s === CONT TestNewFromCache/With_assets 178s === CONT TestNew/No_gpos 178s === CONT TestNew/With_assets 178s === CONT TestNew/gpos_only 178s --- PASS: TestNew (0.00s) 178s --- PASS: TestNew/Error_on_assets_db_does_not_exists (0.00s) 178s --- PASS: TestNew/Error_on_invalid_assets_db (0.00s) 178s --- PASS: TestNew/No_gpos (0.00s) 178s --- PASS: TestNew/With_assets (0.00s) 178s --- PASS: TestNew/gpos_only (0.00s) 178s === CONT TestSave/With_assets 178s --- PASS: TestNewFromCache (0.00s) 178s --- PASS: TestNewFromCache/gpos_only (0.00s) 178s --- PASS: TestNewFromCache/Error_on_no_policies_cache (0.00s) 178s --- PASS: TestNewFromCache/Error_on_invalid_assets_db (0.00s) 178s --- PASS: TestNewFromCache/Error_on_invalid_policies_cache (0.00s) 178s --- PASS: TestNewFromCache/With_assets (0.00s) 178s === CONT TestGetUniqueRules 178s === RUN TestGetUniqueRules/Order_key_ascii 178s === PAUSE TestGetUniqueRules/Order_key_ascii 178s === RUN TestGetUniqueRules/Multiple_domains,_different_GPOs 178s === PAUSE TestGetUniqueRules/Multiple_domains,_different_GPOs 178s === RUN TestGetUniqueRules/Two_policies,_with_overrides 178s === PAUSE TestGetUniqueRules/Two_policies,_with_overrides 178s === RUN TestGetUniqueRules/Same_key_in_different_domains_are_kept_separated 178s === PAUSE TestGetUniqueRules/Same_key_in_different_domains_are_kept_separated 178s === RUN TestGetUniqueRules/Disabled_value_overrides_non_disabled_one 178s === PAUSE TestGetUniqueRules/Disabled_value_overrides_non_disabled_one 178s === RUN TestGetUniqueRules/Disabled_value_is_overridden 178s === PAUSE TestGetUniqueRules/Disabled_value_is_overridden 178s === RUN TestGetUniqueRules/Append_policy_entry,_one_GPO 178s === PAUSE TestGetUniqueRules/Append_policy_entry,_one_GPO 178s === RUN TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_first 178s === PAUSE TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_first 178s === RUN TestGetUniqueRules/One_GPO 178s === PAUSE TestGetUniqueRules/One_GPO 178s === RUN TestGetUniqueRules/More_policies,_with_multiple_overrides 178s === PAUSE TestGetUniqueRules/More_policies,_with_multiple_overrides 178s === RUN TestGetUniqueRules/Append_policy_entry,_one_GPO,_disabled_key_is_ignored 178s === PAUSE TestGetUniqueRules/Append_policy_entry,_one_GPO,_disabled_key_is_ignored 178s === RUN TestGetUniqueRules/Append_policy_entry,_multiple_GPOs 178s === PAUSE TestGetUniqueRules/Append_policy_entry,_multiple_GPOs 178s === RUN TestGetUniqueRules/Append_policy_entry,_closest_meta_wins 178s === PAUSE TestGetUniqueRules/Append_policy_entry,_closest_meta_wins 178s === RUN TestGetUniqueRules/Multiple_domains,_same_GPOs 178s === PAUSE TestGetUniqueRules/Multiple_domains,_same_GPOs 178s === RUN TestGetUniqueRules/Two_policies,_with_reversed_overrides 178s === PAUSE TestGetUniqueRules/Two_policies,_with_reversed_overrides 178s === RUN TestGetUniqueRules/Two_policies,_no_overrides 178s === PAUSE TestGetUniqueRules/Two_policies,_no_overrides 178s === CONT TestCompressAssets 178s === RUN TestGetUniqueRules/Two_policies,_no_overrides,_reversed 178s === PAUSE TestGetUniqueRules/Two_policies,_no_overrides,_reversed 178s === RUN TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_second 178s === PAUSE TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_second 178s === RUN TestGetUniqueRules/Mix_meta_on_GPOs,_furthest_policy_entry_is_append,_closest_is_override 178s === PAUSE TestGetUniqueRules/Mix_meta_on_GPOs,_furthest_policy_entry_is_append,_closest_is_override 178s === RUN TestGetUniqueRules/Mix_meta_on_GPOs,_closest_policy_entry_is_append,_furthest_override_is_ignored 178s === PAUSE TestGetUniqueRules/Mix_meta_on_GPOs,_closest_policy_entry_is_append,_furthest_override_is_ignored 178s === RUN TestCompressAssets/No_db 178s === PAUSE TestCompressAssets/No_db 178s === RUN TestCompressAssets/Existing_db 178s === CONT TestSaveAssetsTo 178s === PAUSE TestCompressAssets/Existing_db 178s === RUN TestSaveAssetsTo/Sub_directory 178s === RUN TestCompressAssets/Error_on_can’t_remove_existing_db 178s === PAUSE TestCompressAssets/Error_on_can’t_remove_existing_db 178s === PAUSE TestSaveAssetsTo/Sub_directory 178s === RUN TestCompressAssets/Error_on_non_existing_directory 178s === PAUSE TestCompressAssets/Error_on_non_existing_directory 178s === CONT TestCachePolicies 178s === RUN TestSaveAssetsTo/File 178s === PAUSE TestSaveAssetsTo/File 178s === RUN TestSaveAssetsTo/Error_on_unexisting_relSrc_in_cache 178s === PAUSE TestSaveAssetsTo/Error_on_unexisting_relSrc_in_cache 178s === RUN TestSaveAssetsTo/Error_on_empty_relSrc 178s === PAUSE TestSaveAssetsTo/Error_on_empty_relSrc 178s === RUN TestSaveAssetsTo/Error_on_read_only_dest 178s === PAUSE TestSaveAssetsTo/Error_on_read_only_dest 178s === RUN TestSaveAssetsTo/Error_on_file_read_only_existing_in_dest 178s === PAUSE TestSaveAssetsTo/Error_on_file_read_only_existing_in_dest 178s === RUN TestSaveAssetsTo/Error_on_can't_chown_to_user 178s === PAUSE TestSaveAssetsTo/Error_on_can't_chown_to_user 178s === RUN TestSaveAssetsTo/Sub_directory_ending_with_slash 178s === PAUSE TestSaveAssetsTo/Sub_directory_ending_with_slash 178s === RUN TestSaveAssetsTo/Error_on_no_assets 178s === PAUSE TestSaveAssetsTo/Error_on_no_assets 178s === RUN TestSaveAssetsTo/Error_on_dest_already_exists 178s === PAUSE TestSaveAssetsTo/Error_on_dest_already_exists 178s === RUN TestSaveAssetsTo/Chown_directories_and_files_when_requested 178s === PAUSE TestSaveAssetsTo/Chown_directories_and_files_when_requested 178s === RUN TestSaveAssetsTo/All 178s === PAUSE TestSaveAssetsTo/All 178s === CONT TestSave/Existing_assets_cache_is_refreshed 178s --- PASS: TestCachePolicies (0.00s) 178s === CONT TestSave/Existing_policies_cache_is_refreshed 178s === CONT TestSave/Save_assets_on_existing_opened_file_does_not_segfault 178s === CONT TestSave/Error_on_can’t_remove_existing_assets 178s === CONT TestSave/Error_on_can’t_write_to_dest_dir 178s === CONT TestSave/Destdir_does_not_exists 178s === CONT TestSave/gpos_only 178s === CONT TestSave/Existing_cache_with_assets,_new_cache_with_no_assets 178s === CONT TestSave/Error_on_can’t_write_to_policies_base_dir 178s === CONT TestLastUpdateFor/Returns_user's_last_update_time 178s --- PASS: TestSave (0.00s) 178s --- PASS: TestSave/Can_refresh_on_existing_read_only_asset_file (0.00s) 178s --- PASS: TestSave/With_assets (0.00s) 178s --- PASS: TestSave/Existing_assets_cache_is_refreshed (0.00s) 178s --- PASS: TestSave/Existing_policies_cache_is_refreshed (0.00s) 178s --- PASS: TestSave/Save_assets_on_existing_opened_file_does_not_segfault (0.00s) 178s --- PASS: TestSave/Error_on_can’t_remove_existing_assets (0.00s) 178s --- PASS: TestSave/Error_on_can’t_write_to_dest_dir (0.00s) 178s --- PASS: TestSave/Destdir_does_not_exists (0.00s) 178s --- PASS: TestSave/gpos_only (0.00s) 178s --- PASS: TestSave/Error_on_can’t_write_to_policies_base_dir (0.00s) 178s --- PASS: TestSave/Existing_cache_with_assets,_new_cache_with_no_assets (0.00s) 178s === CONT TestLastUpdateFor/Error_when_target_does_not_exist 178s time="2025-10-18T16:23:06Z" level=info msg="Get policies last update time \"user\" (machine: false)" 178s time="2025-10-18T16:23:06Z" level=info msg="Get policies last update time \"does_not_exit\" (machine: false)" 178s === CONT TestLastUpdateFor/Returns_machine's_last_update_time 178s === CONT TestLastUpdateFor/Target_is_ignored_for_machine_request 178s time="2025-10-18T16:23:06Z" level=info msg="Get policies last update time \"does_not_exit\" (machine: true)" 178s time="2025-10-18T16:23:06Z" level=info msg="Get policies last update time \"autopkgtest\" (machine: true)" 178s === CONT TestDumpPolicies/Same_GPO_Machine_and_User_with_rules 178s --- PASS: TestLastUpdateFor (0.00s) 178s --- PASS: TestLastUpdateFor/Returns_user's_last_update_time (0.10s) 178s --- PASS: TestLastUpdateFor/Error_when_target_does_not_exist (0.10s) 178s --- PASS: TestLastUpdateFor/Target_is_ignored_for_machine_request (0.10s) 178s --- PASS: TestLastUpdateFor/Returns_machine's_last_update_time (0.10s) 178s === CONT TestDumpPolicies/Multiple_GPOs_with_rules,_no_override 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s === CONT TestDumpPolicies/One_GPO_with_rules 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s === CONT TestDumpPolicies/One_GPO_User_+_Machine 178s === CONT TestDumpPolicies/One_GPO_Machine 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for autopkgtest" 178s === CONT TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_hidden 178s === CONT TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_shown 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s === CONT TestDumpPolicies/Multiple_GPOs_with_rules,_override,_shown 178s === CONT TestDumpPolicies/Multiple_GPOs_with_rules,_override_hidden 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s === CONT TestDumpPolicies/Multiple_GPOs 178s === CONT TestDumpPolicies/Same_GPO_Machine_and_User_with_rules_and_overrides 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s === CONT TestDumpPolicies/Same_GPO_Machine_and_User 178s === CONT TestDumpPolicies/Machine_only_GPO_with_rules 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for autopkgtest" 178s === CONT TestDumpPolicies/One_GPO_User 178s === CONT TestDumpPolicies/Error_on_missing_machine_cache_when_targeting_user 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s === CONT TestDumpPolicies/Error_on_missing_target_cache 178s === CONT TestGetUniqueRules/Multiple_domains,_same_GPOs 178s === CONT TestGetUniqueRules/Order_key_ascii 178s === CONT TestGetUniqueRules/Append_policy_entry,_closest_meta_wins 178s === CONT TestGetUniqueRules/Append_policy_entry,_multiple_GPOs 178s === CONT TestGetUniqueRules/Append_policy_entry,_one_GPO,_disabled_key_is_ignored 178s === CONT TestGetUniqueRules/More_policies,_with_multiple_overrides 178s === CONT TestGetUniqueRules/One_GPO 178s === CONT TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_first 178s === CONT TestGetUniqueRules/Append_policy_entry,_one_GPO 178s === CONT TestGetUniqueRules/Disabled_value_is_overridden 178s === CONT TestGetUniqueRules/Disabled_value_overrides_non_disabled_one 178s === CONT TestGetUniqueRules/Same_key_in_different_domains_are_kept_separated 178s === CONT TestGetUniqueRules/Two_policies,_with_overrides 178s === CONT TestGetUniqueRules/Multiple_domains,_different_GPOs 178s === CONT TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_second 178s === CONT TestGetUniqueRules/Mix_meta_on_GPOs,_closest_policy_entry_is_append,_furthest_override_is_ignored 178s === CONT TestGetUniqueRules/Mix_meta_on_GPOs,_furthest_policy_entry_is_append,_closest_is_override 178s === CONT TestGetUniqueRules/Two_policies,_no_overrides 178s === CONT TestGetUniqueRules/Two_policies,_no_overrides,_reversed 178s === CONT TestGetUniqueRules/Two_policies,_with_reversed_overrides 178s --- PASS: TestGetUniqueRules (0.00s) 178s --- PASS: TestGetUniqueRules/Multiple_domains,_same_GPOs (0.00s) 178s --- PASS: TestGetUniqueRules/Order_key_ascii (0.00s) 178s --- PASS: TestGetUniqueRules/Append_policy_entry,_closest_meta_wins (0.00s) 178s --- PASS: TestGetUniqueRules/Append_policy_entry,_multiple_GPOs (0.00s) 178s --- PASS: TestGetUniqueRules/Append_policy_entry,_one_GPO,_disabled_key_is_ignored (0.00s) 178s --- PASS: TestGetUniqueRules/More_policies,_with_multiple_overrides (0.00s) 178s --- PASS: TestGetUniqueRules/One_GPO (0.00s) 178s --- PASS: TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_first (0.00s) 178s --- PASS: TestGetUniqueRules/Append_policy_entry,_one_GPO (0.00s) 178s --- PASS: TestGetUniqueRules/Disabled_value_is_overridden (0.00s) 178s --- PASS: TestGetUniqueRules/Disabled_value_overrides_non_disabled_one (0.00s) 178s --- PASS: TestGetUniqueRules/Same_key_in_different_domains_are_kept_separated (0.00s) 178s --- PASS: TestGetUniqueRules/Two_policies,_with_overrides (0.00s) 178s --- PASS: TestGetUniqueRules/Multiple_domains,_different_GPOs (0.00s) 178s --- PASS: TestGetUniqueRules/Append_policy_entry,_multiple_GPOs,_disabled_key_is_ignored,_second (0.00s) 178s --- PASS: TestGetUniqueRules/Mix_meta_on_GPOs,_closest_policy_entry_is_append,_furthest_override_is_ignored (0.00s) 178s --- PASS: TestGetUniqueRules/Mix_meta_on_GPOs,_furthest_policy_entry_is_append,_closest_is_override (0.00s) 178s --- PASS: TestGetUniqueRules/Two_policies,_no_overrides (0.00s) 178s --- PASS: TestGetUniqueRules/Two_policies,_no_overrides,_reversed (0.00s) 178s --- PASS: TestGetUniqueRules/Two_policies,_with_reversed_overrides (0.00s) 178s === CONT TestCompressAssets/No_db 178s time="2025-10-18T16:23:06Z" level=info msg="Dumping policies for user" 178s time="2025-10-18T16:23:06Z" level=info msg="User \"user\" not found on cache." 178s === CONT TestSaveAssetsTo/Sub_directory 178s --- PASS: TestDumpPolicies (0.00s) 178s --- PASS: TestDumpPolicies/Multiple_GPOs_with_rules,_no_override (0.00s) 178s --- PASS: TestDumpPolicies/One_GPO_with_rules (0.00s) 178s --- PASS: TestDumpPolicies/Same_GPO_Machine_and_User_with_rules (0.00s) 178s --- PASS: TestDumpPolicies/One_GPO_Machine (0.00s) 178s --- PASS: TestDumpPolicies/One_GPO_User_+_Machine (0.00s) 178s --- PASS: TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_shown (0.00s) 178s --- PASS: TestDumpPolicies/Overrides_between_machine_and_user_GPOs,_hidden (0.00s) 178s --- PASS: TestDumpPolicies/Multiple_GPOs_with_rules,_override,_shown (0.00s) 178s --- PASS: TestDumpPolicies/Multiple_GPOs_with_rules,_override_hidden (0.00s) 178s --- PASS: TestDumpPolicies/Same_GPO_Machine_and_User_with_rules_and_overrides (0.00s) 178s --- PASS: TestDumpPolicies/Multiple_GPOs (0.00s) 178s --- PASS: TestDumpPolicies/Machine_only_GPO_with_rules (0.00s) 178s --- PASS: TestDumpPolicies/Same_GPO_Machine_and_User (0.00s) 178s --- PASS: TestDumpPolicies/One_GPO_User (0.00s) 178s --- PASS: TestDumpPolicies/Error_on_missing_machine_cache_when_targeting_user (0.00s) 178s --- PASS: TestDumpPolicies/Error_on_missing_target_cache (0.00s) 178s === CONT TestSaveAssetsTo/All 178s === CONT TestSaveAssetsTo/Chown_directories_and_files_when_requested 178s === CONT TestSaveAssetsTo/Error_on_dest_already_exists 178s === CONT TestSaveAssetsTo/Error_on_no_assets 178s === CONT TestSaveAssetsTo/Sub_directory_ending_with_slash 178s === CONT TestSaveAssetsTo/Error_on_can't_chown_to_user 178s === CONT TestSaveAssetsTo/Error_on_file_read_only_existing_in_dest 178s === CONT TestSaveAssetsTo/Error_on_read_only_dest 178s === CONT TestSaveAssetsTo/Error_on_empty_relSrc 178s === CONT TestSaveAssetsTo/Error_on_unexisting_relSrc_in_cache 178s === CONT TestSaveAssetsTo/File 178s === CONT TestCompressAssets/Error_on_can’t_remove_existing_db 178s --- PASS: TestSaveAssetsTo (0.00s) 178s --- PASS: TestSaveAssetsTo/Sub_directory (0.00s) 178s --- PASS: TestSaveAssetsTo/All (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_dest_already_exists (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_no_assets (0.00s) 178s --- PASS: TestSaveAssetsTo/Sub_directory_ending_with_slash (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_can't_chown_to_user (0.00s) 178s --- PASS: TestSaveAssetsTo/Chown_directories_and_files_when_requested (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_read_only_dest (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_file_read_only_existing_in_dest (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_empty_relSrc (0.00s) 178s --- PASS: TestSaveAssetsTo/Error_on_unexisting_relSrc_in_cache (0.00s) 178s --- PASS: TestSaveAssetsTo/File (0.00s) 178s === CONT TestCompressAssets/Error_on_non_existing_directory 178s === CONT TestCompressAssets/Existing_db 178s --- PASS: TestCompressAssets (0.00s) 178s --- PASS: TestCompressAssets/No_db (0.01s) 178s --- PASS: TestCompressAssets/Error_on_non_existing_directory (0.00s) 178s --- PASS: TestCompressAssets/Error_on_can’t_remove_existing_db (0.00s) 178s --- PASS: TestCompressAssets/Existing_db (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/policies 0.320s 178s === RUN TestApplyPolicy 178s === PAUSE TestApplyPolicy 178s === RUN TestMockApparmorParser 178s --- PASS: TestMockApparmorParser (0.00s) 178s === CONT TestApplyPolicy 178s === RUN TestApplyPolicy/User,_no_entries,_existing_user_profile_is_deleted 178s === PAUSE TestApplyPolicy/User,_no_entries,_existing_user_profile_is_deleted 178s === RUN TestApplyPolicy/User,_error_on_save_assets_failing 178s === PAUSE TestApplyPolicy/User,_error_on_save_assets_failing 178s === RUN TestApplyPolicy/Error_on_absent_loaded_policies_file 178s === PAUSE TestApplyPolicy/Error_on_absent_loaded_policies_file 178s === RUN TestApplyPolicy/Error_on_save_assets_dumping_failing 178s === PAUSE TestApplyPolicy/Error_on_save_assets_dumping_failing 178s === RUN TestApplyPolicy/Computer,_blank_line_profiles 178s === PAUSE TestApplyPolicy/Computer,_blank_line_profiles 178s === RUN TestApplyPolicy/User,_error_on_empty_user_profile 178s === PAUSE TestApplyPolicy/User,_error_on_empty_user_profile 178s === RUN TestApplyPolicy/Error_on_loading_profiles_failing 178s === PAUSE TestApplyPolicy/Error_on_loading_profiles_failing 178s === RUN TestApplyPolicy/Existing_.old_directory_is_removed 178s === PAUSE TestApplyPolicy/Existing_.old_directory_is_removed 178s === RUN TestApplyPolicy/User,_valid_mapping 178s === PAUSE TestApplyPolicy/User,_valid_mapping 178s === RUN TestApplyPolicy/User,_valid_mapping,_unchanged_content 178s === PAUSE TestApplyPolicy/User,_valid_mapping,_unchanged_content 178s === RUN TestApplyPolicy/User,_no_user_profiles,_machine_profiles_are_unloaded 178s === PAUSE TestApplyPolicy/User,_no_user_profiles,_machine_profiles_are_unloaded 178s === RUN TestApplyPolicy/User,_error_on_multiple_profiles 178s === PAUSE TestApplyPolicy/User,_error_on_multiple_profiles 178s === RUN TestApplyPolicy/Error_on_preprocessing_old_profiles_failing 178s === PAUSE TestApplyPolicy/Error_on_preprocessing_old_profiles_failing 178s === RUN TestApplyPolicy/Error_on_unloading_old_profiles_failing 178s === PAUSE TestApplyPolicy/Error_on_unloading_old_profiles_failing 178s === RUN TestApplyPolicy/Computer,_one_profile 178s === PAUSE TestApplyPolicy/Computer,_one_profile 178s === RUN TestApplyPolicy/Computer,_user_policies_are_unloaded 178s === PAUSE TestApplyPolicy/Computer,_user_policies_are_unloaded 178s === RUN TestApplyPolicy/User,_no_machine_profiles 178s === PAUSE TestApplyPolicy/User,_no_machine_profiles 178s === RUN TestApplyPolicy/User,_error_on_overwriting_profile_contents 178s === PAUSE TestApplyPolicy/User,_error_on_overwriting_profile_contents 178s === RUN TestApplyPolicy/Error_on_absent_profile 178s === PAUSE TestApplyPolicy/Error_on_absent_profile 178s === RUN TestApplyPolicy/Error_on_read-only_machine_directory 178s === PAUSE TestApplyPolicy/Error_on_read-only_machine_directory 178s === RUN TestApplyPolicy/Error_on_read-only_machine_directory,_no_entries 178s === PAUSE TestApplyPolicy/Error_on_read-only_machine_directory,_no_entries 178s === RUN TestApplyPolicy/Error_on_read-only_.old_directory 178s === PAUSE TestApplyPolicy/Error_on_read-only_.old_directory 178s === RUN TestApplyPolicy/No_apparmor_parser_and_entries 178s === PAUSE TestApplyPolicy/No_apparmor_parser_and_entries 178s === RUN TestApplyPolicy/Computer,_profiles_with_whitespace 178s === PAUSE TestApplyPolicy/Computer,_profiles_with_whitespace 178s === RUN TestApplyPolicy/Computer,_previous_profiles_are_unloaded 178s === PAUSE TestApplyPolicy/Computer,_previous_profiles_are_unloaded 178s === RUN TestApplyPolicy/No_profiles,_existing_rules_are_removed 178s === PAUSE TestApplyPolicy/No_profiles,_existing_rules_are_removed 178s === RUN TestApplyPolicy/No_profiles,_apparmor_directory_absent 178s === PAUSE TestApplyPolicy/No_profiles,_apparmor_directory_absent 178s === RUN TestApplyPolicy/User,_error_on_invalid_user_profile,_delete_previous 178s === PAUSE TestApplyPolicy/User,_error_on_invalid_user_profile,_delete_previous 178s === RUN TestApplyPolicy/Error_on_file_as_a_directory 178s === PAUSE TestApplyPolicy/Error_on_file_as_a_directory 178s === RUN TestApplyPolicy/Error_on_preprocessing_new_profiles_failing 178s === PAUSE TestApplyPolicy/Error_on_preprocessing_new_profiles_failing 178s === RUN TestApplyPolicy/Computer,_multiple_profiles, 178s === PAUSE TestApplyPolicy/Computer,_multiple_profiles, 178s === RUN TestApplyPolicy/Error_on_profile_being_a_directory 178s === PAUSE TestApplyPolicy/Error_on_profile_being_a_directory 178s === RUN TestApplyPolicy/Computer,_duplicated_profiles 178s === PAUSE TestApplyPolicy/Computer,_duplicated_profiles 178s === RUN TestApplyPolicy/Unexpected_entry_key 178s === PAUSE TestApplyPolicy/Unexpected_entry_key 178s === RUN TestApplyPolicy/User,_error_on_invalid_user_profile,_restore_previous 178s === PAUSE TestApplyPolicy/User,_error_on_invalid_user_profile,_restore_previous 178s === RUN TestApplyPolicy/Read-only_root_directory_and_no_entries 178s === PAUSE TestApplyPolicy/Read-only_root_directory_and_no_entries 178s === RUN TestApplyPolicy/Error_on_unloading_all_profiles_failing 178s === PAUSE TestApplyPolicy/Error_on_unloading_all_profiles_failing 178s === RUN TestApplyPolicy/Error_on_removing_unused_assets_after_dump 178s === PAUSE TestApplyPolicy/Error_on_removing_unused_assets_after_dump 178s === RUN TestApplyPolicy/Computer,_whitespace-only_value 178s === PAUSE TestApplyPolicy/Computer,_whitespace-only_value 178s === RUN TestApplyPolicy/Existing_.new_directory_is_removed 178s === PAUSE TestApplyPolicy/Existing_.new_directory_is_removed 178s === RUN TestApplyPolicy/No_apparmor_parser_and_no_entries 178s === PAUSE TestApplyPolicy/No_apparmor_parser_and_no_entries 178s === RUN TestApplyPolicy/Error_on_read-only_.new_directory 178s === PAUSE TestApplyPolicy/Error_on_read-only_.new_directory 178s === RUN TestApplyPolicy/Error_on_read-only_root_directory_with_entries 178s === PAUSE TestApplyPolicy/Error_on_read-only_root_directory_with_entries 178s === RUN TestApplyPolicy/Computer,_only_blank_profiles 178s === PAUSE TestApplyPolicy/Computer,_only_blank_profiles 178s === CONT TestApplyPolicy/User,_no_entries,_existing_user_profile_is_deleted 178s === CONT TestApplyPolicy/No_apparmor_parser_and_entries 178s === CONT TestApplyPolicy/Error_on_read-only_.old_directory 178s === CONT TestApplyPolicy/Error_on_read-only_machine_directory,_no_entries 178s === CONT TestApplyPolicy/Error_on_read-only_machine_directory 178s === CONT TestApplyPolicy/Error_on_absent_profile 178s === CONT TestApplyPolicy/User,_error_on_overwriting_profile_contents 178s === CONT TestApplyPolicy/User,_no_machine_profiles 178s time="2025-10-18T16:23:07Z" level=warning msg="No apparmor machine profiles configured for this machine, skipping reload" 178s === CONT TestApplyPolicy/Computer,_user_policies_are_unloaded 178s === CONT TestApplyPolicy/Computer,_one_profile 178s === CONT TestApplyPolicy/Error_on_unloading_old_profiles_failing 178s === CONT TestApplyPolicy/Error_on_preprocessing_old_profiles_failing 178s === CONT TestApplyPolicy/User,_error_on_multiple_profiles 178s === CONT TestApplyPolicy/User,_no_user_profiles,_machine_profiles_are_unloaded 178s === CONT TestApplyPolicy/User,_valid_mapping,_unchanged_content 178s === CONT TestApplyPolicy/User,_valid_mapping 178s === CONT TestApplyPolicy/Existing_.old_directory_is_removed 178s === CONT TestApplyPolicy/Error_on_loading_profiles_failing 178s === CONT TestApplyPolicy/User,_error_on_empty_user_profile 178s === CONT TestApplyPolicy/Computer,_blank_line_profiles 178s === CONT TestApplyPolicy/Error_on_save_assets_dumping_failing 178s === CONT TestApplyPolicy/Error_on_absent_loaded_policies_file 178s === CONT TestApplyPolicy/User,_error_on_save_assets_failing 178s === CONT TestApplyPolicy/Unexpected_entry_key 178s === CONT TestApplyPolicy/Computer,_only_blank_profiles 178s === CONT TestApplyPolicy/Error_on_read-only_root_directory_with_entries 178s === CONT TestApplyPolicy/Error_on_read-only_.new_directory 178s === CONT TestApplyPolicy/No_apparmor_parser_and_no_entries 178s time="2025-10-18T16:23:07Z" level=warning msg="Apparmor is not available on this system: exec: \"this-definitely-does-not-exist\": executable file not found in $PATH" 178s === CONT TestApplyPolicy/Existing_.new_directory_is_removed 178s === CONT TestApplyPolicy/Computer,_whitespace-only_value 178s === CONT TestApplyPolicy/Error_on_removing_unused_assets_after_dump 178s time="2025-10-18T16:23:07Z" level=warning msg="Couldn't remove new apparmor directory: unlinkat /tmp/TestApplyPolicyError_on_removing_unused_assets_after_dump2076803268/001/machine/usr.bin.bar: permission denied" 178s time="2025-10-18T16:23:07Z" level=warning msg="Couldn't restore previous apparmor directory: rename /tmp/TestApplyPolicyError_on_removing_unused_assets_after_dump2076803268/001/machine.old /tmp/TestApplyPolicyError_on_removing_unused_assets_after_dump2076803268/001/machine: file exists" 178s === CONT TestApplyPolicy/Error_on_unloading_all_profiles_failing 178s === CONT TestApplyPolicy/Read-only_root_directory_and_no_entries 178s === CONT TestApplyPolicy/User,_error_on_invalid_user_profile,_restore_previous 178s === CONT TestApplyPolicy/Error_on_file_as_a_directory 178s === CONT TestApplyPolicy/Computer,_duplicated_profiles 178s === CONT TestApplyPolicy/Error_on_profile_being_a_directory 178s === CONT TestApplyPolicy/Computer,_multiple_profiles, 178s === CONT TestApplyPolicy/Error_on_preprocessing_new_profiles_failing 178s === CONT TestApplyPolicy/No_profiles,_existing_rules_are_removed 178s === CONT TestApplyPolicy/User,_error_on_invalid_user_profile,_delete_previous 178s === CONT TestApplyPolicy/No_profiles,_apparmor_directory_absent 178s === CONT TestApplyPolicy/Computer,_previous_profiles_are_unloaded 178s === CONT TestApplyPolicy/Computer,_profiles_with_whitespace 178s --- PASS: TestApplyPolicy (0.00s) 178s --- PASS: TestApplyPolicy/No_apparmor_parser_and_entries (0.00s) 178s --- PASS: TestApplyPolicy/User,_no_entries,_existing_user_profile_is_deleted (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_read-only_.old_directory (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_read-only_machine_directory,_no_entries (0.01s) 178s --- PASS: TestApplyPolicy/Error_on_absent_profile (0.00s) 178s --- PASS: TestApplyPolicy/User,_error_on_overwriting_profile_contents (0.00s) 178s --- PASS: TestApplyPolicy/User,_no_machine_profiles (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_read-only_machine_directory (0.02s) 178s --- PASS: TestApplyPolicy/Computer,_user_policies_are_unloaded (0.01s) 178s --- PASS: TestApplyPolicy/Computer,_one_profile (0.01s) 178s --- PASS: TestApplyPolicy/Error_on_unloading_old_profiles_failing (0.02s) 178s --- PASS: TestApplyPolicy/Error_on_preprocessing_old_profiles_failing (0.01s) 178s --- PASS: TestApplyPolicy/User,_error_on_multiple_profiles (0.00s) 178s --- PASS: TestApplyPolicy/User,_valid_mapping,_unchanged_content (0.00s) 178s --- PASS: TestApplyPolicy/User,_valid_mapping (0.01s) 178s --- PASS: TestApplyPolicy/User,_no_user_profiles,_machine_profiles_are_unloaded (0.01s) 178s --- PASS: TestApplyPolicy/Existing_.old_directory_is_removed (0.01s) 178s --- PASS: TestApplyPolicy/User,_error_on_empty_user_profile (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_loading_profiles_failing (0.01s) 178s --- PASS: TestApplyPolicy/Error_on_save_assets_dumping_failing (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_absent_loaded_policies_file (0.00s) 178s --- PASS: TestApplyPolicy/User,_error_on_save_assets_failing (0.00s) 178s --- PASS: TestApplyPolicy/Unexpected_entry_key (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_only_blank_profiles (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_read-only_root_directory_with_entries (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_read-only_.new_directory (0.00s) 178s --- PASS: TestApplyPolicy/No_apparmor_parser_and_no_entries (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_blank_line_profiles (0.01s) 178s --- PASS: TestApplyPolicy/Computer,_whitespace-only_value (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_removing_unused_assets_after_dump (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_unloading_all_profiles_failing (0.01s) 178s --- PASS: TestApplyPolicy/Existing_.new_directory_is_removed (0.01s) 178s --- PASS: TestApplyPolicy/Read-only_root_directory_and_no_entries (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_file_as_a_directory (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_profile_being_a_directory (0.00s) 178s --- PASS: TestApplyPolicy/User,_error_on_invalid_user_profile,_restore_previous (0.01s) 178s --- PASS: TestApplyPolicy/Computer,_duplicated_profiles (0.01s) 178s --- PASS: TestApplyPolicy/Computer,_multiple_profiles, (0.01s) 178s --- PASS: TestApplyPolicy/Error_on_preprocessing_new_profiles_failing (0.01s) 178s --- PASS: TestApplyPolicy/User,_error_on_invalid_user_profile,_delete_previous (0.00s) 178s --- PASS: TestApplyPolicy/No_profiles,_apparmor_directory_absent (0.00s) 178s --- PASS: TestApplyPolicy/No_profiles,_existing_rules_are_removed (0.01s) 178s --- PASS: TestApplyPolicy/Computer,_profiles_with_whitespace (0.01s) 178s --- PASS: TestApplyPolicy/Computer,_previous_profiles_are_unloaded (0.02s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/policies/apparmor 0.135s 178s === RUN TestCertAutoenrollScript 178s === RUN TestCertAutoenrollScript/Enroll_with_simple_configuration_and_debug_enabled 178s === RUN TestCertAutoenrollScript/Unenroll 178s === RUN TestCertAutoenrollScript/Enroll_with_cepces_not_installed 178s === RUN TestCertAutoenrollScript/Error_on_missing_arguments 178s === RUN TestCertAutoenrollScript/Error_on_invalid_flags 178s === RUN TestCertAutoenrollScript/Error_on_invalid_JSON 178s === RUN TestCertAutoenrollScript/Error_on_invalid_JSON_keys 178s === RUN TestCertAutoenrollScript/Error_on_invalid_JSON_structure 178s === RUN TestCertAutoenrollScript/Enroll_with_empty_advanced_configuration 178s === RUN TestCertAutoenrollScript/Enroll_with_valid_advanced_configuration 178s === RUN TestCertAutoenrollScript/Error_on_read-only_path 178s === RUN TestCertAutoenrollScript/Enroll_with_simple_configuration 178s === RUN TestCertAutoenrollScript/Error_on_unenroll_failure 178s === RUN TestCertAutoenrollScript/Enroll_with_certmonger_not_installed 178s === RUN TestCertAutoenrollScript/Error_on_enroll_failure 178s --- PASS: TestCertAutoenrollScript (0.61s) 178s --- PASS: TestCertAutoenrollScript/Enroll_with_simple_configuration_and_debug_enabled (0.04s) 178s --- PASS: TestCertAutoenrollScript/Unenroll (0.04s) 178s --- PASS: TestCertAutoenrollScript/Enroll_with_cepces_not_installed (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_missing_arguments (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_invalid_flags (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_invalid_JSON (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_invalid_JSON_keys (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_invalid_JSON_structure (0.04s) 178s --- PASS: TestCertAutoenrollScript/Enroll_with_empty_advanced_configuration (0.04s) 178s --- PASS: TestCertAutoenrollScript/Enroll_with_valid_advanced_configuration (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_read-only_path (0.04s) 178s --- PASS: TestCertAutoenrollScript/Enroll_with_simple_configuration (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_unenroll_failure (0.06s) 178s --- PASS: TestCertAutoenrollScript/Enroll_with_certmonger_not_installed (0.04s) 178s --- PASS: TestCertAutoenrollScript/Error_on_enroll_failure (0.05s) 178s === RUN TestApplyPolicy 178s === RUN TestApplyPolicy/Computer,_no_entries 178s === RUN TestApplyPolicy/Computer,_no_entries,_Samba_cache_present 178s time="2025-10-18T16:23:08Z" level=info msg="Certificate autoenrollment script ran successfully\n" 178s === RUN TestApplyPolicy/Computer,_autoenroll_disabled 178s === RUN TestApplyPolicy/Computer,_domain_is_offline 178s === RUN TestApplyPolicy/Computer,_configured_to_unenroll 178s time="2025-10-18T16:23:08Z" level=info msg="Certificate autoenrollment script ran successfully\n" 178s === RUN TestApplyPolicy/Error_on_autoenroll_script_failure 178s === RUN TestApplyPolicy/Computer,_configured_to_enroll 178s time="2025-10-18T16:23:08Z" level=info msg="Certificate autoenrollment script ran successfully\n" 178s === RUN TestApplyPolicy/Computer,_configured_to_enroll,_advanced_configuration 178s time="2025-10-18T16:23:08Z" level=info msg="Certificate autoenrollment script ran successfully\n" 178s === RUN TestApplyPolicy/User,_autoenroll_not_supported 178s === RUN TestApplyPolicy/Error_on_invalid_autoenroll_value 178s === RUN TestApplyPolicy/Error_on_invalid_advanced_configuration_value 178s --- PASS: TestApplyPolicy (0.02s) 178s --- PASS: TestApplyPolicy/Computer,_no_entries (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_no_entries,_Samba_cache_present (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_autoenroll_disabled (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_domain_is_offline (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_configured_to_unenroll (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_autoenroll_script_failure (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_configured_to_enroll (0.00s) 178s --- PASS: TestApplyPolicy/Computer,_configured_to_enroll,_advanced_configuration (0.00s) 178s --- PASS: TestApplyPolicy/User,_autoenroll_not_supported (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_invalid_autoenroll_value (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_invalid_advanced_configuration_value (0.00s) 178s === RUN TestMockAutoenrollScript 178s --- PASS: TestMockAutoenrollScript (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/policies/certificate 0.634s 178s === RUN TestNormalize 178s === PAUSE TestNormalize 178s === RUN TestApplyPolicy 178s === PAUSE TestApplyPolicy 178s === CONT TestNormalize 178s === RUN TestNormalize/ai_without_leading_[ 178s === PAUSE TestNormalize/ai_without_leading_[ 178s === RUN TestNormalize/as_without_leading_[ 178s === PAUSE TestNormalize/as_without_leading_[ 178s === RUN TestNormalize/as_with_leading_and_ending_spaces_and_no_[] 178s === PAUSE TestNormalize/as_with_leading_and_ending_spaces_and_no_[] 178s === CONT TestApplyPolicy 178s === RUN TestApplyPolicy/Update_existing_profile_with_partial_db_append_them_without_repetition 178s === PAUSE TestApplyPolicy/Update_existing_profile_with_partial_db_append_them_without_repetition 178s === RUN TestApplyPolicy/User_updates_existing_value 178s === PAUSE TestApplyPolicy/User_updates_existing_value 178s === RUN TestApplyPolicy/Multiple_sections 178s === PAUSE TestApplyPolicy/Multiple_sections 178s === RUN TestApplyPolicy/Do_not_interfere_with_other_user_profile 178s === PAUSE TestApplyPolicy/Do_not_interfere_with_other_user_profile 178s === RUN TestApplyPolicy/User_updates_with_different_value 178s === PAUSE TestApplyPolicy/User_updates_with_different_value 178s === RUN TestNormalize/as_simple_quoted_as_with_spaces 178s === PAUSE TestNormalize/as_simple_quoted_as_with_spaces 178s === RUN TestNormalize/Multi-lines_as_with_empty_lines_strips_empty_elements 178s === PAUSE TestNormalize/Multi-lines_as_with_empty_lines_strips_empty_elements 178s === RUN TestApplyPolicy/Machine_updates_with_different_value 178s === PAUSE TestApplyPolicy/Machine_updates_with_different_value 178s === RUN TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_are_ignored 178s === PAUSE TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_are_ignored 178s === RUN TestNormalize/ai_empty_elements_separated_with_commas_are_kept 178s === PAUSE TestNormalize/ai_empty_elements_separated_with_commas_are_kept 178s === RUN TestNormalize/Multi-lines_ai 178s === PAUSE TestNormalize/Multi-lines_ai 178s === RUN TestNormalize/Multi-lines_ai_with_spaces_inside 178s === PAUSE TestNormalize/Multi-lines_ai_with_spaces_inside 178s === RUN TestNormalize/simple_quoted_string 178s === PAUSE TestNormalize/simple_quoted_string 178s === RUN TestNormalize/quoted_string_with_quotes 178s === PAUSE TestNormalize/quoted_string_with_quotes 178s === RUN TestNormalize/on_transformed_to_boolean 178s === PAUSE TestNormalize/on_transformed_to_boolean 178s === RUN TestNormalize/non_supported_is_reported_as_is 178s === PAUSE TestNormalize/non_supported_is_reported_as_is 178s === RUN TestApplyPolicy/Machine_updates_key_is_now_disabled 178s === RUN TestNormalize/Multi-lines_as_and_single_line_mix,_quoted 178s === PAUSE TestNormalize/Multi-lines_as_and_single_line_mix,_quoted 178s === RUN TestNormalize/one_escaped_quote 178s === PAUSE TestApplyPolicy/Machine_updates_key_is_now_disabled 178s === PAUSE TestNormalize/one_escaped_quote 178s === RUN TestNormalize/n_transformed_to_boolean 178s === PAUSE TestNormalize/n_transformed_to_boolean 178s === RUN TestApplyPolicy/No_surrounding_brackets_ai 178s === PAUSE TestApplyPolicy/No_surrounding_brackets_ai 178s === RUN TestApplyPolicy/Error_on_empty_meta 178s === RUN TestNormalize/as_with_leading_and_ending_spaces_and__[] 178s === PAUSE TestNormalize/as_with_leading_and_ending_spaces_and__[] 178s === PAUSE TestApplyPolicy/Error_on_empty_meta 178s === RUN TestNormalize/as_partially_quoted_can_lead_to_unexpect_result 178s === RUN TestApplyPolicy/Update_existing_correct_profile_stays_unchanged 178s === PAUSE TestApplyPolicy/Update_existing_correct_profile_stays_unchanged 178s === PAUSE TestNormalize/as_partially_quoted_can_lead_to_unexpect_result 178s === RUN TestApplyPolicy/Update_existing_correct_profile_with_trailing_spaces_are_removed 178s === PAUSE TestApplyPolicy/Update_existing_correct_profile_with_trailing_spaces_are_removed 178s === RUN TestNormalize/Multi-lines_as_with_leading_and_trailing_brackets 178s === PAUSE TestNormalize/Multi-lines_as_with_leading_and_trailing_brackets 178s === RUN TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_before_[]_are_ignored 178s === PAUSE TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_before_[]_are_ignored 178s === RUN TestApplyPolicy/Update_existing_profile_with_wrong_order_appends_them_in_correct_order 178s === PAUSE TestApplyPolicy/Update_existing_profile_with_wrong_order_appends_them_in_correct_order 178s === RUN TestApplyPolicy/Update_existing_profile_eliminates_adsys_DB_repetitions 178s === PAUSE TestApplyPolicy/Update_existing_profile_eliminates_adsys_DB_repetitions 178s === RUN TestApplyPolicy/Update_user_disabled_key_with_value 178s === PAUSE TestApplyPolicy/Update_user_disabled_key_with_value 178s === RUN TestApplyPolicy/No_surrounding_brackets_quoted_as 178s === RUN TestNormalize/with_spaces 178s === PAUSE TestNormalize/with_spaces 178s === PAUSE TestApplyPolicy/No_surrounding_brackets_quoted_as 178s === RUN TestNormalize/off_transformed_to_boolean 178s === PAUSE TestNormalize/off_transformed_to_boolean 178s === RUN TestApplyPolicy/Do_not_update_other_files_from_db 178s === RUN TestNormalize/simple_ai_with_no_spaces 178s === PAUSE TestApplyPolicy/Do_not_update_other_files_from_db 178s === PAUSE TestNormalize/simple_ai_with_no_spaces 178s === RUN TestApplyPolicy/Update_existing_profile_without_needed_db,_trailine_lines_are_removed 178s === PAUSE TestApplyPolicy/Update_existing_profile_without_needed_db,_trailine_lines_are_removed 178s === RUN TestNormalize/ai_with_spaces_inside 178s === RUN TestApplyPolicy/No_update_when_no_change 178s === PAUSE TestNormalize/ai_with_spaces_inside 178s === PAUSE TestApplyPolicy/No_update_when_no_change 178s === RUN TestNormalize/string_with_multiple_backslashes_escaped_quotes 178s === RUN TestApplyPolicy/Missing_machine_compiled_db_for_machine 178s === PAUSE TestNormalize/string_with_multiple_backslashes_escaped_quotes 178s === PAUSE TestApplyPolicy/Missing_machine_compiled_db_for_machine 178s === RUN TestNormalize/weird_case_true 178s === PAUSE TestNormalize/weird_case_true 178s === RUN TestApplyPolicy/Missing_user_compiled_db_for_user 178s === RUN TestNormalize/y_transformed_to_boolean 178s === PAUSE TestApplyPolicy/Missing_user_compiled_db_for_user 178s === PAUSE TestNormalize/y_transformed_to_boolean 178s === RUN TestApplyPolicy/Normalized_canonical_form_for_each_supported_key 178s === PAUSE TestApplyPolicy/Normalized_canonical_form_for_each_supported_key 178s === RUN TestApplyPolicy/No_surrounding_brackets_unquoted_multiple_as 178s === PAUSE TestApplyPolicy/No_surrounding_brackets_unquoted_multiple_as 178s === RUN TestApplyPolicy/No_surrounding_brackets_quoted_multiple_as 178s === PAUSE TestApplyPolicy/No_surrounding_brackets_quoted_multiple_as 178s === RUN TestApplyPolicy/Multi-lines_as_mixed_with_comma 178s === PAUSE TestApplyPolicy/Multi-lines_as_mixed_with_comma 178s === RUN TestApplyPolicy/Update_existing_profile_without_needed_db_append_them 178s === PAUSE TestApplyPolicy/Update_existing_profile_without_needed_db_append_them 178s === RUN TestApplyPolicy/New_user 178s === PAUSE TestApplyPolicy/New_user 178s === RUN TestApplyPolicy/Machine_updates_existing_value 178s === PAUSE TestApplyPolicy/Machine_updates_existing_value 178s === RUN TestApplyPolicy/Multiple_keys_same_category 178s === PAUSE TestApplyPolicy/Multiple_keys_same_category 178s === RUN TestApplyPolicy/Mixing_sections_and_keys_still_groups_sections 178s === PAUSE TestApplyPolicy/Mixing_sections_and_keys_still_groups_sections 178s === RUN TestApplyPolicy/Quoted_i 178s === PAUSE TestApplyPolicy/Quoted_i 178s === RUN TestNormalize/as_partially_quoted_unbalanced_start_can_lead_to_unexpect_result 178s === RUN TestApplyPolicy/Invalid_as_is_too_robust_to_produce_defaulting_values 178s === PAUSE TestNormalize/as_partially_quoted_unbalanced_start_can_lead_to_unexpect_result 178s === PAUSE TestApplyPolicy/Invalid_as_is_too_robust_to_produce_defaulting_values 178s === RUN TestNormalize/Multi-lines_as_with_consecutive_empty_lines_strip_empty_elements 178s === RUN TestApplyPolicy/Error_on_invalid_ai 178s === PAUSE TestNormalize/Multi-lines_as_with_consecutive_empty_lines_strip_empty_elements 178s === RUN TestNormalize/ai_with_leading_and_ending_spaces_and__[] 178s === PAUSE TestNormalize/ai_with_leading_and_ending_spaces_and__[] 178s === PAUSE TestApplyPolicy/Error_on_invalid_ai 178s === RUN TestNormalize/Multi-lines_ai_with_empty_lines_strips_empty_element 178s === RUN TestApplyPolicy/User_updates_key_is_now_disabled 178s === PAUSE TestNormalize/Multi-lines_ai_with_empty_lines_strips_empty_element 178s === RUN TestNormalize/simple_unquoted_string 178s === PAUSE TestNormalize/simple_unquoted_string 178s === RUN TestNormalize/simple_boolean_true 178s === PAUSE TestNormalize/simple_boolean_true 178s === RUN TestNormalize/simple_quoted_as 178s === PAUSE TestNormalize/simple_quoted_as 178s === RUN TestNormalize/as_empty_elements_separated_with_commas_are_kept 178s === PAUSE TestNormalize/as_empty_elements_separated_with_commas_are_kept 178s === RUN TestNormalize/simple_ai 178s === PAUSE TestNormalize/simple_ai 178s === RUN TestNormalize/string_with_escaped_quotes 178s === PAUSE TestNormalize/string_with_escaped_quotes 178s === RUN TestNormalize/one_quote 178s === PAUSE TestNormalize/one_quote 178s === RUN TestNormalize/unquoted_string_with_quotes 178s === PAUSE TestNormalize/unquoted_string_with_quotes 178s === RUN TestNormalize/weird_case_false 178s === PAUSE TestNormalize/weird_case_false 178s === RUN TestNormalize/as_partially_quoted_unbalanced_end_can_lead_to_unexpect_result 178s === PAUSE TestNormalize/as_partially_quoted_unbalanced_end_can_lead_to_unexpect_result 178s === RUN TestNormalize/Multi-lines_as_with_quoted_','_is_supported 178s === PAUSE TestNormalize/Multi-lines_as_with_quoted_','_is_supported 178s === RUN TestNormalize/Multi-lines_as_with_all_unquoted_','_will_split 178s === PAUSE TestNormalize/Multi-lines_as_with_all_unquoted_','_will_split 178s === RUN TestNormalize/Multi-lines_ai_with_leading_and_trailing_brackets 178s === PAUSE TestApplyPolicy/User_updates_key_is_now_disabled 178s === PAUSE TestNormalize/Multi-lines_ai_with_leading_and_trailing_brackets 178s === RUN TestApplyPolicy/First_boot 178s === RUN TestNormalize/Multi-lines_ai_with_consecutive_empty_lines_strips_empty_element 178s === PAUSE TestApplyPolicy/First_boot 178s === RUN TestApplyPolicy/Multiple_sections_with_disabled_keys 178s === PAUSE TestApplyPolicy/Multiple_sections_with_disabled_keys 178s === RUN TestApplyPolicy/Quoted_b 178s === PAUSE TestApplyPolicy/Quoted_b 178s === PAUSE TestNormalize/Multi-lines_ai_with_consecutive_empty_lines_strips_empty_element 178s === RUN TestNormalize/no_transformed_to_boolean 178s === RUN TestApplyPolicy/No_surrounding_brackets_multiple_ai 178s === PAUSE TestNormalize/no_transformed_to_boolean 178s === RUN TestNormalize/simple_unquoted_as 178s === PAUSE TestNormalize/simple_unquoted_as 178s === RUN TestNormalize/as_wrongly_quoted_will_consider_comma_as_part_of_the_string 178s === PAUSE TestApplyPolicy/No_surrounding_brackets_multiple_ai 178s === PAUSE TestNormalize/as_wrongly_quoted_will_consider_comma_as_part_of_the_string 178s === RUN TestApplyPolicy/Multi-lines_ai 178s === PAUSE TestApplyPolicy/Multi-lines_ai 178s === RUN TestNormalize/string_with_two_backslashes_don’t_escape_quotes 178s === RUN TestApplyPolicy/Error_when_machine_db_does_not_exist 178s === PAUSE TestApplyPolicy/Error_when_machine_db_does_not_exist 178s === RUN TestApplyPolicy/Update_machine_disabled_key_with_value 178s === PAUSE TestApplyPolicy/Update_machine_disabled_key_with_value 178s === RUN TestApplyPolicy/Missing_machine_compiled_db_for_user 178s === PAUSE TestApplyPolicy/Missing_machine_compiled_db_for_user 178s === RUN TestApplyPolicy/No_surrounding_brackets_unquoted_as 178s === PAUSE TestApplyPolicy/No_surrounding_brackets_unquoted_as 178s === RUN TestApplyPolicy/Multi-lines_ai_mixed_with_comma 178s === PAUSE TestApplyPolicy/Multi-lines_ai_mixed_with_comma 178s === RUN TestApplyPolicy/Error_on_invalid_value_for_unnormalized_type 178s === PAUSE TestNormalize/string_with_two_backslashes_don’t_escape_quotes 178s === RUN TestNormalize/as_without_ending_] 178s === PAUSE TestNormalize/as_without_ending_] 178s === RUN TestNormalize/Multi-lines_as_and_single_line_mix,_unquoted 178s === PAUSE TestApplyPolicy/Error_on_invalid_value_for_unnormalized_type 178s === PAUSE TestNormalize/Multi-lines_as_and_single_line_mix,_unquoted 178s === RUN TestApplyPolicy/Unquoted_string 178s === PAUSE TestApplyPolicy/Unquoted_string 178s === RUN TestApplyPolicy/Multi-lines_as 178s === RUN TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_after_[]_are_ignored 178s === PAUSE TestApplyPolicy/Multi-lines_as 178s === PAUSE TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_after_[]_are_ignored 178s === RUN TestApplyPolicy/Error_on_invalid_type 178s === PAUSE TestApplyPolicy/Error_on_invalid_type 178s === RUN TestNormalize/as_partially_quoted_with_comma_can_lead_to_unexpected_result 178s === PAUSE TestNormalize/as_partially_quoted_with_comma_can_lead_to_unexpected_result 178s === RUN TestNormalize/as_with_weird_composition_inception_will_be_quoted 178s === RUN TestApplyPolicy/No_policy_still_generates_a_valid_db 178s === PAUSE TestApplyPolicy/No_policy_still_generates_a_valid_db 178s === CONT TestApplyPolicy/Update_existing_profile_with_partial_db_append_them_without_repetition 178s === PAUSE TestNormalize/as_with_weird_composition_inception_will_be_quoted 178s === RUN TestNormalize/Multi-lines_as_unquoted 178s === PAUSE TestNormalize/Multi-lines_as_unquoted 178s === RUN TestNormalize/ai_with_leading_and_ending_spaces_and_no_[] 178s === PAUSE TestNormalize/ai_with_leading_and_ending_spaces_and_no_[] 178s === RUN TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_are_ignored 178s === PAUSE TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_are_ignored 178s === RUN TestNormalize/as_with_empty_quoted_can_lead_to_unexpect_result 178s === PAUSE TestNormalize/as_with_empty_quoted_can_lead_to_unexpect_result 178s === RUN TestNormalize/Multi-lines_as_with_spaces_inside 178s === PAUSE TestNormalize/Multi-lines_as_with_spaces_inside 178s === RUN TestNormalize/Multi-lines_as_with_explicit_empty_element 178s === PAUSE TestNormalize/Multi-lines_as_with_explicit_empty_element 178s === RUN TestNormalize/unmanaged_types_are_returned_as_is 178s === PAUSE TestNormalize/unmanaged_types_are_returned_as_is 178s === RUN TestNormalize/yes_transformed_to_boolean 178s === PAUSE TestNormalize/yes_transformed_to_boolean 178s === RUN TestNormalize/simple_as_with_no_spaces 178s === PAUSE TestNormalize/simple_as_with_no_spaces 178s === RUN TestNormalize/Multi-lines_as_quoted 178s === PAUSE TestNormalize/Multi-lines_as_quoted 178s === RUN TestNormalize/ai_without_ending_] 178s === PAUSE TestNormalize/ai_without_ending_] 178s === RUN TestNormalize/Multi-lines_ai_with_all_unquoted_','_will_split 178s === PAUSE TestNormalize/Multi-lines_ai_with_all_unquoted_','_will_split 178s === RUN TestNormalize/empty_quoted_string 178s === PAUSE TestNormalize/empty_quoted_string 178s === RUN TestNormalize/simple_boolean_false 178s === PAUSE TestNormalize/simple_boolean_false 178s === RUN TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_after_[]_are_ignored 178s === PAUSE TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_after_[]_are_ignored 178s === RUN TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_before_[]_are_ignored 178s === PAUSE TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_before_[]_are_ignored 178s === RUN TestNormalize/empty_unquoted_string 178s === PAUSE TestNormalize/empty_unquoted_string 178s === RUN TestNormalize/as_with_spaces_inside 178s === PAUSE TestNormalize/as_with_spaces_inside 178s === CONT TestApplyPolicy/New_user 178s === CONT TestApplyPolicy/No_policy_still_generates_a_valid_db 178s === CONT TestApplyPolicy/Error_on_invalid_type 178s === CONT TestApplyPolicy/Multi-lines_as 178s === CONT TestApplyPolicy/Unquoted_string 178s === CONT TestApplyPolicy/Error_on_invalid_value_for_unnormalized_type 178s === CONT TestApplyPolicy/Multi-lines_ai_mixed_with_comma 178s === CONT TestApplyPolicy/No_surrounding_brackets_unquoted_as 178s === CONT TestApplyPolicy/Missing_machine_compiled_db_for_user 178s === CONT TestApplyPolicy/Update_machine_disabled_key_with_value 178s === CONT TestApplyPolicy/Error_when_machine_db_does_not_exist 178s === CONT TestApplyPolicy/Multi-lines_ai 178s === CONT TestApplyPolicy/No_surrounding_brackets_multiple_ai 178s === CONT TestApplyPolicy/Quoted_b 178s === CONT TestApplyPolicy/Multiple_sections_with_disabled_keys 178s === CONT TestApplyPolicy/First_boot 178s === CONT TestApplyPolicy/User_updates_key_is_now_disabled 178s === CONT TestApplyPolicy/Error_on_invalid_ai 178s === CONT TestApplyPolicy/Invalid_as_is_too_robust_to_produce_defaulting_values 178s === CONT TestApplyPolicy/Quoted_i 178s === CONT TestApplyPolicy/Mixing_sections_and_keys_still_groups_sections 178s === CONT TestApplyPolicy/Multiple_keys_same_category 178s === CONT TestApplyPolicy/Machine_updates_existing_value 178s === CONT TestApplyPolicy/Update_user_disabled_key_with_value 178s === CONT TestApplyPolicy/Update_existing_profile_without_needed_db_append_them 178s === CONT TestApplyPolicy/Multi-lines_as_mixed_with_comma 178s === CONT TestApplyPolicy/No_surrounding_brackets_quoted_multiple_as 178s === CONT TestApplyPolicy/No_surrounding_brackets_unquoted_multiple_as 178s === CONT TestApplyPolicy/Normalized_canonical_form_for_each_supported_key 178s === CONT TestApplyPolicy/Missing_user_compiled_db_for_user 178s === CONT TestApplyPolicy/Missing_machine_compiled_db_for_machine 178s === CONT TestApplyPolicy/No_update_when_no_change 178s === CONT TestApplyPolicy/Update_existing_profile_without_needed_db,_trailine_lines_are_removed 178s === CONT TestApplyPolicy/No_surrounding_brackets_quoted_as 178s === CONT TestApplyPolicy/No_surrounding_brackets_ai 178s === CONT TestApplyPolicy/Update_existing_profile_eliminates_adsys_DB_repetitions 178s === CONT TestApplyPolicy/Do_not_update_other_files_from_db 178s === CONT TestApplyPolicy/Update_existing_profile_with_wrong_order_appends_them_in_correct_order 178s === CONT TestApplyPolicy/Update_existing_correct_profile_with_trailing_spaces_are_removed 178s === CONT TestApplyPolicy/Update_existing_correct_profile_stays_unchanged 178s === CONT TestApplyPolicy/Error_on_empty_meta 178s === CONT TestApplyPolicy/User_updates_with_different_value 178s === CONT TestApplyPolicy/Machine_updates_key_is_now_disabled 178s === CONT TestApplyPolicy/Machine_updates_with_different_value 178s === CONT TestApplyPolicy/Multiple_sections 178s === CONT TestApplyPolicy/Do_not_interfere_with_other_user_profile 178s === CONT TestApplyPolicy/User_updates_existing_value 178s === CONT TestNormalize/ai_without_leading_[ 178s === CONT TestNormalize/as_with_spaces_inside 178s === CONT TestNormalize/empty_unquoted_string 178s === CONT TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_before_[]_are_ignored 178s === CONT TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_after_[]_are_ignored 178s === CONT TestNormalize/simple_boolean_false 178s === CONT TestNormalize/empty_quoted_string 178s === CONT TestNormalize/Multi-lines_ai_with_all_unquoted_','_will_split 178s === CONT TestNormalize/ai_without_ending_] 178s === CONT TestNormalize/Multi-lines_as_quoted 178s === CONT TestNormalize/simple_as_with_no_spaces 178s === CONT TestNormalize/yes_transformed_to_boolean 178s === CONT TestNormalize/unmanaged_types_are_returned_as_is 178s === CONT TestNormalize/Multi-lines_as_with_explicit_empty_element 178s === CONT TestNormalize/Multi-lines_as_with_spaces_inside 178s === CONT TestNormalize/as_with_empty_quoted_can_lead_to_unexpect_result 178s === CONT TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_are_ignored 178s === CONT TestNormalize/ai_with_leading_and_ending_spaces_and_no_[] 178s === CONT TestNormalize/Multi-lines_as_unquoted 178s === CONT TestNormalize/as_with_weird_composition_inception_will_be_quoted 178s === CONT TestNormalize/as_partially_quoted_with_comma_can_lead_to_unexpected_result 178s === CONT TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_after_[]_are_ignored 178s === CONT TestNormalize/Multi-lines_as_and_single_line_mix,_unquoted 178s === CONT TestNormalize/as_without_ending_] 178s === CONT TestNormalize/string_with_two_backslashes_don’t_escape_quotes 178s === CONT TestNormalize/as_wrongly_quoted_will_consider_comma_as_part_of_the_string 178s === CONT TestNormalize/simple_unquoted_as 178s === CONT TestNormalize/no_transformed_to_boolean 178s === CONT TestNormalize/Multi-lines_ai_with_consecutive_empty_lines_strips_empty_element 178s === CONT TestNormalize/Multi-lines_ai_with_leading_and_trailing_brackets 178s === CONT TestNormalize/Multi-lines_as_with_all_unquoted_','_will_split 178s === CONT TestNormalize/Multi-lines_as_with_quoted_','_is_supported 178s === CONT TestNormalize/as_partially_quoted_unbalanced_end_can_lead_to_unexpect_result 178s === CONT TestNormalize/weird_case_false 178s === CONT TestNormalize/unquoted_string_with_quotes 178s === CONT TestNormalize/one_quote 178s === CONT TestNormalize/string_with_escaped_quotes 178s === CONT TestNormalize/simple_ai 178s === CONT TestNormalize/as_empty_elements_separated_with_commas_are_kept 178s === CONT TestNormalize/simple_quoted_as 178s === CONT TestNormalize/simple_boolean_true 178s === CONT TestNormalize/simple_unquoted_string 178s === CONT TestNormalize/Multi-lines_ai_with_empty_lines_strips_empty_element 178s === CONT TestNormalize/ai_with_leading_and_ending_spaces_and__[] 178s === CONT TestNormalize/Multi-lines_as_with_consecutive_empty_lines_strip_empty_elements 178s === CONT TestNormalize/as_partially_quoted_unbalanced_start_can_lead_to_unexpect_result 178s === CONT TestNormalize/y_transformed_to_boolean 178s === CONT TestNormalize/weird_case_true 178s === CONT TestNormalize/string_with_multiple_backslashes_escaped_quotes 178s === CONT TestNormalize/ai_with_spaces_inside 178s === CONT TestNormalize/simple_ai_with_no_spaces 178s === CONT TestNormalize/off_transformed_to_boolean 178s === CONT TestNormalize/with_spaces 178s === CONT TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_before_[]_are_ignored 178s === CONT TestNormalize/Multi-lines_as_with_leading_and_trailing_brackets 178s === CONT TestNormalize/as_partially_quoted_can_lead_to_unexpect_result 178s === CONT TestNormalize/as_with_leading_and_ending_spaces_and__[] 178s === CONT TestNormalize/n_transformed_to_boolean 178s === CONT TestNormalize/one_escaped_quote 178s === CONT TestNormalize/Multi-lines_as_and_single_line_mix,_quoted 178s === CONT TestNormalize/non_supported_is_reported_as_is 178s === CONT TestNormalize/on_transformed_to_boolean 178s === CONT TestNormalize/quoted_string_with_quotes 178s === CONT TestNormalize/simple_quoted_string 178s === CONT TestNormalize/Multi-lines_ai_with_spaces_inside 178s === CONT TestNormalize/Multi-lines_ai 178s === CONT TestNormalize/ai_empty_elements_separated_with_commas_are_kept 178s === CONT TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_are_ignored 178s === CONT TestNormalize/Multi-lines_as_with_empty_lines_strips_empty_elements 178s === CONT TestNormalize/as_simple_quoted_as_with_spaces 178s === CONT TestNormalize/as_with_leading_and_ending_spaces_and_no_[] 178s === CONT TestNormalize/as_without_leading_[ 178s --- PASS: TestNormalize (0.00s) 178s --- PASS: TestNormalize/ai_without_leading_[ (0.00s) 178s --- PASS: TestNormalize/as_with_spaces_inside (0.00s) 178s --- PASS: TestNormalize/empty_unquoted_string (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_before_[]_are_ignored (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_after_[]_are_ignored (0.00s) 178s --- PASS: TestNormalize/simple_boolean_false (0.00s) 178s --- PASS: TestNormalize/empty_quoted_string (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_all_unquoted_','_will_split (0.00s) 178s --- PASS: TestNormalize/ai_without_ending_] (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_quoted (0.00s) 178s --- PASS: TestNormalize/simple_as_with_no_spaces (0.00s) 178s --- PASS: TestNormalize/yes_transformed_to_boolean (0.00s) 178s --- PASS: TestNormalize/unmanaged_types_are_returned_as_is (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_explicit_empty_element (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_spaces_inside (0.00s) 178s --- PASS: TestNormalize/as_with_empty_quoted_can_lead_to_unexpect_result (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_are_ignored (0.00s) 178s --- PASS: TestNormalize/ai_with_leading_and_ending_spaces_and_no_[] (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_unquoted (0.00s) 178s --- PASS: TestNormalize/as_with_weird_composition_inception_will_be_quoted (0.00s) 178s --- PASS: TestNormalize/as_partially_quoted_with_comma_can_lead_to_unexpected_result (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_leading_or_trailing_empty_lines_after_[]_are_ignored (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_and_single_line_mix,_unquoted (0.00s) 178s --- PASS: TestNormalize/as_without_ending_] (0.00s) 178s --- PASS: TestNormalize/string_with_two_backslashes_don’t_escape_quotes (0.00s) 178s --- PASS: TestNormalize/as_wrongly_quoted_will_consider_comma_as_part_of_the_string (0.00s) 178s --- PASS: TestNormalize/simple_unquoted_as (0.00s) 178s --- PASS: TestNormalize/no_transformed_to_boolean (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_consecutive_empty_lines_strips_empty_element (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_leading_and_trailing_brackets (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_all_unquoted_','_will_split (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_quoted_','_is_supported (0.00s) 178s --- PASS: TestNormalize/as_partially_quoted_unbalanced_end_can_lead_to_unexpect_result (0.00s) 178s --- PASS: TestNormalize/weird_case_false (0.00s) 178s --- PASS: TestNormalize/unquoted_string_with_quotes (0.00s) 178s --- PASS: TestNormalize/one_quote (0.00s) 178s --- PASS: TestNormalize/string_with_escaped_quotes (0.00s) 178s --- PASS: TestNormalize/simple_ai (0.00s) 178s --- PASS: TestNormalize/as_empty_elements_separated_with_commas_are_kept (0.00s) 178s --- PASS: TestNormalize/simple_quoted_as (0.00s) 178s --- PASS: TestNormalize/simple_boolean_true (0.00s) 178s --- PASS: TestNormalize/simple_unquoted_string (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_empty_lines_strips_empty_element (0.00s) 178s --- PASS: TestNormalize/ai_with_leading_and_ending_spaces_and__[] (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_consecutive_empty_lines_strip_empty_elements (0.00s) 178s --- PASS: TestNormalize/as_partially_quoted_unbalanced_start_can_lead_to_unexpect_result (0.00s) 178s --- PASS: TestNormalize/y_transformed_to_boolean (0.00s) 178s --- PASS: TestNormalize/weird_case_true (0.00s) 178s --- PASS: TestNormalize/string_with_multiple_backslashes_escaped_quotes (0.00s) 178s --- PASS: TestNormalize/ai_with_spaces_inside (0.00s) 178s --- PASS: TestNormalize/simple_ai_with_no_spaces (0.00s) 178s --- PASS: TestNormalize/off_transformed_to_boolean (0.00s) 178s --- PASS: TestNormalize/with_spaces (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_before_[]_are_ignored (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_leading_and_trailing_brackets (0.00s) 178s --- PASS: TestNormalize/as_partially_quoted_can_lead_to_unexpect_result (0.00s) 178s --- PASS: TestNormalize/as_with_leading_and_ending_spaces_and__[] (0.00s) 178s --- PASS: TestNormalize/n_transformed_to_boolean (0.00s) 178s --- PASS: TestNormalize/one_escaped_quote (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_and_single_line_mix,_quoted (0.00s) 178s --- PASS: TestNormalize/non_supported_is_reported_as_is (0.00s) 178s --- PASS: TestNormalize/on_transformed_to_boolean (0.00s) 178s --- PASS: TestNormalize/quoted_string_with_quotes (0.00s) 178s --- PASS: TestNormalize/simple_quoted_string (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai_with_spaces_inside (0.00s) 178s --- PASS: TestNormalize/Multi-lines_ai (0.00s) 178s --- PASS: TestNormalize/ai_empty_elements_separated_with_commas_are_kept (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_leading_or_trailing_empty_lines_are_ignored (0.00s) 178s --- PASS: TestNormalize/Multi-lines_as_with_empty_lines_strips_empty_elements (0.00s) 178s --- PASS: TestNormalize/as_simple_quoted_as_with_spaces (0.00s) 178s --- PASS: TestNormalize/as_with_leading_and_ending_spaces_and_no_[] (0.00s) 178s --- PASS: TestNormalize/as_without_leading_[ (0.00s) 178s --- PASS: TestApplyPolicy (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_profile_with_partial_db_append_them_without_repetition (0.00s) 178s --- PASS: TestApplyPolicy/New_user (0.00s) 178s --- PASS: TestApplyPolicy/No_policy_still_generates_a_valid_db (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_invalid_type (0.00s) 178s --- PASS: TestApplyPolicy/Multi-lines_as (0.00s) 178s --- PASS: TestApplyPolicy/Unquoted_string (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_invalid_value_for_unnormalized_type (0.00s) 178s --- PASS: TestApplyPolicy/Multi-lines_ai_mixed_with_comma (0.00s) 178s --- PASS: TestApplyPolicy/No_surrounding_brackets_unquoted_as (0.00s) 178s --- PASS: TestApplyPolicy/Missing_machine_compiled_db_for_user (0.00s) 178s --- PASS: TestApplyPolicy/Error_when_machine_db_does_not_exist (0.00s) 178s --- PASS: TestApplyPolicy/Update_machine_disabled_key_with_value (0.00s) 178s --- PASS: TestApplyPolicy/Multi-lines_ai (0.00s) 178s --- PASS: TestApplyPolicy/No_surrounding_brackets_multiple_ai (0.00s) 178s --- PASS: TestApplyPolicy/Quoted_b (0.00s) 178s --- PASS: TestApplyPolicy/Multiple_sections_with_disabled_keys (0.00s) 178s --- PASS: TestApplyPolicy/First_boot (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_invalid_ai (0.00s) 178s --- PASS: TestApplyPolicy/User_updates_key_is_now_disabled (0.00s) 178s --- PASS: TestApplyPolicy/Invalid_as_is_too_robust_to_produce_defaulting_values (0.00s) 178s --- PASS: TestApplyPolicy/Quoted_i (0.00s) 178s --- PASS: TestApplyPolicy/Mixing_sections_and_keys_still_groups_sections (0.00s) 178s --- PASS: TestApplyPolicy/Machine_updates_existing_value (0.00s) 178s --- PASS: TestApplyPolicy/Multiple_keys_same_category (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_profile_without_needed_db_append_them (0.00s) 178s --- PASS: TestApplyPolicy/Update_user_disabled_key_with_value (0.00s) 178s --- PASS: TestApplyPolicy/Multi-lines_as_mixed_with_comma (0.00s) 178s --- PASS: TestApplyPolicy/No_surrounding_brackets_quoted_multiple_as (0.00s) 178s --- PASS: TestApplyPolicy/No_surrounding_brackets_unquoted_multiple_as (0.00s) 178s --- PASS: TestApplyPolicy/Normalized_canonical_form_for_each_supported_key (0.00s) 178s --- PASS: TestApplyPolicy/Missing_user_compiled_db_for_user (0.00s) 178s --- PASS: TestApplyPolicy/Missing_machine_compiled_db_for_machine (0.00s) 178s --- PASS: TestApplyPolicy/No_update_when_no_change (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_profile_without_needed_db,_trailine_lines_are_removed (0.00s) 178s --- PASS: TestApplyPolicy/No_surrounding_brackets_quoted_as (0.00s) 178s --- PASS: TestApplyPolicy/No_surrounding_brackets_ai (0.00s) 178s --- PASS: TestApplyPolicy/Do_not_update_other_files_from_db (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_profile_eliminates_adsys_DB_repetitions (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_profile_with_wrong_order_appends_them_in_correct_order (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_correct_profile_with_trailing_spaces_are_removed (0.00s) 178s --- PASS: TestApplyPolicy/Error_on_empty_meta (0.00s) 178s --- PASS: TestApplyPolicy/Update_existing_correct_profile_stays_unchanged (0.00s) 178s --- PASS: TestApplyPolicy/Machine_updates_key_is_now_disabled (0.00s) 178s --- PASS: TestApplyPolicy/User_updates_with_different_value (0.00s) 178s --- PASS: TestApplyPolicy/Machine_updates_with_different_value (0.00s) 178s --- PASS: TestApplyPolicy/Multiple_sections (0.00s) 178s --- PASS: TestApplyPolicy/User_updates_existing_value (0.00s) 178s --- PASS: TestApplyPolicy/Do_not_interfere_with_other_user_profile (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/policies/dconf 0.033s 178s ? github.com/ubuntu/adsys/internal/policies/entry [no test files] 178s === RUN TestApplyPolicy 178s === PAUSE TestApplyPolicy 178s === CONT TestApplyPolicy 178s === RUN TestApplyPolicy/dconf_policy 178s === PAUSE TestApplyPolicy/dconf_policy 178s === CONT TestApplyPolicy/dconf_policy 178s --- PASS: TestApplyPolicy (0.00s) 178s --- PASS: TestApplyPolicy/dconf_policy (0.00s) 178s PASS 178s ok github.com/ubuntu/adsys/internal/policies/gdm 0.003s 181s === RUN TestParseEntryValues 181s === PAUSE TestParseEntryValues 181s === RUN TestWriteFileWithUIDGID 181s === PAUSE TestWriteFileWithUIDGID 181s === RUN TestCreateUnits 181s === PAUSE TestCreateUnits 181s === RUN TestNew 181s === PAUSE TestNew 181s === RUN TestApplyPolicy 181s === PAUSE TestApplyPolicy 181s === CONT TestParseEntryValues 181s === CONT TestNew 181s === RUN TestNew/Error_when_systemUnitDir_has_invalid_permissions 181s === PAUSE TestNew/Error_when_systemUnitDir_has_invalid_permissions 181s === RUN TestParseEntryValues/Parse_values_trimming_sequential_linebreaks 181s === RUN TestNew/Creates_manager_successfully 181s === PAUSE TestNew/Creates_manager_successfully 181s === PAUSE TestParseEntryValues/Parse_values_trimming_sequential_linebreaks 181s === RUN TestNew/Error_when_runDir_has_invalid_permissions 181s === RUN TestParseEntryValues/Parse_values_from_entry_with_kerberos_auth_tags 181s === PAUSE TestNew/Error_when_runDir_has_invalid_permissions 181s === PAUSE TestParseEntryValues/Parse_values_from_entry_with_kerberos_auth_tags 181s === CONT TestCreateUnits 181s === RUN TestParseEntryValues/Returns_empty_slice_if_the_entry_is_empty 181s === RUN TestCreateUnits/Write_single_unit 181s === PAUSE TestCreateUnits/Write_single_unit 181s === RUN TestCreateUnits/Write_multiple_units 181s === PAUSE TestParseEntryValues/Returns_empty_slice_if_the_entry_is_empty 181s === PAUSE TestCreateUnits/Write_multiple_units 181s === RUN TestCreateUnits/Write_krb5_tagged_unit 181s === RUN TestParseEntryValues/Error_when_parsing_entry_with_badly_formatted_values 181s === PAUSE TestParseEntryValues/Error_when_parsing_entry_with_badly_formatted_values 181s === RUN TestParseEntryValues/Parse_values_from_entry_with_one_value 181s === PAUSE TestParseEntryValues/Parse_values_from_entry_with_one_value 181s === RUN TestParseEntryValues/Parse_values_from_entry_with_multiple_values 181s === PAUSE TestParseEntryValues/Parse_values_from_entry_with_multiple_values 181s === RUN TestParseEntryValues/Parse_values_from_entry_with_repeated_values 181s === PAUSE TestParseEntryValues/Parse_values_from_entry_with_repeated_values 181s === RUN TestParseEntryValues/Parse_values_trimming_whitespaces 181s === PAUSE TestParseEntryValues/Parse_values_trimming_whitespaces 181s === PAUSE TestCreateUnits/Write_krb5_tagged_unit 181s === CONT TestWriteFileWithUIDGID 181s === RUN TestWriteFileWithUIDGID/Write_file_with_current_user_ownership 181s === PAUSE TestWriteFileWithUIDGID/Write_file_with_current_user_ownership 181s === RUN TestWriteFileWithUIDGID/Error_when_invalid_uid 181s === CONT TestApplyPolicy 181s === PAUSE TestWriteFileWithUIDGID/Error_when_invalid_uid 181s === RUN TestWriteFileWithUIDGID/Error_when_invalid_gid 181s === PAUSE TestWriteFileWithUIDGID/Error_when_invalid_gid 181s === RUN TestWriteFileWithUIDGID/Error_when_writing_on_a_dir_with_invalid_permissions 181s === PAUSE TestWriteFileWithUIDGID/Error_when_writing_on_a_dir_with_invalid_permissions 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_multiple_values 181s === RUN TestWriteFileWithUIDGID/Error_when_path_already_exists_as_a_directory 181s === PAUSE TestWriteFileWithUIDGID/Error_when_path_already_exists_as_a_directory 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_multiple_values 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_trimming_whitespaces 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_trimming_whitespaces 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_trimming_sequential_linebreaks 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_trimming_sequential_linebreaks 181s === RUN TestApplyPolicy/Error_when_cleaning_up_user_policy_with_invalid_user 181s === PAUSE TestApplyPolicy/Error_when_cleaning_up_user_policy_with_invalid_user 181s === RUN TestApplyPolicy/Error_when_cleaning_up_user_policy_with_empty_entry_and_path_already_exists_as_a_directory 181s === PAUSE TestApplyPolicy/Error_when_cleaning_up_user_policy_with_empty_entry_and_path_already_exists_as_a_directory 181s === CONT TestNew/Error_when_systemUnitDir_has_invalid_permissions 181s === RUN TestApplyPolicy/Error_when_updating_policy_and_system_mount_unit_to_remove_is_a_dir 181s === PAUSE TestApplyPolicy/Error_when_updating_policy_and_system_mount_unit_to_remove_is_a_dir 181s === RUN TestApplyPolicy/User,_does_nothing_if_the_entry_is_disabled 181s === PAUSE TestApplyPolicy/User,_does_nothing_if_the_entry_is_disabled 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_filtering_out_unsupported_keys 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_filtering_out_unsupported_keys 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_trimming_whitespaces 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_trimming_whitespaces 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_trimming_sequential_linebreaks 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_trimming_sequential_linebreaks 181s === RUN TestApplyPolicy/System,_does_nothing_if_the_entry_is_empty 181s === PAUSE TestApplyPolicy/System,_does_nothing_if_the_entry_is_empty 181s === RUN TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_no_entries 181s === PAUSE TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_no_entries 181s === RUN TestApplyPolicy/Error_when_applying_policy_with_entry_containing_badly_formatted_value 181s === PAUSE TestApplyPolicy/Error_when_applying_policy_with_entry_containing_badly_formatted_value 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_one_value 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_one_value 181s === RUN TestApplyPolicy/Error_when_users-userDir_has_invalid_permissions 181s === PAUSE TestApplyPolicy/Error_when_users-userDir_has_invalid_permissions 181s === RUN TestApplyPolicy/Error_when_daemon-reload_fails 181s === PAUSE TestApplyPolicy/Error_when_daemon-reload_fails 181s === RUN TestApplyPolicy/Error_when_enabling_new_units_fails 181s === PAUSE TestApplyPolicy/Error_when_enabling_new_units_fails 181s === RUN TestApplyPolicy/Error_when_applying_policy_and_system_mount_unit_already_exists_as_dir 181s === PAUSE TestApplyPolicy/Error_when_applying_policy_and_system_mount_unit_already_exists_as_dir 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_tagged_values 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_tagged_values 181s === RUN TestApplyPolicy/User,_mount_file_is_updated_on_refreshing_policy_with_an_entry_with_multiple_values 181s === PAUSE TestApplyPolicy/User,_mount_file_is_updated_on_refreshing_policy_with_an_entry_with_multiple_values 181s === RUN TestApplyPolicy/System,_mount_units_are_added_on_refreshing_policy_with_some_matching_values 181s === PAUSE TestApplyPolicy/System,_mount_units_are_added_on_refreshing_policy_with_some_matching_values 181s === RUN TestApplyPolicy/System,_does_nothing_if_the_entry_is_disabled 181s === PAUSE TestApplyPolicy/System,_does_nothing_if_the_entry_is_disabled 181s === RUN TestApplyPolicy/Error_when_user_has_invalid_gid 181s === PAUSE TestApplyPolicy/Error_when_user_has_invalid_gid 181s === RUN TestApplyPolicy/User,_creates_only_dirs_if_there_are_no_entries 181s === PAUSE TestApplyPolicy/User,_creates_only_dirs_if_there_are_no_entries 181s === RUN TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_a_disabled_entry 181s === PAUSE TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_a_disabled_entry 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_values 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_values 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_tagged_values 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_tagged_values 181s === RUN TestApplyPolicy/System,_only_emit_a_warning_when_stopping_previous_units_fails 181s === PAUSE TestApplyPolicy/System,_only_emit_a_warning_when_stopping_previous_units_fails 181s === RUN TestApplyPolicy/System,_mount_units_are_updated_on_refreshing_policy_with_an_entry_with_multiple_values 181s === PAUSE TestApplyPolicy/System,_mount_units_are_updated_on_refreshing_policy_with_an_entry_with_multiple_values 181s === RUN TestApplyPolicy/System,_does_nothing_if_there_are_no_entries 181s === PAUSE TestApplyPolicy/System,_does_nothing_if_there_are_no_entries 181s === RUN TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_disabled_entry 181s === PAUSE TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_disabled_entry 181s === RUN TestApplyPolicy/Creates_only_dirs_when_trying_to_policy_with_unsupported_key 181s === PAUSE TestApplyPolicy/Creates_only_dirs_when_trying_to_policy_with_unsupported_key 181s === RUN TestApplyPolicy/Error_when_creating_units_with_bad_entry_values 181s === PAUSE TestApplyPolicy/Error_when_creating_units_with_bad_entry_values 181s === RUN TestApplyPolicy/Error_when_trying_to_update_policy_with_badly_formatted_entry 181s === PAUSE TestApplyPolicy/Error_when_trying_to_update_policy_with_badly_formatted_entry 181s === RUN TestApplyPolicy/Error_when_applying_system_policy_and_the_entry_is_errored 181s === PAUSE TestApplyPolicy/Error_when_applying_system_policy_and_the_entry_is_errored 181s === RUN TestApplyPolicy/Error_when_mounts_file_path_already_exists_as_a_directory 181s === PAUSE TestApplyPolicy/Error_when_mounts_file_path_already_exists_as_a_directory 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_multiple_values 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_multiple_values 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_values 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_values 181s === RUN TestApplyPolicy/User,_creates_only_dirs_if_the_entry_is_empty 181s === PAUSE TestApplyPolicy/User,_creates_only_dirs_if_the_entry_is_empty 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag 181s === RUN TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_an_empty_entry 181s === PAUSE TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_an_empty_entry 181s === RUN TestApplyPolicy/Creates_only_dirs_when_trying_to_apply_policy_with_no_entries 181s === PAUSE TestApplyPolicy/Creates_only_dirs_when_trying_to_apply_policy_with_no_entries 181s === RUN TestApplyPolicy/Error_when_entry_is_errored 181s === PAUSE TestApplyPolicy/Error_when_entry_is_errored 181s === RUN TestApplyPolicy/Error_when_user_is_not_found 181s === PAUSE TestApplyPolicy/Error_when_user_is_not_found 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_with_kerberos_auth_tags 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_with_kerberos_auth_tags 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag 181s === RUN TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_no_entries 181s === PAUSE TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_no_entries 181s === RUN TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_an_empty_entry 181s === PAUSE TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_an_empty_entry 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_filtering_out_unsupported_keys 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_filtering_out_unsupported_keys 181s === RUN TestApplyPolicy/Error_when_cleaning_up_user_policy_with_no_entries_and_path_already_exists_as_a_directory 181s === PAUSE TestApplyPolicy/Error_when_cleaning_up_user_policy_with_no_entries_and_path_already_exists_as_a_directory 181s === RUN TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_one_value 181s === PAUSE TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_one_value 181s === RUN TestApplyPolicy/System,_only_emit_a_warning_when_starting_new_units_fails 181s === PAUSE TestApplyPolicy/System,_only_emit_a_warning_when_starting_new_units_fails 181s === RUN TestApplyPolicy/Error_when_user_has_invalid_uid 181s === PAUSE TestApplyPolicy/Error_when_user_has_invalid_uid 181s === RUN TestApplyPolicy/System,_successfully_apply_policy_with_kerberos_tagged_values 181s === PAUSE TestApplyPolicy/System,_successfully_apply_policy_with_kerberos_tagged_values 181s === RUN TestApplyPolicy/Error_when_disabling_units_for_clean_up_fails 181s === PAUSE TestApplyPolicy/Error_when_disabling_units_for_clean_up_fails 181s === CONT TestNew/Error_when_runDir_has_invalid_permissions 181s === CONT TestNew/Creates_manager_successfully 181s === CONT TestParseEntryValues/Parse_values_trimming_sequential_linebreaks 181s === CONT TestCreateUnits/Write_single_unit 181s === CONT TestParseEntryValues/Error_when_parsing_entry_with_badly_formatted_values 181s === CONT TestParseEntryValues/Parse_values_trimming_whitespaces 181s === CONT TestParseEntryValues/Parse_values_from_entry_with_repeated_values 181s === CONT TestParseEntryValues/Parse_values_from_entry_with_multiple_values 181s === CONT TestParseEntryValues/Parse_values_from_entry_with_one_value 181s === CONT TestParseEntryValues/Returns_empty_slice_if_the_entry_is_empty 181s === CONT TestParseEntryValues/Parse_values_from_entry_with_kerberos_auth_tags 181s --- PASS: TestParseEntryValues (0.00s) 181s --- PASS: TestParseEntryValues/Parse_values_trimming_sequential_linebreaks (0.00s) 181s --- PASS: TestParseEntryValues/Error_when_parsing_entry_with_badly_formatted_values (0.00s) 181s --- PASS: TestParseEntryValues/Parse_values_trimming_whitespaces (0.00s) 181s --- PASS: TestParseEntryValues/Parse_values_from_entry_with_repeated_values (0.00s) 181s --- PASS: TestParseEntryValues/Parse_values_from_entry_with_multiple_values (0.00s) 181s --- PASS: TestParseEntryValues/Parse_values_from_entry_with_one_value (0.00s) 181s --- PASS: TestParseEntryValues/Returns_empty_slice_if_the_entry_is_empty (0.00s) 181s --- PASS: TestParseEntryValues/Parse_values_from_entry_with_kerberos_auth_tags (0.00s) 181s === CONT TestCreateUnits/Write_multiple_units 181s === CONT TestCreateUnits/Write_krb5_tagged_unit 181s --- PASS: TestCreateUnits (0.00s) 181s --- PASS: TestCreateUnits/Write_single_unit (0.00s) 181s --- PASS: TestCreateUnits/Write_multiple_units (0.00s) 181s --- PASS: TestCreateUnits/Write_krb5_tagged_unit (0.00s) 181s === CONT TestWriteFileWithUIDGID/Write_file_with_current_user_ownership 181s --- PASS: TestNew (0.00s) 181s --- PASS: TestNew/Error_when_runDir_has_invalid_permissions (0.00s) 181s --- PASS: TestNew/Creates_manager_successfully (0.00s) 181s --- PASS: TestNew/Error_when_systemUnitDir_has_invalid_permissions (0.00s) 181s === CONT TestWriteFileWithUIDGID/Error_when_writing_on_a_dir_with_invalid_permissions 181s === CONT TestWriteFileWithUIDGID/Error_when_path_already_exists_as_a_directory 181s === CONT TestWriteFileWithUIDGID/Error_when_invalid_gid 181s === CONT TestWriteFileWithUIDGID/Error_when_invalid_uid 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_multiple_values 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath2.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-otherdomain.com-mount-path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-yetanotherdomain.com-mount_path-mount-path.mount\": failed to start unit" 181s === CONT TestApplyPolicy/Error_when_disabling_units_for_clean_up_fails 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_with_kerberos_tagged_values 181s --- PASS: TestWriteFileWithUIDGID (0.00s) 181s --- PASS: TestWriteFileWithUIDGID/Error_when_writing_on_a_dir_with_invalid_permissions (0.00s) 181s --- PASS: TestWriteFileWithUIDGID/Error_when_path_already_exists_as_a_directory (0.00s) 181s --- PASS: TestWriteFileWithUIDGID/Error_when_invalid_gid (0.00s) 181s --- PASS: TestWriteFileWithUIDGID/Error_when_invalid_uid (0.00s) 181s --- PASS: TestWriteFileWithUIDGID/Write_file_with_current_user_ownership (0.00s) 181s === CONT TestApplyPolicy/Error_when_user_has_invalid_uid 181s === CONT TestApplyPolicy/System,_only_emit_a_warning_when_starting_new_units_fails 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_one_value 181s === CONT TestApplyPolicy/Error_when_cleaning_up_user_policy_with_no_entries_and_path_already_exists_as_a_directory 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_filtering_out_unsupported_keys 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_an_empty_entry 181s === CONT TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_no_entries 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag 181s time="2025-10-18T16:23:13Z" level=warning msg="The location \"[krb5]nfs://domain/untagged_first\" was already set up to be mounted with different options or authentication. The first provided value \"nfs://domain/untagged_first\" will be used instead." 181s time="2025-10-18T16:23:13Z" level=warning msg="The location \"nfs://domain/tagged_first\" was already set up to be mounted with different options or authentication. The first provided value \"[krb5]nfs://domain/tagged_first\" will be used instead." 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_with_kerberos_auth_tags 181s === CONT TestApplyPolicy/Error_when_user_is_not_found 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-krb_domain.com-mount-krb_path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-authenticated.com-authenticated-mount.mount\": failed to start unit" 181s === CONT TestApplyPolicy/Error_when_entry_is_errored 181s === CONT TestApplyPolicy/Creates_only_dirs_when_trying_to_apply_policy_with_no_entries 181s === CONT TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_an_empty_entry 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag 181s time="2025-10-18T16:23:13Z" level=warning msg="The location \"[krb5]nfs://domain/untagged_first\" was already set up to be mounted with different options or authentication. The first provided value \"nfs://domain/untagged_first\" will be used instead." 181s time="2025-10-18T16:23:13Z" level=warning msg="The location \"nfs://domain/tagged_first\" was already set up to be mounted with different options or authentication. The first provided value \"[krb5]nfs://domain/tagged_first\" will be used instead." 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-domain-untagged_first.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-domain-tagged_first.mount\": failed to start unit" 181s === CONT TestApplyPolicy/User,_creates_only_dirs_if_the_entry_is_empty 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_values 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_multiple_values 181s === CONT TestApplyPolicy/Error_when_mounts_file_path_already_exists_as_a_directory 181s === CONT TestApplyPolicy/Error_when_applying_system_policy_and_the_entry_is_errored 181s === CONT TestApplyPolicy/Error_when_trying_to_update_policy_with_badly_formatted_entry 181s === CONT TestApplyPolicy/Error_when_creating_units_with_bad_entry_values 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/Creates_only_dirs_when_trying_to_policy_with_unsupported_key 181s === CONT TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_disabled_entry 181s === CONT TestApplyPolicy/System,_does_nothing_if_there_are_no_entries 181s === CONT TestApplyPolicy/System,_mount_units_are_updated_on_refreshing_policy_with_an_entry_with_multiple_values 181s === CONT TestApplyPolicy/System,_only_emit_a_warning_when_stopping_previous_units_fails 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath2.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-otherdomain.com-mount-path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-yetanotherdomain.com-mount_path-mount-path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="Failed to stop unit \"adsys-protocol-domain.com-mountpath.mount\": failed to stop unit" 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_tagged_values 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-rpt-repeated.com-repeatedmount.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-single.com-mnt.mount\": failed to start unit" 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_values 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-anotherone.com-mnt.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-anotherone.com-mnt.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-rpt-repeated.com-repeatedmount.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-single.com-mnt.mount\": failed to start unit" 181s === CONT TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_a_disabled_entry 181s === CONT TestApplyPolicy/User,_creates_only_dirs_if_there_are_no_entries 181s === CONT TestApplyPolicy/Error_when_user_has_invalid_gid 181s === CONT TestApplyPolicy/System,_does_nothing_if_the_entry_is_disabled 181s === CONT TestApplyPolicy/System,_mount_units_are_added_on_refreshing_policy_with_some_matching_values 181s === CONT TestApplyPolicy/User,_mount_file_is_updated_on_refreshing_policy_with_an_entry_with_multiple_values 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath2.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-otherdomain.com-mount-path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-yetanotherdomain.com-mount_path-mount-path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-fuse-completelydifferent.com-different-path.mount\": failed to start unit" 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_tagged_values 181s === CONT TestApplyPolicy/Error_when_applying_policy_and_system_mount_unit_already_exists_as_dir 181s === CONT TestApplyPolicy/Error_when_enabling_new_units_fails 181s === CONT TestApplyPolicy/Error_when_daemon-reload_fails 181s === CONT TestApplyPolicy/Error_when_users-userDir_has_invalid_permissions 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_one_value 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/Error_when_applying_policy_with_entry_containing_badly_formatted_value 181s === CONT TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_no_entries 181s === CONT TestApplyPolicy/System,_does_nothing_if_the_entry_is_empty 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_trimming_sequential_linebreaks 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_trimming_whitespaces 181s === CONT TestApplyPolicy/User,_successfully_apply_policy_filtering_out_unsupported_keys 181s === CONT TestApplyPolicy/User,_does_nothing_if_the_entry_is_disabled 181s === CONT TestApplyPolicy/Error_when_updating_policy_and_system_mount_unit_to_remove_is_a_dir 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s === CONT TestApplyPolicy/Error_when_cleaning_up_user_policy_with_empty_entry_and_path_already_exists_as_a_directory 181s === CONT TestApplyPolicy/Error_when_cleaning_up_user_policy_with_invalid_user 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_trimming_sequential_linebreaks 181s === CONT TestApplyPolicy/System,_successfully_apply_policy_trimming_whitespaces 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mounpath.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-otherdomain.com-mount-path.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-nfs-yetanotherdomain.com-path-mount.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-protocol-domain.com-mountpath.mount\": failed to start unit" 181s time="2025-10-18T16:23:13Z" level=warning msg="failed to start unit \"adsys-cifs-otherdomain.com-mount-path.mount\": failed to start unit" 181s --- PASS: TestApplyPolicy (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_multiple_values (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_disabling_units_for_clean_up_fails (0.00s) 181s --- PASS: TestApplyPolicy/System,_only_emit_a_warning_when_starting_new_units_fails (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_one_value (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_cleaning_up_user_policy_with_no_entries_and_path_already_exists_as_a_directory (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_filtering_out_unsupported_keys (0.00s) 181s --- PASS: TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_an_empty_entry (0.00s) 181s --- PASS: TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_with_kerberos_auth_tags (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_user_has_invalid_uid (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_with_kerberos_tagged_values (0.01s) 181s --- PASS: TestApplyPolicy/Error_when_entry_is_errored (0.00s) 181s --- PASS: TestApplyPolicy/Creates_only_dirs_when_trying_to_apply_policy_with_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_an_empty_entry (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_prioritizing_the_first_value_found,_despite_the_tag (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_values (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_multiple_values (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_mounts_file_path_already_exists_as_a_directory (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_applying_system_policy_and_the_entry_is_errored (0.00s) 181s --- PASS: TestApplyPolicy/User,_creates_only_dirs_if_the_entry_is_empty (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_user_is_not_found (0.01s) 181s --- PASS: TestApplyPolicy/Error_when_creating_units_with_bad_entry_values (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_trying_to_update_policy_with_badly_formatted_entry (0.00s) 181s --- PASS: TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_disabled_entry (0.00s) 181s --- PASS: TestApplyPolicy/Creates_only_dirs_when_trying_to_policy_with_unsupported_key (0.00s) 181s --- PASS: TestApplyPolicy/System,_does_nothing_if_there_are_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/System,_mount_units_are_updated_on_refreshing_policy_with_an_entry_with_multiple_values (0.00s) 181s --- PASS: TestApplyPolicy/System,_only_emit_a_warning_when_stopping_previous_units_fails (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_tagged_values (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_repeated_values (0.00s) 181s --- PASS: TestApplyPolicy/User,_creates_only_dirs_if_there_are_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/User,_mount_file_is_removed_on_refreshing_policy_with_a_disabled_entry (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_user_has_invalid_gid (0.00s) 181s --- PASS: TestApplyPolicy/System,_does_nothing_if_the_entry_is_disabled (0.00s) 181s --- PASS: TestApplyPolicy/System,_mount_units_are_added_on_refreshing_policy_with_some_matching_values (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_for_entry_with_repeated_tagged_values (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_applying_policy_and_system_mount_unit_already_exists_as_dir (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_enabling_new_units_fails (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_daemon-reload_fails (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_users-userDir_has_invalid_permissions (0.00s) 181s --- PASS: TestApplyPolicy/User,_mount_file_is_updated_on_refreshing_policy_with_an_entry_with_multiple_values (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_for_entry_with_one_value (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_applying_policy_with_entry_containing_badly_formatted_value (0.00s) 181s --- PASS: TestApplyPolicy/System,_does_nothing_if_the_entry_is_empty (0.00s) 181s --- PASS: TestApplyPolicy/System,_mount_units_are_removed_on_refreshing_policy_with_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_trimming_sequential_linebreaks (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_trimming_whitespaces (0.00s) 181s --- PASS: TestApplyPolicy/User,_successfully_apply_policy_filtering_out_unsupported_keys (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_updating_policy_and_system_mount_unit_to_remove_is_a_dir (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_cleaning_up_user_policy_with_empty_entry_and_path_already_exists_as_a_directory (0.00s) 181s --- PASS: TestApplyPolicy/User,_does_nothing_if_the_entry_is_disabled (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_cleaning_up_user_policy_with_invalid_user (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_trimming_whitespaces (0.00s) 181s --- PASS: TestApplyPolicy/System,_successfully_apply_policy_trimming_sequential_linebreaks (0.00s) 181s PASS 181s ok github.com/ubuntu/adsys/internal/policies/mount 0.050s 181s === RUN TestSplitAndNormalizeUsersAndGroups 181s === PAUSE TestSplitAndNormalizeUsersAndGroups 181s === RUN TestPolkitAdminIdentitiesFromConf 181s === PAUSE TestPolkitAdminIdentitiesFromConf 181s === RUN TestPolkitAdminIdentitiesFromRules 181s === PAUSE TestPolkitAdminIdentitiesFromRules 181s === RUN TestApplyPolicy 181s === PAUSE TestApplyPolicy 181s === CONT TestSplitAndNormalizeUsersAndGroups 181s === RUN TestSplitAndNormalizeUsersAndGroups/Empty_value_with_EOL 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Empty_value_with_EOL 181s === RUN TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_a_mix_of_comma_and_EOL 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_a_mix_of_comma_and_EOL 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_| 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_| 181s === RUN TestSplitAndNormalizeUsersAndGroups/Empty_value_with_comma 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Empty_value_with_comma 181s === RUN TestSplitAndNormalizeUsersAndGroups/Group_one_value 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Group_one_value 181s === RUN TestSplitAndNormalizeUsersAndGroups/Multiple_values_separated_by_comma 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Multiple_values_separated_by_comma 181s === RUN TestSplitAndNormalizeUsersAndGroups/Multiple_values_separated_by_EOL 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Multiple_values_separated_by_EOL 181s === RUN TestSplitAndNormalizeUsersAndGroups/Multiple_\_only_handling_first_one_and_ignore_others 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Multiple_\_only_handling_first_one_and_ignore_others 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_empty_values 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_empty_values 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_: 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_: 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_< 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_< 181s === RUN TestSplitAndNormalizeUsersAndGroups/Simple_one_value 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Simple_one_value 181s === RUN TestSplitAndNormalizeUsersAndGroups/Handle_domain\user 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Handle_domain\user 181s === RUN TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_EOL 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_EOL 181s === RUN TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_comma 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_comma 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_/ 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_/ 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_[ 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_[ 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_> 181s === CONT TestPolkitAdminIdentitiesFromRules 181s === RUN TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_from_lower_ascii_file 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_from_lower_ascii_file 181s === RUN TestPolkitAdminIdentitiesFromRules/Prioritize_first_specified_directory_if_files_have_same_ascii 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Prioritize_first_specified_directory_if_files_have_same_ascii 181s === RUN TestPolkitAdminIdentitiesFromRules/Returns_an_empty_string_if_directory_does_not_exists 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Returns_an_empty_string_if_directory_does_not_exists 181s === RUN TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities 181s === RUN TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_ignoring_adsys 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_ignoring_adsys 181s === RUN TestPolkitAdminIdentitiesFromRules/Consider_only_first_returned_value 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Consider_only_first_returned_value 181s === RUN TestPolkitAdminIdentitiesFromRules/Prioritize_lower_ascii_file_even_if_on_second_directory 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Prioritize_lower_ascii_file_even_if_on_second_directory 181s === RUN TestPolkitAdminIdentitiesFromRules/No_previous_admin_identities_but_regular_directory_structure 181s === PAUSE TestPolkitAdminIdentitiesFromRules/No_previous_admin_identities_but_regular_directory_structure 181s === RUN TestPolkitAdminIdentitiesFromRules/Directory_instead_of_a_conf_file_is_ignored 181s === PAUSE TestPolkitAdminIdentitiesFromRules/Directory_instead_of_a_conf_file_is_ignored 181s === CONT TestApplyPolicy 181s === RUN TestApplyPolicy/Error_on_writing_to_sudoers_file 181s === PAUSE TestApplyPolicy/Error_on_writing_to_sudoers_file 181s === RUN TestApplyPolicy/No_rules_still_overwrite_those_files 181s === PAUSE TestApplyPolicy/No_rules_still_overwrite_those_files 181s === RUN TestApplyPolicy/Set_client_user_admins 181s === PAUSE TestApplyPolicy/Set_client_user_admins 181s === RUN TestApplyPolicy/Set_client_multiple_users_admins 181s === PAUSE TestApplyPolicy/Set_client_multiple_users_admins 181s === RUN TestApplyPolicy/Allow_local_admins_without_previous_local_admin_conf_and_set_client_admins 181s === PAUSE TestApplyPolicy/Allow_local_admins_without_previous_local_admin_conf_and_set_client_admins 181s === RUN TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_and_set_client_admins 181s === PAUSE TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_and_set_client_admins 181s === RUN TestApplyPolicy/Error_on_writing_to_polkit_subdirectory_creation 181s === PAUSE TestApplyPolicy/Error_on_writing_to_polkit_subdirectory_creation 181s === RUN TestApplyPolicy/Error_if_can’t_rename_to_destination_for_polkit_conf_file 181s === PAUSE TestApplyPolicy/Error_if_can’t_rename_to_destination_for_polkit_conf_file 181s === RUN TestApplyPolicy/Disallow_local_admins 181s === PAUSE TestApplyPolicy/Disallow_local_admins 181s === RUN TestApplyPolicy/Set_client_group_admins 181s === PAUSE TestApplyPolicy/Set_client_group_admins 181s === RUN TestApplyPolicy/Disallow_local_admins_with_previous_local_admin_conf_and_set_client_admins 181s === PAUSE TestApplyPolicy/Disallow_local_admins_with_previous_local_admin_conf_and_set_client_admins 181s === RUN TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(with_adsys_file)_and_set_client_admins 181s === PAUSE TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(with_adsys_file)_and_set_client_admins 181s === RUN TestApplyPolicy/Overwrite_existing_sudoers_file 181s === PAUSE TestApplyPolicy/Overwrite_existing_sudoers_file 181s === RUN TestApplyPolicy/Error_if_can’t_rename_to_destination_for_sudoers_file 181s === PAUSE TestApplyPolicy/Error_if_can’t_rename_to_destination_for_sudoers_file 181s === RUN TestApplyPolicy/No_rules_and_no_existing_history_means_no_files 181s === PAUSE TestApplyPolicy/No_rules_and_no_existing_history_means_no_files 181s === RUN TestApplyPolicy/Set_client_mixed_with_users_and_group_admins 181s === PAUSE TestApplyPolicy/Set_client_mixed_with_users_and_group_admins 181s === RUN TestApplyPolicy/No_client_AD_admins 181s === PAUSE TestApplyPolicy/No_client_AD_admins 181s === RUN TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(simple)_and_set_client_admins 181s === PAUSE TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(simple)_and_set_client_admins 181s === RUN TestApplyPolicy/Don't_overwrite_other_existing_files 181s === PAUSE TestApplyPolicy/Don't_overwrite_other_existing_files 181s === RUN TestApplyPolicy/Error_on_writing_to_polkit_conf_file 181s === PAUSE TestApplyPolicy/Error_on_writing_to_polkit_conf_file 181s === RUN TestApplyPolicy/Error_on_creating_sudoers_and_polkit_base_directory 181s === PAUSE TestApplyPolicy/Error_on_creating_sudoers_and_polkit_base_directory 181s === RUN TestApplyPolicy/Not_a_computer 181s === PAUSE TestApplyPolicy/Not_a_computer 181s === RUN TestApplyPolicy/Allow_local_admins_with_no_other_rules_is_a_noop 181s === PAUSE TestApplyPolicy/Allow_local_admins_with_no_other_rules_is_a_noop 181s === RUN TestApplyPolicy/Empty_client_AD_admins 181s === PAUSE TestApplyPolicy/Empty_client_AD_admins 181s === RUN TestApplyPolicy/Disallow_local_admins_and_set_client_admins 181s === PAUSE TestApplyPolicy/Disallow_local_admins_and_set_client_admins 181s === RUN TestApplyPolicy/Overwrite_existing_polkit_file 181s === PAUSE TestApplyPolicy/Overwrite_existing_polkit_file 181s === RUN TestApplyPolicy/Create_on_new_polkit_version_and_remove_old_file 181s === PAUSE TestApplyPolicy/Create_on_new_polkit_version_and_remove_old_file 181s === RUN TestApplyPolicy/Assume_old_polkit_if_cant_read_system_reserved_path 181s === PAUSE TestApplyPolicy/Assume_old_polkit_if_cant_read_system_reserved_path 181s === CONT TestPolkitAdminIdentitiesFromConf 181s === RUN TestPolkitAdminIdentitiesFromConf/Returns_an_empty_string_if_directory_does_not_exists 181s === PAUSE TestPolkitAdminIdentitiesFromConf/Returns_an_empty_string_if_directory_does_not_exists 181s === RUN TestPolkitAdminIdentitiesFromConf/Directory_instead_of_a_conf_file_is_ignored 181s === PAUSE TestPolkitAdminIdentitiesFromConf/Directory_instead_of_a_conf_file_is_ignored 181s === RUN TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities 181s === PAUSE TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities 181s === RUN TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_from_highest_ascii_file 181s === PAUSE TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_from_highest_ascii_file 181s === RUN TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_ignoring_adsys 181s === PAUSE TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_ignoring_adsys 181s === RUN TestPolkitAdminIdentitiesFromConf/No_previous_admin_identities_but_regular_directory_structure 181s === PAUSE TestPolkitAdminIdentitiesFromConf/No_previous_admin_identities_but_regular_directory_structure 181s === CONT TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_from_lower_ascii_file 181s === CONT TestApplyPolicy/Error_on_writing_to_sudoers_file 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_> 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_; 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_; 181s === RUN TestSplitAndNormalizeUsersAndGroups/User_name_with_space 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/User_name_with_space 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_] 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_] 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_= 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_= 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_? 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_? 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_* 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_* 181s === RUN TestSplitAndNormalizeUsersAndGroups/Strip_any_% 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Strip_any_% 181s === RUN TestSplitAndNormalizeUsersAndGroups/Don’t_strip_first_%_but_others 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Don’t_strip_first_%_but_others 181s === RUN TestSplitAndNormalizeUsersAndGroups/Empty_value 181s === PAUSE TestSplitAndNormalizeUsersAndGroups/Empty_value 181s === CONT TestPolkitAdminIdentitiesFromRules/Directory_instead_of_a_conf_file_is_ignored 181s === CONT TestPolkitAdminIdentitiesFromRules/No_previous_admin_identities_but_regular_directory_structure 181s === CONT TestPolkitAdminIdentitiesFromRules/Prioritize_lower_ascii_file_even_if_on_second_directory 181s === CONT TestPolkitAdminIdentitiesFromRules/Consider_only_first_returned_value 181s === CONT TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_ignoring_adsys 181s === CONT TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities 181s === CONT TestPolkitAdminIdentitiesFromRules/Returns_an_empty_string_if_directory_does_not_exists 181s === CONT TestPolkitAdminIdentitiesFromRules/Prioritize_first_specified_directory_if_files_have_same_ascii 181s --- PASS: TestPolkitAdminIdentitiesFromRules (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_from_lower_ascii_file (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Directory_instead_of_a_conf_file_is_ignored (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/No_previous_admin_identities_but_regular_directory_structure (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Prioritize_lower_ascii_file_even_if_on_second_directory (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Consider_only_first_returned_value (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Returns_an_empty_string_if_directory_does_not_exists (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Prioritize_first_specified_directory_if_files_have_same_ascii (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromRules/Fetch_previous_admin_identities_ignoring_adsys (0.00s) 181s === CONT TestPolkitAdminIdentitiesFromConf/Returns_an_empty_string_if_directory_does_not_exists 181s === CONT TestApplyPolicy/Assume_old_polkit_if_cant_read_system_reserved_path 181s === CONT TestApplyPolicy/Overwrite_existing_polkit_file 181s === CONT TestApplyPolicy/Create_on_new_polkit_version_and_remove_old_file 181s === CONT TestApplyPolicy/Disallow_local_admins_and_set_client_admins 181s === CONT TestApplyPolicy/Empty_client_AD_admins 181s === CONT TestApplyPolicy/Allow_local_admins_with_no_other_rules_is_a_noop 181s === CONT TestApplyPolicy/Not_a_computer 181s === CONT TestApplyPolicy/Error_on_creating_sudoers_and_polkit_base_directory 181s === CONT TestApplyPolicy/Error_on_writing_to_polkit_conf_file 181s === CONT TestApplyPolicy/Don't_overwrite_other_existing_files 181s === CONT TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(simple)_and_set_client_admins 181s === CONT TestApplyPolicy/No_client_AD_admins 181s === CONT TestApplyPolicy/Set_client_mixed_with_users_and_group_admins 181s === CONT TestApplyPolicy/No_rules_and_no_existing_history_means_no_files 181s === CONT TestApplyPolicy/Error_if_can’t_rename_to_destination_for_sudoers_file 181s === CONT TestApplyPolicy/Overwrite_existing_sudoers_file 181s === CONT TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(with_adsys_file)_and_set_client_admins 181s === CONT TestApplyPolicy/Disallow_local_admins_with_previous_local_admin_conf_and_set_client_admins 181s === CONT TestApplyPolicy/Set_client_group_admins 181s === CONT TestApplyPolicy/Disallow_local_admins 181s === CONT TestApplyPolicy/Error_if_can’t_rename_to_destination_for_polkit_conf_file 181s === CONT TestApplyPolicy/Error_on_writing_to_polkit_subdirectory_creation 181s === CONT TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_and_set_client_admins 181s === CONT TestApplyPolicy/Allow_local_admins_without_previous_local_admin_conf_and_set_client_admins 181s === CONT TestApplyPolicy/Set_client_multiple_users_admins 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"domain\\\\bob\" to \"bob@domain\": Invalid characters or domain\\user format" 181s === CONT TestApplyPolicy/Set_client_user_admins 181s === CONT TestApplyPolicy/No_rules_still_overwrite_those_files 181s === CONT TestPolkitAdminIdentitiesFromConf/No_previous_admin_identities_but_regular_directory_structure 181s === CONT TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_ignoring_adsys 181s === CONT TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_from_highest_ascii_file 181s === CONT TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities 181s === CONT TestPolkitAdminIdentitiesFromConf/Directory_instead_of_a_conf_file_is_ignored 181s --- PASS: TestPolkitAdminIdentitiesFromConf (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromConf/Returns_an_empty_string_if_directory_does_not_exists (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromConf/No_previous_admin_identities_but_regular_directory_structure (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_ignoring_adsys (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities_from_highest_ascii_file (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromConf/Fetch_previous_admin_identities (0.00s) 181s --- PASS: TestPolkitAdminIdentitiesFromConf/Directory_instead_of_a_conf_file_is_ignored (0.00s) 181s === CONT TestSplitAndNormalizeUsersAndGroups/Empty_value_with_EOL 181s === CONT TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_comma 181s === CONT TestSplitAndNormalizeUsersAndGroups/Empty_value 181s === CONT TestSplitAndNormalizeUsersAndGroups/Don’t_strip_first_%_but_others 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"%g%r%oup@domain\" to \"%group@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_% 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u%s%er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_* 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u*s*er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_? 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u?s?er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_= 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u=s=er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_] 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u]s]er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/User_name_with_space 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_; 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u;s;er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_> 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u>s>er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_[ 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u[s]er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_/ 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u/s/er@domain\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Multiple_\_only_handling_first_one_and_ignore_others 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"domain\\\\user\\\\foo\" to \"userfoo@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_EOL 181s === CONT TestSplitAndNormalizeUsersAndGroups/Handle_domain\user 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"domain\\\\user\" to \"user@domain\": Invalid characters or domain\\user format" 181s === CONT TestSplitAndNormalizeUsersAndGroups/Simple_one_value 181s === CONT TestSplitAndNormalizeUsersAndGroups/Strip_any_< 181s time="2025-10-18T16:23:13Z" level=warning msg="Changed user or group \"u (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Strip_any_[ (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Strip_any_/ (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Multiple_\_only_handling_first_one_and_ignore_others (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_consecutives_EOL (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Handle_domain\user (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Simple_one_value (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Strip_any_< (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Strip_any_: (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Strip_empty_values (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Group_one_value (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Multiple_values_separated_by_EOL (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Multiple_values_separated_by_comma (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Strip_any_| (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Empty_value_with_comma (0.00s) 181s --- PASS: TestSplitAndNormalizeUsersAndGroups/Multiple_values_with_a_mix_of_comma_and_EOL (0.00s) 181s --- PASS: TestApplyPolicy (0.00s) 181s --- PASS: TestApplyPolicy/Error_on_writing_to_sudoers_file (0.00s) 181s --- PASS: TestApplyPolicy/Assume_old_polkit_if_cant_read_system_reserved_path (0.00s) 181s --- PASS: TestApplyPolicy/Overwrite_existing_polkit_file (0.00s) 181s --- PASS: TestApplyPolicy/Disallow_local_admins_and_set_client_admins (0.00s) 181s --- PASS: TestApplyPolicy/Empty_client_AD_admins (0.00s) 181s --- PASS: TestApplyPolicy/Allow_local_admins_with_no_other_rules_is_a_noop (0.00s) 181s --- PASS: TestApplyPolicy/Not_a_computer (0.00s) 181s --- PASS: TestApplyPolicy/Error_on_creating_sudoers_and_polkit_base_directory (0.00s) 181s --- PASS: TestApplyPolicy/Error_on_writing_to_polkit_conf_file (0.00s) 181s --- PASS: TestApplyPolicy/Don't_overwrite_other_existing_files (0.00s) 181s --- PASS: TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(simple)_and_set_client_admins (0.00s) 181s --- PASS: TestApplyPolicy/No_client_AD_admins (0.00s) 181s --- PASS: TestApplyPolicy/Set_client_mixed_with_users_and_group_admins (0.00s) 181s --- PASS: TestApplyPolicy/No_rules_and_no_existing_history_means_no_files (0.00s) 181s --- PASS: TestApplyPolicy/Error_if_can’t_rename_to_destination_for_sudoers_file (0.00s) 181s --- PASS: TestApplyPolicy/Overwrite_existing_sudoers_file (0.00s) 181s --- PASS: TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_(with_adsys_file)_and_set_client_admins (0.00s) 181s --- PASS: TestApplyPolicy/Disallow_local_admins_with_previous_local_admin_conf_and_set_client_admins (0.00s) 181s --- PASS: TestApplyPolicy/Set_client_group_admins (0.00s) 181s --- PASS: TestApplyPolicy/Disallow_local_admins (0.00s) 181s --- PASS: TestApplyPolicy/Create_on_new_polkit_version_and_remove_old_file (0.01s) 181s --- PASS: TestApplyPolicy/Error_if_can’t_rename_to_destination_for_polkit_conf_file (0.00s) 181s --- PASS: TestApplyPolicy/Allow_local_admins_with_previous_local_admin_conf_and_set_client_admins (0.00s) 181s --- PASS: TestApplyPolicy/Error_on_writing_to_polkit_subdirectory_creation (0.00s) 181s --- PASS: TestApplyPolicy/Set_client_multiple_users_admins (0.00s) 181s --- PASS: TestApplyPolicy/Set_client_user_admins (0.00s) 181s --- PASS: TestApplyPolicy/No_rules_still_overwrite_those_files (0.00s) 181s --- PASS: TestApplyPolicy/Allow_local_admins_without_previous_local_admin_conf_and_set_client_admins (0.00s) 181s PASS 181s ok github.com/ubuntu/adsys/internal/policies/privilege 0.026s 181s === RUN TestApplyPolicy 181s === PAUSE TestApplyPolicy 181s === RUN TestWarnOnUnsupportedKeys 181s --- PASS: TestWarnOnUnsupportedKeys (0.00s) 181s === RUN TestWarnOnMissingDBusService 181s --- PASS: TestWarnOnMissingDBusService (0.00s) 181s === CONT TestApplyPolicy 181s === RUN TestApplyPolicy/User,_non-empty_entries 181s === PAUSE TestApplyPolicy/User,_non-empty_entries 181s === RUN TestApplyPolicy/Error_when_D-Bus_call_fails 181s === PAUSE TestApplyPolicy/Error_when_D-Bus_call_fails 181s === RUN TestApplyPolicy/Computer,_no_entries 181s === PAUSE TestApplyPolicy/Computer,_no_entries 181s === RUN TestApplyPolicy/Computer,_no_entries,_D-Bus_call_error 181s === PAUSE TestApplyPolicy/Computer,_no_entries,_D-Bus_call_error 181s === RUN TestApplyPolicy/User,_no_entries 181s === PAUSE TestApplyPolicy/User,_no_entries 181s === RUN TestApplyPolicy/Computer,_single_enabled_entry 181s === PAUSE TestApplyPolicy/Computer,_single_enabled_entry 181s === RUN TestApplyPolicy/Computer,_single_disabled_entry 181s === PAUSE TestApplyPolicy/Computer,_single_disabled_entry 181s === RUN TestApplyPolicy/Computer,_all_entries_set 181s === PAUSE TestApplyPolicy/Computer,_all_entries_set 181s === CONT TestApplyPolicy/User,_non-empty_entries 181s === CONT TestApplyPolicy/User,_no_entries 181s === CONT TestApplyPolicy/Computer,_all_entries_set 181s === CONT TestApplyPolicy/Computer,_single_disabled_entry 181s === CONT TestApplyPolicy/Computer,_single_enabled_entry 181s === CONT TestApplyPolicy/Computer,_no_entries 181s === CONT TestApplyPolicy/Computer,_no_entries,_D-Bus_call_error 181s === CONT TestApplyPolicy/Error_when_D-Bus_call_fails 181s --- PASS: TestApplyPolicy (0.00s) 181s --- PASS: TestApplyPolicy/User,_non-empty_entries (0.00s) 181s --- PASS: TestApplyPolicy/User,_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/Computer,_single_disabled_entry (0.00s) 181s --- PASS: TestApplyPolicy/Computer,_single_enabled_entry (0.00s) 181s --- PASS: TestApplyPolicy/Computer,_no_entries (0.00s) 181s --- PASS: TestApplyPolicy/Computer,_no_entries,_D-Bus_call_error (0.00s) 181s --- PASS: TestApplyPolicy/Error_when_D-Bus_call_fails (0.00s) 181s --- PASS: TestApplyPolicy/Computer,_all_entries_set (0.00s) 181s PASS 181s ok github.com/ubuntu/adsys/internal/policies/proxy 0.012s 182s === RUN TestNew 182s === PAUSE TestNew 182s === RUN TestApplyPolicy 182s === PAUSE TestApplyPolicy 182s === RUN TestRunScripts 182s === PAUSE TestRunScripts 182s === CONT TestNew 182s === RUN TestNew/create_manager 182s === PAUSE TestNew/create_manager 182s === RUN TestNew/error_on_read_only_rundir 182s === PAUSE TestNew/error_on_read_only_rundir 182s === CONT TestRunScripts 182s === RUN TestRunScripts/one_script 182s === PAUSE TestRunScripts/one_script 182s === RUN TestRunScripts/scripts_that_are_not_executable_are_skipped 182s === PAUSE TestRunScripts/scripts_that_are_not_executable_are_skipped 182s === RUN TestRunScripts/scripts_not_listed_are_not_run 182s === PAUSE TestRunScripts/scripts_not_listed_are_not_run 182s === RUN TestRunScripts/has_no_session_running_flag_after_user_logoff 182s === PAUSE TestRunScripts/has_no_session_running_flag_after_user_logoff 182s === RUN TestRunScripts/keeps_running_flag_after_non_user_logoff 182s === PAUSE TestRunScripts/keeps_running_flag_after_non_user_logoff 182s === RUN TestRunScripts/still_executes_without_existing_running_flag_on_machine_shutdown 182s === PAUSE TestRunScripts/still_executes_without_existing_running_flag_on_machine_shutdown 182s === RUN TestRunScripts/allow_order_file_missing 182s === PAUSE TestRunScripts/allow_order_file_missing 182s === RUN TestRunScripts/multiple_scripts_are_run_in_order 182s === PAUSE TestRunScripts/multiple_scripts_are_run_in_order 182s === RUN TestRunScripts/script_directory_without_logoff_order_has_no_session_running_flag_after_user_logoff 182s === CONT TestApplyPolicy 182s === RUN TestApplyPolicy/One_directory,_multiple_scripts_in_order 182s === PAUSE TestApplyPolicy/One_directory,_multiple_scripts_in_order 182s === RUN TestApplyPolicy/Same_script_is_used_multiple_times 182s === PAUSE TestApplyPolicy/Same_script_is_used_multiple_times 182s === RUN TestApplyPolicy/Destination_is_already_ready_but_not_in_session,_refreshing 182s === PAUSE TestApplyPolicy/Destination_is_already_ready_but_not_in_session,_refreshing 182s === RUN TestApplyPolicy/User_lookup_failing_does_not_impact_machine_update 182s === PAUSE TestApplyPolicy/User_lookup_failing_does_not_impact_machine_update 182s === RUN TestApplyPolicy/Error_on_invalid_GID 182s === PAUSE TestApplyPolicy/Error_on_invalid_GID 182s === RUN TestApplyPolicy/No_entries_update_existing_non_ready_folder 182s === PAUSE TestApplyPolicy/No_entries_update_existing_non_ready_folder 182s === RUN TestApplyPolicy/Subfolder_with_same_script_name 182s === PAUSE TestApplyPolicy/Subfolder_with_same_script_name 182s === RUN TestApplyPolicy/Destination_is_not_ready,_refreshing 182s === PAUSE TestApplyPolicy/Destination_is_not_ready,_refreshing 182s === RUN TestApplyPolicy/Systemctl_failing_does_not_impact_user_scripts_update 182s === PAUSE TestApplyPolicy/Systemctl_failing_does_not_impact_user_scripts_update 182s === RUN TestApplyPolicy/Error_on_subfolder_listed 182s === PAUSE TestApplyPolicy/Error_on_subfolder_listed 182s === RUN TestApplyPolicy/Error_on_users_run_directory_Read_Only 182s === PAUSE TestApplyPolicy/Error_on_users_run_directory_Read_Only 182s === RUN TestApplyPolicy/Error_on_save_assets_dumping_failing 182s === PAUSE TestApplyPolicy/Error_on_save_assets_dumping_failing 182s === RUN TestApplyPolicy/Error_on_running_start_script_that_runs_systemctl_and_systemctl_fails 182s === PAUSE TestApplyPolicy/Error_on_running_start_script_that_runs_systemctl_and_systemctl_fails 182s === RUN TestApplyPolicy/No_entries_is_an_empty_folder 182s === PAUSE TestApplyPolicy/No_entries_is_an_empty_folder 182s === RUN TestApplyPolicy/One_script 182s === PAUSE TestApplyPolicy/One_script 182s === RUN TestApplyPolicy/Multiple_directories: 182s === PAUSE TestApplyPolicy/Multiple_directories: 182s === RUN TestApplyPolicy/Empty_entries_are_discared 182s === PAUSE TestApplyPolicy/Empty_entries_are_discared 182s === RUN TestApplyPolicy/Computer,_no_systemctl_with_other_directory_than_startup 182s === PAUSE TestApplyPolicy/Computer,_no_systemctl_with_other_directory_than_startup 182s === RUN TestApplyPolicy/Destination_is_already_running,_no_change 182s === PAUSE TestApplyPolicy/Destination_is_already_running,_no_change 182s === RUN TestApplyPolicy/Subfolder_with_script 182s === PAUSE TestApplyPolicy/Subfolder_with_script 182s === RUN TestApplyPolicy/Startup_script_for_computer_runs_systemctl_(systemctl_success) 182s === PAUSE TestApplyPolicy/Startup_script_for_computer_runs_systemctl_(systemctl_success) 182s === RUN TestApplyPolicy/Error_on_script_does_not_exist 182s === PAUSE TestApplyPolicy/Error_on_script_does_not_exist 182s === RUN TestApplyPolicy/Error_on_invalid_UID 182s === PAUSE TestApplyPolicy/Error_on_invalid_UID 182s === RUN TestApplyPolicy/Error_on_user_lookup_failing 182s === PAUSE TestApplyPolicy/Error_on_user_lookup_failing 182s === CONT TestNew/create_manager 182s === CONT TestNew/error_on_read_only_rundir 182s --- PASS: TestNew (0.00s) 182s --- PASS: TestNew/create_manager (0.00s) 182s --- PASS: TestNew/error_on_read_only_rundir (0.00s) 182s === CONT TestApplyPolicy/One_directory,_multiple_scripts_in_order 182s === CONT TestApplyPolicy/Error_on_user_lookup_failing 182s === CONT TestApplyPolicy/Error_on_invalid_UID 182s === CONT TestApplyPolicy/Error_on_script_does_not_exist 182s === CONT TestApplyPolicy/Startup_script_for_computer_runs_systemctl_(systemctl_success) 182s time="2025-10-18T16:23:13Z" level=info msg="Running machine startup scripts" 182s === CONT TestApplyPolicy/Subfolder_with_script 182s === CONT TestApplyPolicy/Destination_is_already_running,_no_change 182s time="2025-10-18T16:23:13Z" level=info msg="\"/tmp/TestApplyPolicyDestination_is_already_running,_no_change856396678/001/machine/scripts/.running\" already exists, a session is already running, ignoring." 182s === CONT TestApplyPolicy/Computer,_no_systemctl_with_other_directory_than_startup 182s === CONT TestApplyPolicy/Empty_entries_are_discared 182s === CONT TestApplyPolicy/Multiple_directories: 182s === PAUSE TestRunScripts/script_directory_without_logoff_order_has_no_session_running_flag_after_user_logoff 182s === RUN TestRunScripts/has_no_session_running_flag_after_machine_shutdown 182s === PAUSE TestRunScripts/has_no_session_running_flag_after_machine_shutdown 182s === RUN TestRunScripts/still_executes_without_existing_running_flag_on_user_logoff 182s === PAUSE TestRunScripts/still_executes_without_existing_running_flag_on_user_logoff 182s === RUN TestRunScripts/keeps_running_flag_after_non_machine_shutdown 182s === PAUSE TestRunScripts/keeps_running_flag_after_non_machine_shutdown 182s === RUN TestRunScripts/spaces_and_empty_lines_are_skipped 182s === PAUSE TestRunScripts/spaces_and_empty_lines_are_skipped 182s === RUN TestRunScripts/error_on_order_file_not_existing 182s === PAUSE TestRunScripts/error_on_order_file_not_existing 182s === RUN TestRunScripts/error_on_not_ready_for_execution 182s === PAUSE TestRunScripts/error_on_not_ready_for_execution 182s === RUN TestRunScripts/scripts_referenced_in_subdirectories 182s === PAUSE TestRunScripts/scripts_referenced_in_subdirectories 182s === RUN TestRunScripts/script_directory_without_shutdown_order_has_no_session_running_flag_after_machine_shutdown 182s === PAUSE TestRunScripts/script_directory_without_shutdown_order_has_no_session_running_flag_after_machine_shutdown 182s === RUN TestRunScripts/error_on_argument_not_a_file 182s === PAUSE TestRunScripts/error_on_argument_not_a_file 182s === CONT TestApplyPolicy/One_script 182s === CONT TestApplyPolicy/No_entries_is_an_empty_folder 182s === CONT TestApplyPolicy/Error_on_running_start_script_that_runs_systemctl_and_systemctl_fails 182s time="2025-10-18T16:23:13Z" level=info msg="Running machine startup scripts" 182s === CONT TestApplyPolicy/Error_on_save_assets_dumping_failing 182s === CONT TestApplyPolicy/Error_on_users_run_directory_Read_Only 182s === CONT TestApplyPolicy/Error_on_subfolder_listed 182s === CONT TestApplyPolicy/Systemctl_failing_does_not_impact_user_scripts_update 182s === CONT TestApplyPolicy/Destination_is_not_ready,_refreshing 182s === CONT TestApplyPolicy/Subfolder_with_same_script_name 182s === CONT TestApplyPolicy/Error_on_invalid_GID 182s === CONT TestApplyPolicy/User_lookup_failing_does_not_impact_machine_update 182s === CONT TestApplyPolicy/No_entries_update_existing_non_ready_folder 182s === CONT TestApplyPolicy/Destination_is_already_ready_but_not_in_session,_refreshing 182s === CONT TestRunScripts/one_script 182s === CONT TestApplyPolicy/Same_script_is_used_multiple_times 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsone_script3029639670/001/users/foo/scripts/s\"" 182s --- PASS: TestApplyPolicy (0.00s) 182s --- PASS: TestApplyPolicy/One_directory,_multiple_scripts_in_order (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_user_lookup_failing (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_invalid_UID (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_script_does_not_exist (0.00s) 182s --- PASS: TestApplyPolicy/Startup_script_for_computer_runs_systemctl_(systemctl_success) (0.00s) 182s --- PASS: TestApplyPolicy/Subfolder_with_script (0.00s) 182s --- PASS: TestApplyPolicy/Destination_is_already_running,_no_change (0.00s) 182s --- PASS: TestApplyPolicy/Computer,_no_systemctl_with_other_directory_than_startup (0.00s) 182s --- PASS: TestApplyPolicy/Empty_entries_are_discared (0.00s) 182s --- PASS: TestApplyPolicy/One_script (0.00s) 182s --- PASS: TestApplyPolicy/No_entries_is_an_empty_folder (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_running_start_script_that_runs_systemctl_and_systemctl_fails (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_save_assets_dumping_failing (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_users_run_directory_Read_Only (0.00s) 182s --- PASS: TestApplyPolicy/Error_on_subfolder_listed (0.00s) 182s --- PASS: TestApplyPolicy/Systemctl_failing_does_not_impact_user_scripts_update (0.00s) 182s --- PASS: TestApplyPolicy/Destination_is_not_ready,_refreshing (0.00s) 182s --- PASS: TestApplyPolicy/Subfolder_with_same_script_name (0.00s) 182s --- PASS: TestApplyPolicy/Multiple_directories: (0.01s) 182s --- PASS: TestApplyPolicy/Error_on_invalid_GID (0.00s) 182s --- PASS: TestApplyPolicy/No_entries_update_existing_non_ready_folder (0.00s) 182s --- PASS: TestApplyPolicy/User_lookup_failing_does_not_impact_machine_update (0.00s) 182s --- PASS: TestApplyPolicy/Destination_is_already_ready_but_not_in_session,_refreshing (0.00s) 182s --- PASS: TestApplyPolicy/Same_script_is_used_multiple_times (0.00s) 182s === CONT TestRunScripts/error_on_argument_not_a_file 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptserror_on_argument_not_a_file760256678/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/script_directory_without_shutdown_order_has_no_session_running_flag_after_machine_shutdown 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsscript_directory_without_shutdown_order_has_no_se2573424453/001/machine/foo/scripts/shutdown\"" 182s time="2025-10-18T16:23:13Z" level=info msg="\"/tmp/TestRunScriptsscript_directory_without_shutdown_order_has_no_se2573424453/001/machine/foo/scripts/shutdown\" doesn't exist, but allowed to be missing, skipping" 182s === CONT TestRunScripts/scripts_referenced_in_subdirectories 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsscripts_referenced_in_subdirectories1320805592/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/error_on_not_ready_for_execution 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptserror_on_not_ready_for_execution2052781891/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/error_on_order_file_not_existing 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptserror_on_order_file_not_existing4237849543/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/spaces_and_empty_lines_are_skipped 182s time="2025-10-18T16:23:13Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsspaces_and_empty_lines_are_skipped854205182/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/keeps_running_flag_after_non_machine_shutdown 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptskeeps_running_flag_after_non_machine_shutdown3231126761/001/users/foo/scripts/shutdown\"" 182s === CONT TestRunScripts/still_executes_without_existing_running_flag_on_user_logoff 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsstill_executes_without_existing_running_flag_on_u2122525069/001/users/foo/scripts/logoff\"" 182s === CONT TestRunScripts/has_no_session_running_flag_after_machine_shutdown 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptshas_no_session_running_flag_after_machine_shutdow2478807023/001/machine/foo/scripts/shutdown\"" 182s === CONT TestRunScripts/script_directory_without_logoff_order_has_no_session_running_flag_after_user_logoff 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsscript_directory_without_logoff_order_has_no_sess1279001187/001/users/foo/scripts/logoff\"" 182s time="2025-10-18T16:23:14Z" level=info msg="\"/tmp/TestRunScriptsscript_directory_without_logoff_order_has_no_sess1279001187/001/users/foo/scripts/logoff\" doesn't exist, but allowed to be missing, skipping" 182s === CONT TestRunScripts/multiple_scripts_are_run_in_order 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsmultiple_scripts_are_run_in_order3545287379/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/allow_order_file_missing 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsallow_order_file_missing1645266547/001/users/foo/scripts/s\"" 182s time="2025-10-18T16:23:14Z" level=info msg="\"/tmp/TestRunScriptsallow_order_file_missing1645266547/001/users/foo/scripts/s\" doesn't exist, but allowed to be missing, skipping" 182s === CONT TestRunScripts/still_executes_without_existing_running_flag_on_machine_shutdown 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsstill_executes_without_existing_running_flag_on_m1519193017/001/machine/foo/scripts/shutdown\"" 182s === CONT TestRunScripts/keeps_running_flag_after_non_user_logoff 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptskeeps_running_flag_after_non_user_logoff2404737813/001/machine/foo/scripts/logoff\"" 182s === CONT TestRunScripts/has_no_session_running_flag_after_user_logoff 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptshas_no_session_running_flag_after_user_logoff2800895542/001/users/foo/scripts/logoff\"" 182s === CONT TestRunScripts/scripts_not_listed_are_not_run 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsscripts_not_listed_are_not_run749732790/001/users/foo/scripts/s\"" 182s === CONT TestRunScripts/scripts_that_are_not_executable_are_skipped 182s time="2025-10-18T16:23:14Z" level=info msg="Calling RunScripts on \"/tmp/TestRunScriptsscripts_that_are_not_executable_are_skipped358688687/001/users/foo/scripts/s\"" 182s time="2025-10-18T16:23:14Z" level=warning msg="\"/tmp/TestRunScriptsscripts_that_are_not_executable_are_skipped358688687/001/users/foo/scripts/scripts/notexecutable.sh\" failed to run\nfork/exec /tmp/TestRunScriptsscripts_that_are_not_executable_are_skipped358688687/001/users/foo/scripts/scripts/notexecutable.sh: permission denied" 182s --- PASS: TestRunScripts (0.01s) 182s --- PASS: TestRunScripts/error_on_argument_not_a_file (0.00s) 182s --- PASS: TestRunScripts/script_directory_without_shutdown_order_has_no_session_running_flag_after_machine_shutdown (0.00s) 182s --- PASS: TestRunScripts/one_script (0.02s) 182s --- PASS: TestRunScripts/error_on_not_ready_for_execution (0.00s) 182s --- PASS: TestRunScripts/error_on_order_file_not_existing (0.00s) 182s --- PASS: TestRunScripts/scripts_referenced_in_subdirectories (0.04s) 182s --- PASS: TestRunScripts/spaces_and_empty_lines_are_skipped (0.02s) 182s --- PASS: TestRunScripts/keeps_running_flag_after_non_machine_shutdown (0.03s) 182s --- PASS: TestRunScripts/still_executes_without_existing_running_flag_on_user_logoff (0.04s) 182s --- PASS: TestRunScripts/script_directory_without_logoff_order_has_no_session_running_flag_after_user_logoff (0.00s) 182s --- PASS: TestRunScripts/multiple_scripts_are_run_in_order (0.02s) 182s --- PASS: TestRunScripts/allow_order_file_missing (0.00s) 182s --- PASS: TestRunScripts/has_no_session_running_flag_after_machine_shutdown (0.05s) 182s --- PASS: TestRunScripts/still_executes_without_existing_running_flag_on_machine_shutdown (0.03s) 182s --- PASS: TestRunScripts/keeps_running_flag_after_non_user_logoff (0.03s) 182s --- PASS: TestRunScripts/scripts_not_listed_are_not_run (0.02s) 182s --- PASS: TestRunScripts/has_no_session_running_flag_after_user_logoff (0.04s) 182s --- PASS: TestRunScripts/scripts_that_are_not_executable_are_skipped (0.02s) 182s PASS 182s ok github.com/ubuntu/adsys/internal/policies/scripts 0.218s 182s === RUN TestExclusiveLockExec 182s --- PASS: TestExclusiveLockExec (0.01s) 182s === RUN TestExclusiveLockSmb 182s --- PASS: TestExclusiveLockSmb (0.01s) 182s === RUN TestMultipleExecLocksOnlyReleaseOnLast 182s --- PASS: TestMultipleExecLocksOnlyReleaseOnLast (0.01s) 182s === RUN TestMultipleSmbLocksOnlyReleaseOnLast 182s --- PASS: TestMultipleSmbLocksOnlyReleaseOnLast (0.01s) 182s PASS 182s ok github.com/ubuntu/adsys/internal/smbsafe 0.043s 182s === RUN TestAddStdoutForwarder 182s --- PASS: TestAddStdoutForwarder (0.00s) 182s === RUN TestAddStderrForwarder 182s --- PASS: TestAddStderrForwarder (0.00s) 182s === RUN TestAddStdoutForwarderEnsureStderrNoPolluted 182s --- PASS: TestAddStdoutForwarderEnsureStderrNoPolluted (0.00s) 182s === RUN TestAddForwarderAndDisconnect 182s --- PASS: TestAddForwarderAndDisconnect (0.00s) 182s === RUN TestAddForwardersGraduallyAndDisconnect 182s --- PASS: TestAddForwardersGraduallyAndDisconnect (0.01s) 182s === RUN TestAddForwarderDifferentWriterStdoutStderr 182s --- PASS: TestAddForwarderDifferentWriterStdoutStderr (0.00s) 182s === RUN TestAddForwarderSameWriterStdoutStderr 182s --- PASS: TestAddForwarderSameWriterStdoutStderr (0.00s) 182s === RUN TestAddStdoutForwarderWithBlockedStdout 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to write to regular output: write |1: file already closed" 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to write to regular output: write |1: file already closed" 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to write to regular output: write |1: file already closed" 182s --- PASS: TestAddStdoutForwarderWithBlockedStdout (0.01s) 182s === RUN TestAddStderrForwarderWithBlockedStderr 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to write to regular output: write |1: file already closed" 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to write to regular output: write |1: file already closed" 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to write to regular output: write |1: file already closed" 182s --- PASS: TestAddStderrForwarderWithBlockedStderr (0.01s) 182s === RUN TestAddStdoutForwarderOneWithFailingForwarder 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to forward log: Error from failedWriter" 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to forward log: Error from failedWriter" 182s time="2025-10-18T16:23:14Z" level=warning msg="Failed to forward log: Error from failedWriter" 182s --- PASS: TestAddStdoutForwarderOneWithFailingForwarder (0.01s) 182s PASS 182s ok github.com/ubuntu/adsys/internal/stdforward 0.049s 182s === RUN TestManageUnit 182s === PAUSE TestManageUnit 182s === RUN TestDaemonReload 182s === PAUSE TestDaemonReload 182s === CONT TestManageUnit 182s === CONT TestDaemonReload 182s === RUN TestManageUnit/Error_when_enabling_unit_that_doesn't_exist 182s === PAUSE TestManageUnit/Error_when_enabling_unit_that_doesn't_exist 182s === RUN TestManageUnit/Error_when_disabling_unit_that_doesn't_exist 182s === PAUSE TestManageUnit/Error_when_disabling_unit_that_doesn't_exist 182s === RUN TestManageUnit/Stop_unit_that_exists 182s === PAUSE TestManageUnit/Stop_unit_that_exists 182s === RUN TestManageUnit/Error_when_stopping_failing_unit 182s === PAUSE TestManageUnit/Error_when_stopping_failing_unit 182s === RUN TestManageUnit/Start_unit_that_exists 182s === PAUSE TestManageUnit/Start_unit_that_exists 182s === RUN TestManageUnit/Enable_unit_that_exists 182s === PAUSE TestManageUnit/Enable_unit_that_exists 182s === RUN TestManageUnit/Disable_unit_that_exists 182s === PAUSE TestManageUnit/Disable_unit_that_exists 182s === RUN TestManageUnit/Error_when_starting_unit_that_doesn't_exist 182s === PAUSE TestManageUnit/Error_when_starting_unit_that_doesn't_exist 182s === RUN TestManageUnit/Error_when_starting_failing_unit 182s === PAUSE TestManageUnit/Error_when_starting_failing_unit 182s === RUN TestManageUnit/Error_when_stopping_unit_that_doesn't_exist 182s === PAUSE TestManageUnit/Error_when_stopping_unit_that_doesn't_exist 182s === CONT TestManageUnit/Error_when_enabling_unit_that_doesn't_exist 182s === CONT TestManageUnit/Enable_unit_that_exists 182s --- PASS: TestDaemonReload (0.00s) 182s === CONT TestManageUnit/Error_when_stopping_unit_that_doesn't_exist 182s === CONT TestManageUnit/Error_when_starting_failing_unit 182s === CONT TestManageUnit/Error_when_starting_unit_that_doesn't_exist 182s === CONT TestManageUnit/Disable_unit_that_exists 182s === CONT TestManageUnit/Error_when_stopping_failing_unit 182s === CONT TestManageUnit/Start_unit_that_exists 182s === CONT TestManageUnit/Stop_unit_that_exists 182s === CONT TestManageUnit/Error_when_disabling_unit_that_doesn't_exist 182s --- PASS: TestManageUnit (0.00s) 182s --- PASS: TestManageUnit/Error_when_enabling_unit_that_doesn't_exist (0.00s) 182s --- PASS: TestManageUnit/Error_when_stopping_unit_that_doesn't_exist (0.00s) 182s --- PASS: TestManageUnit/Enable_unit_that_exists (0.00s) 182s --- PASS: TestManageUnit/Error_when_starting_unit_that_doesn't_exist (0.00s) 182s --- PASS: TestManageUnit/Error_when_starting_failing_unit (0.00s) 182s --- PASS: TestManageUnit/Disable_unit_that_exists (0.00s) 182s --- PASS: TestManageUnit/Start_unit_that_exists (0.00s) 182s --- PASS: TestManageUnit/Error_when_stopping_failing_unit (0.00s) 182s --- PASS: TestManageUnit/Error_when_disabling_unit_that_doesn't_exist (0.00s) 182s --- PASS: TestManageUnit/Stop_unit_that_exists (0.00s) 182s PASS 182s ok github.com/ubuntu/adsys/internal/systemd 0.011s 182s ? github.com/ubuntu/adsys/internal/testutils [no test files] 182s ? github.com/ubuntu/adsys/internal/watchdservice [no test files] 183s === RUN TestInteractiveInput 183s === RUN TestInteractiveInput/Found_installed_service,_config_overridden 183s === RUN TestInteractiveInput/No_directories,_focus_on_dir_input 183s === RUN TestInteractiveInput/Submit_with_fresh_config_in_nested_directory 183s === RUN TestInteractiveInput/Initial_view 183s === RUN TestInteractiveInput/Config_file_exists 183s === RUN TestInteractiveInput/Config_file_is_absent_and_input_is_a_dir 183s === RUN TestInteractiveInput/Directory_is_a_file,_block_input 183s === RUN TestInteractiveInput/Multiple_existing_directories,_can_cycle_between_the_inputs 183s === RUN TestInteractiveInput/Submit_with_default_config 183s === RUN TestInteractiveInput/Submit_with_duplicate_directories 183s === RUN TestInteractiveInput/Submit_with_double_dot_directories_is_normalized 183s === RUN TestInteractiveInput/Existing_config_file_is_passed_in_and_is_empty_or_has_no_directories 183s === RUN TestInteractiveInput/Config_file_is_absent_and_input_is_absolute 183s === RUN TestInteractiveInput/Directory_exists 183s === RUN TestInteractiveInput/Directory_does_not_exist,_block_input 183s === RUN TestInteractiveInput/Dot_and_double_dot_directory_inputs_are_normalized 183s === RUN TestInteractiveInput/Submit_with_directory_as_config_input 183s === RUN TestInteractiveInput/Other_navigation_tests 183s === RUN TestInteractiveInput/Existing_config_file_is_passed_in_and_contains_directories_which_exist_on_the_system 183s === RUN TestInteractiveInput/Existing_config_file_is_passed_in_and_contains_directories,_not_all_which_exist_on_the_system 183s === RUN TestInteractiveInput/Found_installed_service,_config_not_overridden 183s === RUN TestInteractiveInput/Multiple_existing_directories,_can_delete_them 183s === RUN TestInteractiveInput/Submit_with_fresh_config_in_current_directory 183s === RUN TestInteractiveInput/Submit_with_dot_directories_is_normalized 183s === RUN TestInteractiveInput/Config_file_is_absent_and_input_is_relative 183s --- PASS: TestInteractiveInput (0.02s) 183s --- PASS: TestInteractiveInput/Found_installed_service,_config_overridden (0.00s) 183s --- PASS: TestInteractiveInput/No_directories,_focus_on_dir_input (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_fresh_config_in_nested_directory (0.00s) 183s --- PASS: TestInteractiveInput/Initial_view (0.00s) 183s --- PASS: TestInteractiveInput/Config_file_exists (0.00s) 183s --- PASS: TestInteractiveInput/Config_file_is_absent_and_input_is_a_dir (0.00s) 183s --- PASS: TestInteractiveInput/Directory_is_a_file,_block_input (0.00s) 183s --- PASS: TestInteractiveInput/Multiple_existing_directories,_can_cycle_between_the_inputs (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_default_config (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_duplicate_directories (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_double_dot_directories_is_normalized (0.00s) 183s --- PASS: TestInteractiveInput/Existing_config_file_is_passed_in_and_is_empty_or_has_no_directories (0.00s) 183s --- PASS: TestInteractiveInput/Config_file_is_absent_and_input_is_absolute (0.00s) 183s --- PASS: TestInteractiveInput/Directory_exists (0.00s) 183s --- PASS: TestInteractiveInput/Directory_does_not_exist,_block_input (0.00s) 183s --- PASS: TestInteractiveInput/Dot_and_double_dot_directory_inputs_are_normalized (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_directory_as_config_input (0.00s) 183s --- PASS: TestInteractiveInput/Other_navigation_tests (0.00s) 183s --- PASS: TestInteractiveInput/Existing_config_file_is_passed_in_and_contains_directories_which_exist_on_the_system (0.00s) 183s --- PASS: TestInteractiveInput/Existing_config_file_is_passed_in_and_contains_directories,_not_all_which_exist_on_the_system (0.00s) 183s --- PASS: TestInteractiveInput/Found_installed_service,_config_not_overridden (0.00s) 183s --- PASS: TestInteractiveInput/Multiple_existing_directories,_can_delete_them (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_fresh_config_in_current_directory (0.00s) 183s --- PASS: TestInteractiveInput/Submit_with_dot_directories_is_normalized (0.00s) 183s --- PASS: TestInteractiveInput/Config_file_is_absent_and_input_is_relative (0.00s) 183s === RUN TestInteractiveInstall 183s watchdtui_test.go:408: Test has to be run as root, skipping... 183s --- SKIP: TestInteractiveInstall (0.00s) 183s === RUN TestInteractiveUpdate 183s watchdtui_test.go:456: Test has to be run as root, skipping... 183s --- SKIP: TestInteractiveUpdate (0.00s) 183s PASS 183s ok github.com/ubuntu/adsys/internal/watchdtui 0.019s 187s === RUN TestWatchDirectory 187s === PAUSE TestWatchDirectory 187s === RUN TestRefreshGracePeriod 187s === PAUSE TestRefreshGracePeriod 187s === RUN TestUpdateDirs 187s === PAUSE TestUpdateDirs 187s === RUN TestUpdateDirsFailing 187s === PAUSE TestUpdateDirsFailing 187s === RUN TestUpdateDirsWithEmptyDirSlice 187s === PAUSE TestUpdateDirsWithEmptyDirSlice 187s === RUN TestUpdateDirsOnStoppedWatcher 187s === PAUSE TestUpdateDirsOnStoppedWatcher 187s === RUN TestStopWithoutStart 187s === PAUSE TestStopWithoutStart 187s === CONT TestWatchDirectory 187s === RUN TestWatchDirectory/Updating_gpt.ini_is_a_no-op 187s === PAUSE TestWatchDirectory/Updating_gpt.ini_is_a_no-op 187s === RUN TestWatchDirectory/New_subdir 187s === PAUSE TestWatchDirectory/New_subdir 187s === RUN TestWatchDirectory/Multiple_directories_with_different_versions,_all_updated 187s === PAUSE TestWatchDirectory/Multiple_directories_with_different_versions,_all_updated 187s === RUN TestWatchDirectory/Error_on_updating_malformed_GPT.ini 187s === PAUSE TestWatchDirectory/Error_on_updating_malformed_GPT.ini 187s === RUN TestWatchDirectory/Error_on_listing_no_directory 187s === PAUSE TestWatchDirectory/Error_on_listing_no_directory 187s === RUN TestWatchDirectory/No_update,_no_gpt.ini 187s === PAUSE TestWatchDirectory/No_update,_no_gpt.ini 187s === RUN TestWatchDirectory/Rename_file 187s === PAUSE TestWatchDirectory/Rename_file 187s === RUN TestWatchDirectory/Rename_file_and_update 187s === PAUSE TestWatchDirectory/Rename_file_and_update 187s === RUN TestWatchDirectory/New_file,_subdir 187s === PAUSE TestWatchDirectory/New_file,_subdir 187s === RUN TestWatchDirectory/Multiple_directories,_only_one_is_updated 187s === PAUSE TestWatchDirectory/Multiple_directories,_only_one_is_updated 187s === RUN TestWatchDirectory/New_file,_no_gpt.ini 187s === PAUSE TestWatchDirectory/New_file,_no_gpt.ini 187s === RUN TestWatchDirectory/No_update,_existing_gpt.ini 187s === PAUSE TestWatchDirectory/No_update,_existing_gpt.ini 187s === RUN TestWatchDirectory/Remove_file 187s === PAUSE TestWatchDirectory/Remove_file 187s === RUN TestWatchDirectory/New_subdir_without_file 187s === PAUSE TestWatchDirectory/New_subdir_without_file 187s === RUN TestWatchDirectory/Error_on_non_existing_directory 187s === PAUSE TestWatchDirectory/Error_on_non_existing_directory 187s === RUN TestWatchDirectory/Update_with_existing_gpt.ini 187s === PAUSE TestWatchDirectory/Update_with_existing_gpt.ini 187s === RUN TestWatchDirectory/Update_existing_file 187s === PAUSE TestWatchDirectory/Update_existing_file 187s === RUN TestWatchDirectory/Remove_root_directory 187s === PAUSE TestWatchDirectory/Remove_root_directory 187s === RUN TestWatchDirectory/Existing_file,_subdir 187s === PAUSE TestWatchDirectory/Existing_file,_subdir 187s === RUN TestWatchDirectory/Nested_new_subdirs 187s === PAUSE TestWatchDirectory/Nested_new_subdirs 187s === RUN TestWatchDirectory/Multiple_nested_subdirectories 187s === PAUSE TestWatchDirectory/Multiple_nested_subdirectories 187s === RUN TestWatchDirectory/Multiple_nested_subdirectories,_only_update_nested_file 187s === PAUSE TestWatchDirectory/Multiple_nested_subdirectories,_only_update_nested_file 187s === RUN TestWatchDirectory/Combined_case 187s === PAUSE TestWatchDirectory/Combined_case 187s === CONT TestWatchDirectory/Updating_gpt.ini_is_a_no-op 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching /tmp/TestWatchDirectoryUpdating_gpt.ini_is_a_no-op1408137783/001/one_file and children" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdating_gpt.ini_is_a_no-op1408137783/001/one_file" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdating_gpt.ini_is_a_no-op1408137783/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdating_gpt.ini_is_a_no-op1408137783/001/one_file/alreadyexists" 187s === CONT TestStopWithoutStart 187s --- PASS: TestStopWithoutStart (0.00s) 187s === CONT TestUpdateDirsOnStoppedWatcher 187s time="2025-10-18T16:23:15Z" level=debug msg="Updating directories to [/tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir]" 187s time="2025-10-18T16:23:15Z" level=warning msg="Error stopping watcher: the service is already stopping or not running" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir and children" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/GPT.INI" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexists" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexistsDir" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:15Z" level=debug msg="Watching: /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:15Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryUpdating_gpt.ini_is_a_no-op1408137783/001/one_file/GPT.INI\"" 187s time="2025-10-18T16:23:15Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryUpdating_gpt.ini_is_a_no-op1408137783/001/one_file/GPT.INI\"" 187s time="2025-10-18T16:23:15Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexists\"" 187s time="2025-10-18T16:23:15Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexists\"" 187s time="2025-10-18T16:23:15Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexists\"" 187s time="2025-10-18T16:23:15Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/alreadyexists\"" 187s time="2025-10-18T16:23:15Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:15Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:15Z" level=info msg="Bumping version for /tmp/TestUpdateDirsOnStoppedWatcher842720054/001/curdir/GPT.INI" 187s === CONT TestWatchDirectory/New_subdir_without_file 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/newsubdir\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/newsubdir\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/newsubdir\"" 187s --- PASS: TestUpdateDirsOnStoppedWatcher (0.29s) 187s === CONT TestUpdateDirsWithEmptyDirSlice 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsWithEmptyDirSlice1815214075/001/watchdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Updating directories to []" 187s time="2025-10-18T16:23:16Z" level=info msg="Watcher stopped" 187s --- PASS: TestUpdateDirsWithEmptyDirSlice (0.00s) 187s === CONT TestUpdateDirsFailing 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirsFailing2215713599/001/remove and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/remove" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/remove/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirsFailing2215713599/001/keep and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/keep" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/keep/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Updating directories to [/tmp/TestUpdateDirsFailing2215713599/001/keep unexisting]" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirsFailing2215713599/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryNew_subdir_without_file1812415111/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestUpdateDirsFailing2215713599/001/keep/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestUpdateDirsFailing2215713599/001/remove/GPT.INI" 187s === CONT TestUpdateDirs 187s --- PASS: TestUpdateDirsFailing (0.21s) 187s === CONT TestRefreshGracePeriod 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestRefreshGracePeriod4288446117/001/withsubdir and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestRefreshGracePeriod4288446117/001/withsubdir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestRefreshGracePeriod4288446117/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirs2531096573/001/remove and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/remove" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/remove/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/remove/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/remove/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/remove/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/remove/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirs2531096573/001/keep and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/remove/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Updating directories to [/tmp/TestUpdateDirs2531096573/001/keep /tmp/TestUpdateDirs2531096573/001/add]" 187s time="2025-10-18T16:23:16Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestUpdateDirs2531096573/001/remove/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirs2531096573/001/keep and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/keep/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestUpdateDirs2531096573/001/add and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/add" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/add/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/add/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/add/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/add/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestUpdateDirs2531096573/001/add/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/keep/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/add/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/add/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/add/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestUpdateDirs2531096573/001/add/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestUpdateDirs2531096573/001/keep/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestUpdateDirs2531096573/001/add/GPT.INI" 187s --- PASS: TestUpdateDirs (0.52s) 187s === CONT TestWatchDirectory/Combined_case 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/new\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/new\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/dir\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/dir and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/dir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/dir/file" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir/new\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/alreadyexistsDir/new\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/otherdir\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/otherdir and children" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/otherdir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/otherdir/subdir" 187s time="2025-10-18T16:23:16Z" level=debug msg="Watching: /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/otherdir/subdir/file" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/newdir\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/newdir\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:16Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:16Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryCombined_case1602185859/001/withsubdir/GPT.INI" 187s === CONT TestWatchDirectory/Multiple_nested_subdirectories,_only_update_nested_file 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryMultiple_nested_subdirectories,_only_update_n3372822593/001/withsubdir/alreadyexistsDir/GPT.INI" 187s === CONT TestWatchDirectory/Multiple_nested_subdirectories 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/new\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/new\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryMultiple_nested_subdirectories4294865906/001/withsubdir/alreadyexistsDir/GPT.INI" 187s === CONT TestWatchDirectory/Nested_new_subdirs 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/otherdir\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/otherdir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/otherdir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/otherdir/subdir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/otherdir/subdir/file" 187s time="2025-10-18T16:23:17Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryNested_new_subdirs1336283345/001/withsubdir/GPT.INI" 187s === CONT TestWatchDirectory/Existing_file,_subdir 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/alreadyexistsDir/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryExisting_file,_subdir4280687879/001/withsubdir/GPT.INI" 187s === CONT TestWatchDirectory/Remove_root_directory 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file and children" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: CHMOD \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Failed to remove watcher on \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists\": fsnotify: can't remove non-existent watch: /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Failed to remove watcher on \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists\": fsnotify: can't remove non-existent watch: /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: CHMOD \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Failed to remove watcher on \"/tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file\": fsnotify: can't remove non-existent watch: /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestRefreshGracePeriod4288446117/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=debug msg="Got event: WRITE \"/tmp/TestRefreshGracePeriod4288446117/001/withsubdir/GPT.INI\"" 187s time="2025-10-18T16:23:17Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:17Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:17Z" level=info msg="error loading ini contents: open /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI: no such file or directory, creating a new file" 187s time="2025-10-18T16:23:17Z" level=warning msg="Failed to bump /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI version: can't bump version for /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI: open /tmp/TestWatchDirectoryRemove_root_directory1954681827/001/one_file/GPT.INI: no such file or directory" 187s === CONT TestWatchDirectory/Update_existing_file 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryUpdate_existing_file1574473158/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s --- PASS: TestRefreshGracePeriod (1.96s) 187s === CONT TestWatchDirectory/Update_with_existing_gpt.ini 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file/new\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file/new\"" 187s === CONT TestWatchDirectory/Error_on_non_existing_directory 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryError_on_non_existing_directory2362832212/001/doesnotexist and children" 187s === CONT TestWatchDirectory/Rename_file 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryRename_file2581150301/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRename_file2581150301/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRename_file2581150301/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRename_file2581150301/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: RENAME \"/tmp/TestWatchDirectoryRename_file2581150301/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryRename_file2581150301/001/one_file/alreadyexists.bak\"" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryUpdate_with_existing_gpt.ini314614156/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryRename_file2581150301/001/one_file/GPT.INI" 187s === CONT TestWatchDirectory/Remove_file 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: CHMOD \"/tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Failed to remove watcher on \"/tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists\": fsnotify: can't remove non-existent watch: /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: REMOVE \"/tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Failed to remove watcher on \"/tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists\": fsnotify: can't remove non-existent watch: /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/alreadyexists" 187s === CONT TestWatchDirectory/No_update,_existing_gpt.ini 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryNo_update,_existing_gpt.ini3212145967/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNo_update,_existing_gpt.ini3212145967/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNo_update,_existing_gpt.ini3212145967/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNo_update,_existing_gpt.ini3212145967/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryRemove_file2598794497/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s === CONT TestWatchDirectory/New_file,_no_gpt.ini 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt/testfile" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt/new\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt/new\"" 187s === CONT TestWatchDirectory/Multiple_directories,_only_one_is_updated 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=info msg="error loading ini contents: open /tmp/TestWatchDirectoryNew_file,_no_gpt.ini822402517/001/no_gpt/GPT.INI: no such file or directory, creating a new file" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryMultiple_directories,_only_one_is_updated3440330801/001/withsubdir/GPT.INI" 187s === CONT TestWatchDirectory/New_file,_subdir 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/alreadyexistsDir/new\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/alreadyexistsDir/new\"" 187s === CONT TestWatchDirectory/Rename_file_and_update 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching /tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file and children" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:18Z" level=debug msg="Watching: /tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: RENAME \"/tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file/alreadyexists.bak\"" 187s time="2025-10-18T16:23:18Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file/alreadyexists.bak\"" 187s time="2025-10-18T16:23:18Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:18Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryNew_file,_subdir3742887379/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:19Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryRename_file_and_update1686498138/001/one_file/GPT.INI" 187s === CONT TestWatchDirectory/Multiple_directories_with_different_versions,_all_updated 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file and children" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file/alreadyexists" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir and children" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file/alreadyexists\"" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/alreadyexists\"" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/alreadyexists\"" 187s === CONT TestWatchDirectory/No_update,_no_gpt.ini 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching /tmp/TestWatchDirectoryNo_update,_no_gpt.ini1378488907/001/no_gpt and children" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNo_update,_no_gpt.ini1378488907/001/no_gpt" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNo_update,_no_gpt.ini1378488907/001/no_gpt/testfile" 187s time="2025-10-18T16:23:19Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:19Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/one_file/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryMultiple_directories_with_different_versions,1718862539/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=info msg="Watcher stopped" 187s === CONT TestWatchDirectory/Error_on_listing_no_directory 187s === CONT TestWatchDirectory/Error_on_updating_malformed_GPT.ini 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching /tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed and children" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed/new\"" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: WRITE \"/tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed/new\"" 187s === CONT TestWatchDirectory/New_subdir 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir and children" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/alreadyexists" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/alreadyexistsDir" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/alreadyexistsDir/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/alreadyexistsDir/alreadyexists" 187s time="2025-10-18T16:23:19Z" level=debug msg="Got event: CREATE \"/tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/dir\"" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/dir and children" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/dir" 187s time="2025-10-18T16:23:19Z" level=debug msg="Watching: /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/dir/file" 187s time="2025-10-18T16:23:19Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:19Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed/GPT.INI" 187s time="2025-10-18T16:23:19Z" level=warning msg="Failed to bump /tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed/GPT.INI version: can't bump version for /tmp/TestWatchDirectoryError_on_updating_malformed_GPT.ini4102268128/001/malformed/GPT.INI: strconv.ParseInt: parsing \"??\": invalid syntax" 187s time="2025-10-18T16:23:19Z" level=info msg="Watcher stopped" 187s time="2025-10-18T16:23:19Z" level=info msg="Bumping version for /tmp/TestWatchDirectoryNew_subdir1833044598/001/withsubdir/GPT.INI" 187s --- PASS: TestWatchDirectory (0.00s) 187s --- PASS: TestWatchDirectory/Updating_gpt.ini_is_a_no-op (0.27s) 187s --- PASS: TestWatchDirectory/New_subdir_without_file (0.21s) 187s --- PASS: TestWatchDirectory/Combined_case (0.24s) 187s --- PASS: TestWatchDirectory/Multiple_nested_subdirectories,_only_update_nested_file (0.21s) 187s --- PASS: TestWatchDirectory/Multiple_nested_subdirectories (0.22s) 187s --- PASS: TestWatchDirectory/Nested_new_subdirs (0.20s) 187s --- PASS: TestWatchDirectory/Existing_file,_subdir (0.20s) 187s --- PASS: TestWatchDirectory/Remove_root_directory (0.20s) 187s --- PASS: TestWatchDirectory/Update_existing_file (0.20s) 187s --- PASS: TestWatchDirectory/Error_on_non_existing_directory (0.00s) 187s --- PASS: TestWatchDirectory/Update_with_existing_gpt.ini (0.20s) 187s --- PASS: TestWatchDirectory/Rename_file (0.20s) 187s --- PASS: TestWatchDirectory/Remove_file (0.21s) 187s --- PASS: TestWatchDirectory/No_update,_existing_gpt.ini (0.21s) 187s --- PASS: TestWatchDirectory/New_file,_no_gpt.ini (0.20s) 187s --- PASS: TestWatchDirectory/Multiple_directories,_only_one_is_updated (0.22s) 187s --- PASS: TestWatchDirectory/New_file,_subdir (0.21s) 187s --- PASS: TestWatchDirectory/Rename_file_and_update (0.20s) 187s --- PASS: TestWatchDirectory/Multiple_directories_with_different_versions,_all_updated (0.20s) 187s --- PASS: TestWatchDirectory/Error_on_listing_no_directory (0.00s) 187s --- PASS: TestWatchDirectory/No_update,_no_gpt.ini (0.20s) 187s --- PASS: TestWatchDirectory/Error_on_updating_malformed_GPT.ini (0.20s) 187s --- PASS: TestWatchDirectory/New_subdir (0.24s) 187s PASS 187s ok github.com/ubuntu/adsys/internal/watcher 3.772s 187s ? github.com/ubuntu/adsys/po [no test files] 187s ? github.com/ubuntu/adsys/policies [no test files] 188s autopkgtest [16:23:20]: test command1: -----------------------] 188s autopkgtest [16:23:20]: test command1: - - - - - - - - - - results - - - - - - - - - - 188s command1 PASS 189s autopkgtest [16:23:21]: test command2: preparing testbed 189s Reading package lists... 189s Building dependency tree... 189s Reading state information... 189s Solving dependencies... 189s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 190s autopkgtest [16:23:22]: test command2: ./debian/tests/test sudo 190s autopkgtest [16:23:22]: test command2: [----------------------- 190s Skipping root tests for non-amd64/arm64 architecture 191s autopkgtest [16:23:23]: test command2: -----------------------] 191s autopkgtest [16:23:23]: test command2: - - - - - - - - - - results - - - - - - - - - - 191s command2 SKIP exit status 77 and marked as skippable 192s autopkgtest [16:23:24]: @@@@@@@@@@@@@@@@@@@@ summary 192s command1 PASS 192s command2 SKIP exit status 77 and marked as skippable