main 0857610

Test success 2m 37s

Annotations 1

  • Complete job

    warning

    Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-go@v5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

  1. Current runner version: 'v0.5.0'
  2. GITHUB_TOKEN Permissions
  3. Contents: read
  4. Metadata: read
  5. Secret source: Actions
  6. Cache mode: write
  7. Prepare workflow directory
  8. Prepare all required actions
  9. Getting action download info
  10. Download action repository 'actions/checkout@v6' (SHA:d23441a48e516b6c34aea4fa41551a30e30af803)
  11. Download action repository 'actions/setup-go@v5' (SHA:40f1582b2485089dde7abd97c1529aa768e1baff)
  12. Complete job name: Test
  13. Run actions/checkout@v6
  14. with:
  15. repository: bnema/gordon
  16. token: ***
  17. ssh-strict: true
  18. ssh-user: git
  19. persist-credentials: true
  20. clean: true
  21. sparse-checkout-cone-mode: true
  22. fetch-depth: 1
  23. fetch-tags: false
  24. show-progress: true
  25. lfs: false
  26. submodules: false
  27. set-safe-directory: true
  28. allow-unsafe-pr-checkout: false
  29. Syncing repository: bnema/gordon
  30. Getting Git version info
  31. Working directory is '/home/runner/work/gordon/gordon'
  32. [command]/usr/bin/git version
  33. git version 2.53.0
  34. Temporarily overriding HOME='/home/runner/work/_temp/69d8cda0-c69a-469a-b928-c0c7556837ff' before making global git config changes
  35. Adding repository directory to the temporary git global config as a safe directory
  36. [command]/usr/bin/git config --global --add safe.directory /home/runner/work/gordon/gordon
  37. Deleting the contents of '/home/runner/work/gordon/gordon'
  38. Determining repository object format
  39. Initializing the repository
  40. [command]/usr/bin/git init /home/runner/work/gordon/gordon
  41. hint: Using 'master' as the name for the initial branch. This default branch name
  42. hint: will change to "main" in Git 3.0. To configure the initial branch name
  43. hint: to use in all of your new repositories, which will suppress this warning,
  44. hint: call:
  45. hint:
  46. hint: git config --global init.defaultBranch <name>
  47. hint:
  48. hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
  49. hint: 'development'. The just-created branch can be renamed via this command:
  50. hint:
  51. hint: git branch -m <name>
  52. hint:
  53. hint: Disable this message with "git config set advice.defaultBranchName false"
  54. Initialized empty Git repository in /home/runner/work/gordon/gordon/.git/
  55. [command]/usr/bin/git remote add origin http://ermite:7341/bnema/gordon
  56. Disabling automatic garbage collection
  57. [command]/usr/bin/git config --local gc.auto 0
  58. Setting up auth
  59. Removing SSH command configuration
  60. [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
  61. [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
  62. Removing HTTP extra header
  63. [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader
  64. [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :"
  65. Removing includeIf entries pointing to credentials config files
  66. [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
  67. [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
  68. [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-772b6349-5c3b-428e-a02c-798151feda48.config http.http://ermite:7341/.extraheader AUTHORIZATION: basic ***
  69. [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/gordon/gordon/.git.path /home/runner/work/_temp/git-credentials-772b6349-5c3b-428e-a02c-798151feda48.config
  70. [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/gordon/gordon/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-772b6349-5c3b-428e-a02c-798151feda48.config
  71. [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-772b6349-5c3b-428e-a02c-798151feda48.config
  72. [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-772b6349-5c3b-428e-a02c-798151feda48.config
  73. Fetching the repository
  74. [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +c9e9163d8e10ed27f6d17474eb94538be54e665b:refs/remotes/origin/main
  75. From http://ermite:7341/bnema/gordon
  76. * [new ref] c9e9163d8e10ed27f6d17474eb94538be54e665b -> origin/main
  77. [command]/usr/bin/git branch --list --remote origin/main
  78. origin/main
  79. [command]/usr/bin/git rev-parse refs/remotes/origin/main
  80. c9e9163d8e10ed27f6d17474eb94538be54e665b
  81. Determining the checkout info
  82. [command]/usr/bin/git sparse-checkout disable
  83. [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
  84. Checking out the ref
  85. [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
  86. Switched to a new branch 'main'
  87. branch 'main' set up to track 'origin/main'.
  88. [command]/usr/bin/git log -1 --format=%H
  89. c9e9163d8e10ed27f6d17474eb94538be54e665b
  90. Run actions/setup-go@v5
  91. with:
  92. go-version: 1.27.x
  93. cache: true
  94. check-latest: false
  95. Setup go version spec 1.27.x
  96. Attempting to download 1.27.x...
  97. (node:410) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
  98. (Use `node --trace-deprecation ...` to show where the warning was created)
  99. matching 1.27.x...
  100. Acquiring 1.27.2 from https://github.com/actions/go-versions/releases/download/1.27.2-37875086547/go-1.27.2-linux-x64.tar.gz
  101. Extracting Go...
  102. [command]/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/runner/work/_temp/f3f18065-35e1-42d0-98ad-8166f225182a -f /home/runner/work/_temp/7326a137-c0f8-4254-aa6a-ecfd2a6290da
  103. Successfully extracted go to /home/runner/work/_temp/f3f18065-35e1-42d0-98ad-8166f225182a
  104. Adding to the cache ...
  105. Successfully cached go to /opt/hostedtoolcache/go/1.27.2/x64
  106. Added go to the path
  107. Successfully set up Go version 1.27.x
  108. [command]/opt/hostedtoolcache/go/1.27.2/x64/bin/go env GOMODCACHE
  109. [command]/opt/hostedtoolcache/go/1.27.2/x64/bin/go env GOCACHE
  110. /home/runner/go/pkg/mod
  111. /home/runner/.cache/go-build
  112. Cache is not found
  113. go version go1.27.2 linux/amd64
  114. go env
  115. AR='ar'
  116. CC='gcc'
  117. CGO_CFLAGS='-O2 -g'
  118. CGO_CPPFLAGS=''
  119. CGO_CXXFLAGS='-O2 -g'
  120. CGO_ENABLED='1'
  121. CGO_FFLAGS='-O2 -g'
  122. CGO_LDFLAGS='-O2 -g'
  123. CXX='g++'
  124. GCCGO='gccgo'
  125. GO111MODULE=''
  126. GOAMD64='v1'
  127. GOARCH='amd64'
  128. GOAUTH='netrc'
  129. GOBIN='/home/runner/go/bin'
  130. GOCACHE='/home/runner/.cache/go-build'
  131. GOCACHEPROG=''
  132. GODEBUG=''
  133. GOENV='/home/runner/.config/go/env'
  134. GOEXE=''
  135. GOEXPERIMENT=''
  136. GOFIPS140='off'
  137. GOFLAGS=''
  138. GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2765748575=/tmp/go-build -gno-record-gcc-switches'
  139. GOHOSTARCH='amd64'
  140. GOHOSTOS='linux'
  141. GOINSECURE=''
  142. GOMOD='/home/runner/work/gordon/gordon/go.mod'
  143. GOMODCACHE='/home/runner/go/pkg/mod'
  144. GONOPROXY=''
  145. GONOSUMDB=''
  146. GOOS='linux'
  147. GOPACKAGESDRIVER=''
  148. GOPATH='/home/runner/go'
  149. GOPRIVATE=''
  150. GOPROXY='https://proxy.golang.org,direct'
  151. GOROOT='/opt/hostedtoolcache/go/1.27.2/x64'
  152. GOSUMDB='sum.golang.org'
  153. GOTELEMETRY='local'
  154. GOTELEMETRYDIR='/home/runner/.config/go/telemetry'
  155. GOTMPDIR=''
  156. GOTOOLCHAIN='auto'
  157. GOTOOLDIR='/opt/hostedtoolcache/go/1.27.2/x64/pkg/tool/linux_amd64'
  158. GOVCS=''
  159. GOVERSION='go1.27.2'
  160. GOWORK=''
  161. PKG_CONFIG='pkg-config'
  162. Run go test -race -v ./...
  163. <U+001B>[36;1mgo test -race -v ./...<U+001B>[0m
  164. shell: /usr/bin/bash -e {0}
  165. go: downloading github.com/stretchr/testify v1.12.1
  166. go: downloading github.com/golang-jwt/jwt/v5 v5.3.1
  167. go: downloading github.com/google/uuid v1.6.0
  168. go: downloading github.com/pelletier/go-toml/v2 v2.4.3
  169. go: downloading github.com/bnema/zerowrap v1.4.1
  170. go: downloading github.com/charmbracelet/bubbles v1.0.0
  171. go: downloading github.com/charmbracelet/lipgloss v1.1.0
  172. go: downloading github.com/containerd/errdefs v1.0.0
  173. go: downloading github.com/charmbracelet/bubbletea v1.3.10
  174. go: downloading github.com/mattn/go-isatty v0.0.24
  175. go: downloading github.com/moby/moby/client v0.6.0
  176. go: downloading github.com/mattn/go-runewidth v0.0.30
  177. go: downloading github.com/spf13/cobra v1.10.2
  178. go: downloading github.com/rivo/uniseg v0.4.7
  179. go: downloading github.com/spf13/viper v1.21.0
  180. go: downloading github.com/muesli/termenv v0.16.0
  181. go: downloading golang.org/x/sys v0.48.0
  182. go: downloading go.opentelemetry.io/otel/trace v1.46.0
  183. go: downloading github.com/google/go-containerregistry v0.22.1
  184. go: downloading go.opentelemetry.io/otel v1.46.0
  185. go: downloading github.com/rs/zerolog v1.35.1
  186. go: downloading github.com/coreos/go-systemd/v22 v22.7.0
  187. go: downloading gopkg.in/natefinch/lumberjack.v2 v2.2.1
  188. go: downloading github.com/go-acme/lego/v4 v4.35.2
  189. go: downloading go.etcd.io/bbolt v1.5.0
  190. go: downloading github.com/docker/go-units v0.5.0
  191. go: downloading github.com/moby/moby/api v1.56.0
  192. go: downloading github.com/smallstep/truststore v0.13.0
  193. go: downloading golang.org/x/time v0.16.0
  194. go: downloading github.com/aws/aws-sdk-go-v2 v1.47.1
  195. go: downloading github.com/aws/aws-sdk-go-v2/config v1.33.6
  196. go: downloading github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.4.10
  197. go: downloading go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.22.0
  198. go: downloading github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4
  199. go: downloading go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.46.0
  200. go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.46.0
  201. go: downloading go.opentelemetry.io/otel/log v0.22.0
  202. go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.46.0
  203. go: downloading go.opentelemetry.io/otel/metric v1.46.0
  204. go: downloading go.opentelemetry.io/otel/sdk/log v0.22.0
  205. go: downloading github.com/spf13/afero v1.15.0
  206. go: downloading go.opentelemetry.io/otel/sdk v1.46.0
  207. go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0
  208. go: downloading go.opentelemetry.io/otel/sdk/metric v1.46.0
  209. go: downloading go.uber.org/mock v0.6.0
  210. go: downloading github.com/fsnotify/fsnotify v1.10.1
  211. go: downloading golang.org/x/sync v0.23.0
  212. go: downloading github.com/stretchr/objx v0.5.3
  213. go: downloading github.com/atotto/clipboard v0.1.4
  214. go: downloading github.com/charmbracelet/x/ansi v0.11.8
  215. go: downloading github.com/charmbracelet/x/cellbuf v0.0.15
  216. go: downloading github.com/charmbracelet/x/term v0.2.2
  217. go: downloading github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6
  218. go: downloading github.com/muesli/cancelreader v0.2.2
  219. go: downloading github.com/clipperhouse/uax29/v2 v2.7.0
  220. go: downloading github.com/containerd/errdefs/pkg v0.3.0
  221. go: downloading github.com/distribution/reference v0.6.0
  222. go: downloading github.com/docker/go-connections v0.8.1
  223. go: downloading github.com/opencontainers/go-digest v1.0.0
  224. go: downloading github.com/opencontainers/image-spec v1.1.1
  225. go: downloading github.com/spf13/pflag v1.0.10
  226. go: downloading github.com/aymanbagabas/go-osc52/v2 v2.0.1
  227. go: downloading github.com/lucasb-eyer/go-colorful v1.4.1
  228. go: downloading github.com/go-viper/mapstructure/v2 v2.5.0
  229. go: downloading github.com/sagikazarmark/locafero v0.12.0
  230. go: downloading github.com/spf13/cast v1.10.0
  231. go: downloading github.com/mattn/go-colorable v0.1.15
  232. go: downloading golang.org/x/crypto v0.57.0
  233. go: downloading golang.org/x/net v0.59.0
  234. go: downloading github.com/miekg/dns v1.1.73
  235. go: downloading github.com/moby/docker-image-spec v1.3.1
  236. go: downloading github.com/go-logr/logr v1.4.4
  237. go: downloading github.com/aws/smithy-go v1.28.2
  238. go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.20.6
  239. go: downloading github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1
  240. go: downloading github.com/aws/aws-sdk-go-v2/service/sso v1.38.1
  241. go: downloading github.com/aws/aws-sdk-go-v2/service/signin v1.10.1
  242. go: downloading github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1
  243. go: downloading github.com/aws/aws-sdk-go-v2/service/sts v1.51.1
  244. go: downloading go.opentelemetry.io/proto/otlp v1.11.0
  245. go: downloading google.golang.org/protobuf v1.36.12
  246. go: downloading github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20
  247. go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4
  248. go: downloading github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4
  249. go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19
  250. go: downloading github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5
  251. go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4
  252. go: downloading github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4
  253. go: downloading golang.org/x/text v0.42.0
  254. go: downloading github.com/felixge/httpsnoop v1.1.0
  255. go: downloading github.com/docker/cli v29.8.1+incompatible
  256. go: downloading go.yaml.in/yaml/v3 v3.0.5
  257. go: downloading github.com/charmbracelet/colorprofile v0.4.3
  258. go: downloading github.com/clipperhouse/displaywidth v0.11.0
  259. go: downloading github.com/subosito/gotenv v1.6.0
  260. go: downloading github.com/cenkalti/backoff/v5 v5.0.3
  261. go: downloading github.com/go-logr/stdr v1.2.2
  262. go: downloading go.opentelemetry.io/auto/sdk v1.2.1
  263. go: downloading github.com/cespare/xxhash/v2 v2.3.0
  264. go: downloading google.golang.org/grpc v1.84.0
  265. go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0
  266. go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4
  267. go: downloading github.com/sirupsen/logrus v1.10.2
  268. go: downloading github.com/klauspost/compress v1.20.1
  269. go: downloading github.com/xo/terminfo v1.2.0
  270. go: downloading github.com/go-jose/go-jose/v4 v4.1.5
  271. go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459
  272. go: downloading github.com/docker/docker-credential-helpers v0.9.9
  273. go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459
  274. ? github.com/bnema/gordon [no test files]
  275. === RUN TestAppErrorEnvelopeKeys
  276. --- PASS: TestAppErrorEnvelopeKeys (0.00s)
  277. === RUN TestAppApplyResponseKeys
  278. --- PASS: TestAppApplyResponseKeys (0.00s)
  279. === RUN TestAppDeployResponseKeys
  280. --- PASS: TestAppDeployResponseKeys (0.00s)
  281. === RUN TestAppShowResponseKeys
  282. --- PASS: TestAppShowResponseKeys (0.00s)
  283. === RUN TestAppResponsesCarryNoSecretValues
  284. --- PASS: TestAppResponsesCarryNoSecretValues (0.00s)
  285. === RUN TestBackupDTOsUseAppIdentity
  286. === RUN TestBackupDTOsUseAppIdentity/database_job
  287. === RUN TestBackupDTOsUseAppIdentity/volume_job
  288. --- PASS: TestBackupDTOsUseAppIdentity (0.00s)
  289. --- PASS: TestBackupDTOsUseAppIdentity/database_job (0.00s)
  290. --- PASS: TestBackupDTOsUseAppIdentity/volume_job (0.00s)
  291. PASS
  292. ok github.com/bnema/gordon/internal/adapters/dto 1.019s
  293. === RUN TestParse_SecretForms
  294. === RUN TestParse_SecretForms/short_form
  295. === RUN TestParse_SecretForms/table_name_only
  296. === RUN TestParse_SecretForms/table_env
  297. === RUN TestParse_SecretForms/table_file
  298. === RUN TestParse_SecretForms/sub-table
  299. === RUN TestParse_SecretForms/mixed
  300. --- PASS: TestParse_SecretForms (0.00s)
  301. --- PASS: TestParse_SecretForms/short_form (0.00s)
  302. --- PASS: TestParse_SecretForms/table_name_only (0.00s)
  303. --- PASS: TestParse_SecretForms/table_env (0.00s)
  304. --- PASS: TestParse_SecretForms/table_file (0.00s)
  305. --- PASS: TestParse_SecretForms/sub-table (0.00s)
  306. --- PASS: TestParse_SecretForms/mixed (0.00s)
  307. === RUN TestParse_NoSecretsKeepsEmptyMap
  308. --- PASS: TestParse_NoSecretsKeepsEmptyMap (0.00s)
  309. === RUN TestParse_SecretFormsInvalid
  310. === RUN TestParse_SecretFormsInvalid/bad_as
  311. === RUN TestParse_SecretFormsInvalid/empty_as
  312. === RUN TestParse_SecretFormsInvalid/as_not_string
  313. === RUN TestParse_SecretFormsInvalid/missing_name
  314. === RUN TestParse_SecretFormsInvalid/name_not_string
  315. === RUN TestParse_SecretFormsInvalid/extra_key
  316. === RUN TestParse_SecretFormsInvalid/integer_value
  317. === RUN TestParse_SecretFormsInvalid/array_value
  318. === RUN TestParse_SecretFormsInvalid/file_key_collision
  319. --- PASS: TestParse_SecretFormsInvalid (0.00s)
  320. --- PASS: TestParse_SecretFormsInvalid/bad_as (0.00s)
  321. --- PASS: TestParse_SecretFormsInvalid/empty_as (0.00s)
  322. --- PASS: TestParse_SecretFormsInvalid/as_not_string (0.00s)
  323. --- PASS: TestParse_SecretFormsInvalid/missing_name (0.00s)
  324. --- PASS: TestParse_SecretFormsInvalid/name_not_string (0.00s)
  325. --- PASS: TestParse_SecretFormsInvalid/extra_key (0.00s)
  326. --- PASS: TestParse_SecretFormsInvalid/integer_value (0.00s)
  327. --- PASS: TestParse_SecretFormsInvalid/array_value (0.00s)
  328. --- PASS: TestParse_SecretFormsInvalid/file_key_collision (0.00s)
  329. === RUN TestParse_ValidWeb
  330. --- PASS: TestParse_ValidWeb (0.00s)
  331. === RUN TestParse_SharedNetwork
  332. --- PASS: TestParse_SharedNetwork (0.00s)
  333. === RUN TestParse_FileNameMismatchIsWarning
  334. --- PASS: TestParse_FileNameMismatchIsWarning (0.00s)
  335. === RUN TestParse_MissingTagNormalizesToLatest
  336. --- PASS: TestParse_MissingTagNormalizesToLatest (0.00s)
  337. === RUN TestParse_UnknownFieldsRejected
  338. === RUN TestParse_UnknownFieldsRejected/top_level
  339. === RUN TestParse_UnknownFieldsRejected/service
  340. === RUN TestParse_UnknownFieldsRejected/readiness
  341. === RUN TestParse_UnknownFieldsRejected/http
  342. --- PASS: TestParse_UnknownFieldsRejected (0.00s)
  343. --- PASS: TestParse_UnknownFieldsRejected/top_level (0.00s)
  344. --- PASS: TestParse_UnknownFieldsRejected/service (0.00s)
  345. --- PASS: TestParse_UnknownFieldsRejected/readiness (0.00s)
  346. --- PASS: TestParse_UnknownFieldsRejected/http (0.00s)
  347. === RUN TestParse_OldSyntaxRejected
  348. === RUN TestParse_OldSyntaxRejected/legacy_service_array
  349. === RUN TestParse_OldSyntaxRejected/legacy_plural_service_array
  350. === RUN TestParse_OldSyntaxRejected/service_name_as_field
  351. --- PASS: TestParse_OldSyntaxRejected (0.00s)
  352. --- PASS: TestParse_OldSyntaxRejected/legacy_service_array (0.00s)
  353. --- PASS: TestParse_OldSyntaxRejected/legacy_plural_service_array (0.00s)
  354. --- PASS: TestParse_OldSyntaxRejected/service_name_as_field (0.00s)
  355. === RUN TestParse_RetiredArraySyntaxHintIsActionable
  356. === RUN TestParse_RetiredArraySyntaxHintIsActionable/singular
  357. === RUN TestParse_RetiredArraySyntaxHintIsActionable/plural
  358. --- PASS: TestParse_RetiredArraySyntaxHintIsActionable (0.00s)
  359. --- PASS: TestParse_RetiredArraySyntaxHintIsActionable/singular (0.00s)
  360. --- PASS: TestParse_RetiredArraySyntaxHintIsActionable/plural (0.00s)
  361. === RUN TestParse_NonArrayTablesKeepPlainDiagnostic
  362. === RUN TestParse_NonArrayTablesKeepPlainDiagnostic/service_table
  363. === RUN TestParse_NonArrayTablesKeepPlainDiagnostic/service_scalar
  364. === RUN TestParse_NonArrayTablesKeepPlainDiagnostic/services_string_array
  365. --- PASS: TestParse_NonArrayTablesKeepPlainDiagnostic (0.00s)
  366. --- PASS: TestParse_NonArrayTablesKeepPlainDiagnostic/service_table (0.00s)
  367. --- PASS: TestParse_NonArrayTablesKeepPlainDiagnostic/service_scalar (0.00s)
  368. --- PASS: TestParse_NonArrayTablesKeepPlainDiagnostic/services_string_array (0.00s)
  369. === RUN TestParse_UnknownNestedFieldRejected
  370. === RUN TestParse_UnknownNestedFieldRejected/unknown_protocol_table
  371. === RUN TestParse_UnknownNestedFieldRejected/unknown_nested_table
  372. --- PASS: TestParse_UnknownNestedFieldRejected (0.00s)
  373. --- PASS: TestParse_UnknownNestedFieldRejected/unknown_protocol_table (0.00s)
  374. --- PASS: TestParse_UnknownNestedFieldRejected/unknown_nested_table (0.00s)
  375. === RUN TestParse_QuotedDottedServiceKey
  376. --- PASS: TestParse_QuotedDottedServiceKey (0.00s)
  377. === RUN TestParse_UnquotedDottedKeyRejected
  378. --- PASS: TestParse_UnquotedDottedKeyRejected (0.00s)
  379. === RUN TestParse_DuplicateServiceTableRejected
  380. --- PASS: TestParse_DuplicateServiceTableRejected (0.00s)
  381. === RUN TestParse_ServiceOrderDeterministic
  382. --- PASS: TestParse_ServiceOrderDeterministic (0.00s)
  383. === RUN TestParse_ServiceEnv
  384. --- PASS: TestParse_ServiceEnv (0.00s)
  385. === RUN TestParse_ServiceEnvInvalid
  386. === RUN TestParse_ServiceEnvInvalid/secret_reference
  387. === RUN TestParse_ServiceEnvInvalid/secret_key_collision
  388. === RUN TestParse_ServiceEnvInvalid/newline
  389. --- PASS: TestParse_ServiceEnvInvalid (0.00s)
  390. --- PASS: TestParse_ServiceEnvInvalid/secret_reference (0.00s)
  391. --- PASS: TestParse_ServiceEnvInvalid/secret_key_collision (0.00s)
  392. --- PASS: TestParse_ServiceEnvInvalid/newline (0.00s)
  393. === RUN TestParse_Names
  394. === RUN TestParse_Names/bad_app
  395. === RUN TestParse_Names/double_dash_app
  396. === RUN TestParse_Names/reserved_app
  397. === RUN TestParse_Names/no_services
  398. === RUN TestParse_Names/dup_service
  399. === RUN TestParse_Names/dup_service_case
  400. === RUN TestParse_Names/normalized_collision
  401. === RUN TestParse_Names/replicas_rejected
  402. === RUN TestParse_Names/volume_double_dash
  403. === RUN TestParse_Names/shared_volume
  404. === RUN TestParse_Names/env_secret_key_collision
  405. === RUN TestParse_Names/secret_ref_in_env
  406. --- PASS: TestParse_Names (0.00s)
  407. --- PASS: TestParse_Names/bad_app (0.00s)
  408. --- PASS: TestParse_Names/double_dash_app (0.00s)
  409. --- PASS: TestParse_Names/reserved_app (0.00s)
  410. --- PASS: TestParse_Names/no_services (0.00s)
  411. --- PASS: TestParse_Names/dup_service (0.00s)
  412. --- PASS: TestParse_Names/dup_service_case (0.00s)
  413. --- PASS: TestParse_Names/normalized_collision (0.00s)
  414. --- PASS: TestParse_Names/replicas_rejected (0.00s)
  415. --- PASS: TestParse_Names/volume_double_dash (0.00s)
  416. --- PASS: TestParse_Names/shared_volume (0.00s)
  417. --- PASS: TestParse_Names/env_secret_key_collision (0.00s)
  418. --- PASS: TestParse_Names/secret_ref_in_env (0.00s)
  419. === RUN TestParse_Readiness
  420. === RUN TestParse_Readiness/bad_type
  421. === RUN TestParse_Readiness/log_needs_path
  422. === RUN TestParse_Readiness/http_needs_path
  423. === RUN TestParse_Readiness/udp_tcp_rejected
  424. === RUN TestParse_Readiness/multi_tcp_needs_port
  425. === RUN TestParse_Readiness/bad_port_ref
  426. === RUN TestParse_Readiness/bad_timeout
  427. --- PASS: TestParse_Readiness (0.00s)
  428. --- PASS: TestParse_Readiness/bad_type (0.00s)
  429. --- PASS: TestParse_Readiness/log_needs_path (0.00s)
  430. --- PASS: TestParse_Readiness/http_needs_path (0.00s)
  431. --- PASS: TestParse_Readiness/udp_tcp_rejected (0.00s)
  432. --- PASS: TestParse_Readiness/multi_tcp_needs_port (0.00s)
  433. --- PASS: TestParse_Readiness/bad_port_ref (0.00s)
  434. --- PASS: TestParse_Readiness/bad_timeout (0.00s)
  435. === RUN TestParse_Interfaces
  436. === RUN TestParse_Interfaces/tcp_needs_entrypoint
  437. === RUN TestParse_Interfaces/publish_hostname
  438. === RUN TestParse_Interfaces/rcon_table_rejected
  439. === RUN TestParse_Interfaces/bad_host
  440. --- PASS: TestParse_Interfaces (0.00s)
  441. --- PASS: TestParse_Interfaces/tcp_needs_entrypoint (0.00s)
  442. --- PASS: TestParse_Interfaces/publish_hostname (0.00s)
  443. --- PASS: TestParse_Interfaces/rcon_table_rejected (0.00s)
  444. --- PASS: TestParse_Interfaces/bad_host (0.00s)
  445. === RUN TestParse_Backups
  446. --- PASS: TestParse_Backups (0.00s)
  447. === RUN TestParse_GameAndStagingExamples
  448. --- PASS: TestParse_GameAndStagingExamples (0.00s)
  449. === RUN TestParse_NoFileEnvSecretReads
  450. --- PASS: TestParse_NoFileEnvSecretReads (0.00s)
  451. === RUN TestParse_Binds
  452. --- PASS: TestParse_Binds (0.00s)
  453. === RUN TestParse_BindDestinationRejected
  454. --- PASS: TestParse_BindDestinationRejected (0.00s)
  455. === RUN TestParse_Devices
  456. --- PASS: TestParse_Devices (0.00s)
  457. === RUN TestParse_DevicesWrongType
  458. --- PASS: TestParse_DevicesWrongType (0.00s)
  459. === RUN TestParse_DevicesMalformedRejected
  460. --- PASS: TestParse_DevicesMalformedRejected (0.00s)
  461. === RUN TestParse_DevicesDuplicateRejected
  462. --- PASS: TestParse_DevicesDuplicateRejected (0.00s)
  463. === RUN TestParse_UnknownGPUFieldRejected
  464. --- PASS: TestParse_UnknownGPUFieldRejected (0.00s)
  465. === RUN TestParse_TelemetryLogsPrecedence
  466. --- PASS: TestParse_TelemetryLogsPrecedence (0.00s)
  467. === RUN TestParse_TelemetryLogsDefaultOn
  468. --- PASS: TestParse_TelemetryLogsDefaultOn (0.00s)
  469. === RUN TestParse_Capabilities
  470. --- PASS: TestParse_Capabilities (0.00s)
  471. === RUN TestParse_CapabilitiesWrongType
  472. --- PASS: TestParse_CapabilitiesWrongType (0.00s)
  473. === RUN TestParse_CapabilitiesMalformedAndDuplicateRejected
  474. --- PASS: TestParse_CapabilitiesMalformedAndDuplicateRejected (0.00s)
  475. === RUN TestParse_VisibilityNormalization
  476. === RUN TestParse_VisibilityNormalization/absent_visibility_stays_public_with_auto_tls
  477. === RUN TestParse_VisibilityNormalization/explicit_internal_keeps_tls_absent_and_has_no_host
  478. === RUN TestParse_VisibilityNormalization/explicit_public_normalizes_to_auto_tls
  479. --- PASS: TestParse_VisibilityNormalization (0.00s)
  480. --- PASS: TestParse_VisibilityNormalization/absent_visibility_stays_public_with_auto_tls (0.00s)
  481. --- PASS: TestParse_VisibilityNormalization/explicit_internal_keeps_tls_absent_and_has_no_host (0.00s)
  482. --- PASS: TestParse_VisibilityNormalization/explicit_public_normalizes_to_auto_tls (0.00s)
  483. === RUN TestParse_VisibilityRejections
  484. === RUN TestParse_VisibilityRejections/internal_port_also_published_as_tcp
  485. === RUN TestParse_VisibilityRejections/internal_forbids_host
  486. === RUN TestParse_VisibilityRejections/internal_forbids_tls
  487. === RUN TestParse_VisibilityRejections/internal_forbids_explicitly_empty_tls
  488. === RUN TestParse_VisibilityRejections/unknown_visibility_value
  489. --- PASS: TestParse_VisibilityRejections (0.00s)
  490. --- PASS: TestParse_VisibilityRejections/internal_port_also_published_as_tcp (0.00s)
  491. --- PASS: TestParse_VisibilityRejections/internal_forbids_host (0.00s)
  492. --- PASS: TestParse_VisibilityRejections/internal_forbids_tls (0.00s)
  493. --- PASS: TestParse_VisibilityRejections/internal_forbids_explicitly_empty_tls (0.00s)
  494. --- PASS: TestParse_VisibilityRejections/unknown_visibility_value (0.00s)
  495. === RUN TestParse_VisibilityUnknownFieldStillRejected
  496. --- PASS: TestParse_VisibilityUnknownFieldStillRejected (0.00s)
  497. PASS
  498. ok github.com/bnema/gordon/internal/adapters/in/appmanifest 1.047s
  499. === RUN TestRunAppsApply_DeployAcceptedPollsToSuccess
  500. --- PASS: TestRunAppsApply_DeployAcceptedPollsToSuccess (0.00s)
  501. === RUN TestRunAppsApply_DeployAcceptedNoSecondMutation
  502. --- PASS: TestRunAppsApply_DeployAcceptedNoSecondMutation (0.00s)
  503. === RUN TestRunAppsApply_DeployAcceptedUnchangedStateNotReprinted
  504. --- PASS: TestRunAppsApply_DeployAcceptedUnchangedStateNotReprinted (0.02s)
  505. === RUN TestRunAppsApply_DeployAcceptedPartialFailsButKeepsApply
  506. --- PASS: TestRunAppsApply_DeployAcceptedPartialFailsButKeepsApply (0.00s)
  507. === RUN TestRunAppsApply_DeployAcceptedJSONKeepsStdoutSingleCombinedDocument
  508. --- PASS: TestRunAppsApply_DeployAcceptedJSONKeepsStdoutSingleCombinedDocument (0.01s)
  509. === RUN TestRunAppsApply_DeployAcceptedJSONFailureKeepsApplyDocument
  510. --- PASS: TestRunAppsApply_DeployAcceptedJSONFailureKeepsApplyDocument (0.00s)
  511. === RUN TestRunAppsApply_DeployAcceptedCancelPrintsResume
  512. --- PASS: TestRunAppsApply_DeployAcceptedCancelPrintsResume (0.00s)
  513. === RUN TestRunAppsApply_DeployAcceptedCancelKeepsJSONStdoutClean
  514. --- PASS: TestRunAppsApply_DeployAcceptedCancelKeepsJSONStdoutClean (0.00s)
  515. === RUN TestRunAppsApply_DryRunOmitsEmptyRevisionAndRendersDiff
  516. --- PASS: TestRunAppsApply_DryRunOmitsEmptyRevisionAndRendersDiff (0.00s)
  517. === RUN TestRunAppsApply_NoopOmitsEmptyRevision
  518. --- PASS: TestRunAppsApply_NoopOmitsEmptyRevision (0.00s)
  519. === RUN TestRunAppLogs_RejectsJSONWithFollow
  520. --- PASS: TestRunAppLogs_RejectsJSONWithFollow (0.00s)
  521. === RUN TestAppLogRef_ZeroServicesAccurateError
  522. --- PASS: TestAppLogRef_ZeroServicesAccurateError (0.00s)
  523. === RUN TestRunStatusCmd_AppsLabelAndSortedHelpers
  524. --- PASS: TestRunStatusCmd_AppsLabelAndSortedHelpers (0.00s)
  525. === RUN TestSharedCommandLocalAdminComposition_Status
  526. --- PASS: TestSharedCommandLocalAdminComposition_Status (0.00s)
  527. === RUN TestAppLocalAdminComposition_EndToEnd
  528. --- PASS: TestAppLocalAdminComposition_EndToEnd (0.01s)
  529. === RUN TestResolveAppPlane_UsesLocalAdminSocket
  530. --- PASS: TestResolveAppPlane_UsesLocalAdminSocket (0.01s)
  531. === RUN TestControlPlane_LocalAndRemoteDTOParity
  532. --- PASS: TestControlPlane_LocalAndRemoteDTOParity (0.01s)
  533. === RUN TestResolveAppPlane_ExplicitRemoteNeverProbesLocal
  534. === RUN TestResolveAppPlane_ExplicitRemoteNeverProbesLocal/remote_succeeds
  535. === RUN TestResolveAppPlane_ExplicitRemoteNeverProbesLocal/remote_fails_without_local_fallback
  536. --- PASS: TestResolveAppPlane_ExplicitRemoteNeverProbesLocal (0.00s)
  537. --- PASS: TestResolveAppPlane_ExplicitRemoteNeverProbesLocal/remote_succeeds (0.00s)
  538. --- PASS: TestResolveAppPlane_ExplicitRemoteNeverProbesLocal/remote_fails_without_local_fallback (0.00s)
  539. === RUN TestResolveAppPlane_ReportsDaemonUnavailable
  540. --- PASS: TestResolveAppPlane_ReportsDaemonUnavailable (0.00s)
  541. === RUN TestRunAppsApply_RejectsDryRunWithDeploy
  542. --- PASS: TestRunAppsApply_RejectsDryRunWithDeploy (0.00s)
  543. === RUN TestRunAppsApply_RequiresFile
  544. --- PASS: TestRunAppsApply_RequiresFile (0.00s)
  545. === RUN TestRunAppsApply_JSONParity
  546. --- PASS: TestRunAppsApply_JSONParity (0.00s)
  547. === RUN TestRunAppsApply_ChainsAcceptedRevision
  548. --- PASS: TestRunAppsApply_ChainsAcceptedRevision (0.00s)
  549. === RUN TestRunAppsApply_ChainedJSONIsOneDocument
  550. --- PASS: TestRunAppsApply_ChainedJSONIsOneDocument (0.00s)
  551. === RUN TestRunAppsList_JSONParityAndSorting
  552. --- PASS: TestRunAppsList_JSONParityAndSorting (0.00s)
  553. === RUN TestRunAppsList_EmptyJSONIsArray
  554. --- PASS: TestRunAppsList_EmptyJSONIsArray (0.00s)
  555. === RUN TestRenderActiveServices_SingleWriterLegend
  556. === RUN TestRenderActiveServices_SingleWriterLegend/none
  557. === RUN TestRenderActiveServices_SingleWriterLegend/one
  558. === RUN TestRenderActiveServices_SingleWriterLegend/two
  559. --- PASS: TestRenderActiveServices_SingleWriterLegend (0.00s)
  560. --- PASS: TestRenderActiveServices_SingleWriterLegend/none (0.00s)
  561. --- PASS: TestRenderActiveServices_SingleWriterLegend/one (0.00s)
  562. --- PASS: TestRenderActiveServices_SingleWriterLegend/two (0.00s)
  563. === RUN TestRunAppsShow_JSONParity
  564. --- PASS: TestRunAppsShow_JSONParity (0.00s)
  565. === RUN TestRunAppsSecretsSet_NeverEchoesValues
  566. --- PASS: TestRunAppsSecretsSet_NeverEchoesValues (0.00s)
  567. === RUN TestRunAppsSecretsSet_RequiresService
  568. --- PASS: TestRunAppsSecretsSet_RequiresService (0.00s)
  569. === RUN TestRunAppsSecretsSet_StdinAndValidation
  570. --- PASS: TestRunAppsSecretsSet_StdinAndValidation (0.00s)
  571. === RUN TestRunAppDeploy_OutcomeUnknownMentionsKey
  572. --- PASS: TestRunAppDeploy_OutcomeUnknownMentionsKey (0.00s)
  573. === RUN TestRunAppDeploy_ConflictRendersJournal
  574. --- PASS: TestRunAppDeploy_ConflictRendersJournal (0.00s)
  575. === RUN TestRunAppDeploy_ConflictJSONRendersJournal
  576. --- PASS: TestRunAppDeploy_ConflictJSONRendersJournal (0.00s)
  577. === RUN TestRunAppLifecycle_ConflictRendersJournal
  578. --- PASS: TestRunAppLifecycle_ConflictRendersJournal (0.00s)
  579. === RUN TestRenderAppDeployResponse_SortedServices
  580. --- PASS: TestRenderAppDeployResponse_SortedServices (0.00s)
  581. === RUN TestAppLogRef_Selection
  582. --- PASS: TestAppLogRef_Selection (0.00s)
  583. === RUN TestResolveAppPlane_FailsWithoutDaemon
  584. --- PASS: TestResolveAppPlane_FailsWithoutDaemon (0.00s)
  585. === RUN TestAppCommandSurface
  586. --- PASS: TestAppCommandSurface (0.00s)
  587. === RUN TestRunAppsDiff_TextAndJSON
  588. --- PASS: TestRunAppsDiff_TextAndJSON (0.00s)
  589. === RUN TestRunAppsSecretsDelete
  590. --- PASS: TestRunAppsSecretsDelete (0.00s)
  591. === RUN TestRunAppRestart_AndLifecycle
  592. --- PASS: TestRunAppRestart_AndLifecycle (0.00s)
  593. === RUN TestRunAppStatus_Observed
  594. --- PASS: TestRunAppStatus_Observed (0.00s)
  595. === RUN TestRunAppLogs_TextJSONFollow
  596. --- PASS: TestRunAppLogs_TextJSONFollow (0.00s)
  597. === RUN TestRunAppsSecretsList_RendersMetadataAndWrapsErrors
  598. --- PASS: TestRunAppsSecretsList_RendersMetadataAndWrapsErrors (0.00s)
  599. === RUN TestRunAppDeploy_PollsAcceptedToTerminal
  600. --- PASS: TestRunAppDeploy_PollsAcceptedToTerminal (0.00s)
  601. === RUN TestRunAppDeploy_UnchangedStateNotReprinted
  602. --- PASS: TestRunAppDeploy_UnchangedStateNotReprinted (0.01s)
  603. === RUN TestRunAppDeploy_AcceptedIssuesNoSecondMutation
  604. --- PASS: TestRunAppDeploy_AcceptedIssuesNoSecondMutation (0.00s)
  605. === RUN TestRunAppDeploy_TerminalPartialRendersAndFails
  606. --- PASS: TestRunAppDeploy_TerminalPartialRendersAndFails (0.00s)
  607. === RUN TestRunAppDeploy_JSONKeepsStdoutMachineReadable
  608. --- PASS: TestRunAppDeploy_JSONKeepsStdoutMachineReadable (0.00s)
  609. === RUN TestWatchOperation_CancelPrintsResumeWithoutAbort
  610. --- PASS: TestWatchOperation_CancelPrintsResumeWithoutAbort (0.00s)
  611. === RUN TestWatchOperation_CancelKeepsJSONStdoutClean
  612. --- PASS: TestWatchOperation_CancelKeepsJSONStdoutClean (0.00s)
  613. === RUN TestRunAppsOperationsWatch_ResumesExisting
  614. --- PASS: TestRunAppsOperationsWatch_ResumesExisting (0.01s)
  615. === RUN TestAwaitOperation_TransientErrorsAreBounded
  616. --- PASS: TestAwaitOperation_TransientErrorsAreBounded (0.01s)
  617. === RUN TestAwaitOperation_NotFoundFailsFast
  618. --- PASS: TestAwaitOperation_NotFoundFailsFast (0.00s)
  619. === RUN TestAppsOperationsWatchCmd_Flags
  620. --- PASS: TestAppsOperationsWatchCmd_Flags (0.00s)
  621. === RUN TestParseAndConvertScopes_DefaultWildcard
  622. --- PASS: TestParseAndConvertScopes_DefaultWildcard (0.00s)
  623. === RUN TestParseAndConvertScopes_SpecificRepo
  624. --- PASS: TestParseAndConvertScopes_SpecificRepo (0.00s)
  625. === RUN TestParseAndConvertScopes_SpecificRepoPushOnly
  626. --- PASS: TestParseAndConvertScopes_SpecificRepoPushOnly (0.00s)
  627. === RUN TestParseAndConvertScopes_MixedWithAdminScopes
  628. --- PASS: TestParseAndConvertScopes_MixedWithAdminScopes (0.00s)
  629. === RUN TestParseAndConvertScopes_AlreadyV2Format_RepoIgnored
  630. --- PASS: TestParseAndConvertScopes_AlreadyV2Format_RepoIgnored (0.00s)
  631. === RUN TestParseAndConvertScopes_EmptyRepo
  632. --- PASS: TestParseAndConvertScopes_EmptyRepo (0.00s)
  633. === RUN TestParseAndConvertScopes_WhitespaceRepo
  634. --- PASS: TestParseAndConvertScopes_WhitespaceRepo (0.00s)
  635. === RUN TestRunAuthLoginWithToken_StoresToken
  636. Warning: 'pass' not available. Storing token in plaintext config. Consider installing pass (https://www.passwordstore.org/) for secure token storage.
  637. --- PASS: TestRunAuthLoginWithToken_StoresToken (0.00s)
  638. === RUN TestVolumeBackupStatus_JSONFlag
  639. --- PASS: TestVolumeBackupStatus_JSONFlag (0.00s)
  640. === RUN TestVolumeBackupRun_PrintsPartialJobsBeforeReturningError
  641. --- PASS: TestVolumeBackupRun_PrintsPartialJobsBeforeReturningError (0.00s)
  642. === RUN TestCAExportRemoteUsesControlPlane
  643. --- PASS: TestCAExportRemoteUsesControlPlane (0.00s)
  644. === RUN TestCAExportRemoteWritesFile
  645.  Before trusting this CA, check that fingerprint 42:F4:B1:8C:AD:A6:39:F5:97:D4:A4:73:6E:F5:AB:25:A2:9D:AE:AB:B1:5D:61:8A:9E:2F:FA:9B:6D:B4:A8:A4 matches `gordon ca info` on the Gordon host
  646. --- PASS: TestCAExportRemoteWritesFile (0.00s)
  647. === RUN TestCAInfoRemoteUsesControlPlane
  648. --- PASS: TestCAInfoRemoteUsesControlPlane (0.00s)
  649. === RUN TestCAInfoRemoteText
  650. --- PASS: TestCAInfoRemoteText (0.00s)
  651. === RUN TestCARemoteErrorIsWrapped
  652. --- PASS: TestCARemoteErrorIsWrapped (0.00s)
  653. === RUN TestCAInstallRejectsRemote
  654. --- PASS: TestCAInstallRejectsRemote (0.00s)
  655. === RUN TestCARemoteRejectsInvalidRoot
  656. === RUN TestCARemoteRejectsInvalidRoot/invalid_pem
  657. === RUN TestCARemoteRejectsInvalidRoot/garbage_der
  658. === RUN TestCARemoteRejectsInvalidRoot/wrong_block_type
  659. === RUN TestCARemoteRejectsInvalidRoot/multiple_certs
  660. === RUN TestCARemoteRejectsInvalidRoot/not_a_CA
  661. === RUN TestCARemoteRejectsInvalidRoot/fingerprint_mismatch
  662. --- PASS: TestCARemoteRejectsInvalidRoot (0.00s)
  663. --- PASS: TestCARemoteRejectsInvalidRoot/invalid_pem (0.00s)
  664. --- PASS: TestCARemoteRejectsInvalidRoot/garbage_der (0.00s)
  665. --- PASS: TestCARemoteRejectsInvalidRoot/wrong_block_type (0.00s)
  666. --- PASS: TestCARemoteRejectsInvalidRoot/multiple_certs (0.00s)
  667. --- PASS: TestCARemoteRejectsInvalidRoot/not_a_CA (0.00s)
  668. --- PASS: TestCARemoteRejectsInvalidRoot/fingerprint_mismatch (0.00s)
  669. === RUN TestCARemoteRejectsNotSelfSigned
  670. --- PASS: TestCARemoteRejectsNotSelfSigned (0.00s)
  671. === RUN TestCARemoteComputesFingerprintAndCNLocally
  672. --- PASS: TestCARemoteComputesFingerprintAndCNLocally (0.00s)
  673. === RUN TestCALocalErrorMentionsConfigAndRemote
  674. --- PASS: TestCALocalErrorMentionsConfigAndRemote (0.00s)
  675. === RUN TestErrLocalInternalTLSDisabledWithoutConfigFile
  676. --- PASS: TestErrLocalInternalTLSDisabledWithoutConfigFile (0.00s)
  677. === RUN TestRemoteControlPlane_RunVolumeBackupsPreservesPartialResult
  678. --- PASS: TestRemoteControlPlane_RunVolumeBackupsPreservesPartialResult (0.00s)
  679. === RUN TestRemoteControlPlane_VolumeBackupErrorsKeepHTTPStatus
  680. --- PASS: TestRemoteControlPlane_VolumeBackupErrorsKeepHTTPStatus (0.00s)
  681. === RUN TestResolveControlPlane_LocalUsesSocketBackedRemotePlane
  682. --- PASS: TestResolveControlPlane_LocalUsesSocketBackedRemotePlane (0.00s)
  683. === RUN TestResolveControlPlane_LocalFailsClosedWhenDaemonUnavailable
  684. --- PASS: TestResolveControlPlane_LocalFailsClosedWhenDaemonUnavailable (0.00s)
  685. === RUN TestResolveControlPlane_ExplicitRemoteDoesNotUseLocalFactory
  686. --- PASS: TestResolveControlPlane_ExplicitRemoteDoesNotUseLocalFactory (0.00s)
  687. === RUN TestResolveControlPlane_ExplicitUnknownRemoteReturnsError
  688. --- PASS: TestResolveControlPlane_ExplicitUnknownRemoteReturnsError (0.00s)
  689. === RUN TestResolveControlPlane_LocalIgnoresConfigAndStoreState
  690. --- PASS: TestResolveControlPlane_LocalIgnoresConfigAndStoreState (0.00s)
  691. === RUN TestFormatDeployFailure_RemoteStructuredError
  692. --- PASS: TestFormatDeployFailure_RemoteStructuredError (0.00s)
  693. === RUN TestFormatDeployFailure_LocalTypedError
  694. --- PASS: TestFormatDeployFailure_LocalTypedError (0.00s)
  695. === RUN TestFormatDeployFailure_GenericFallback
  696. --- PASS: TestFormatDeployFailure_GenericFallback (0.00s)
  697. === RUN TestFormatDeployFailure_SkipsEmptySanitizedLogsSection
  698. --- PASS: TestFormatDeployFailure_SkipsEmptySanitizedLogsSection (0.00s)
  699. === RUN TestShouldFallbackToLocal
  700. === RUN TestShouldFallbackToLocal/nil
  701. === RUN TestShouldFallbackToLocal/connection_refused
  702. === RUN TestShouldFallbackToLocal/status_503
  703. === RUN TestShouldFallbackToLocal/status_500
  704. === RUN TestShouldFallbackToLocal/timeout
  705. === RUN TestShouldFallbackToLocal/auth_error
  706. === RUN TestShouldFallbackToLocal/bad_request
  707. --- PASS: TestShouldFallbackToLocal (0.00s)
  708. --- PASS: TestShouldFallbackToLocal/nil (0.00s)
  709. --- PASS: TestShouldFallbackToLocal/connection_refused (0.00s)
  710. --- PASS: TestShouldFallbackToLocal/status_503 (0.00s)
  711. --- PASS: TestShouldFallbackToLocal/status_500 (0.00s)
  712. --- PASS: TestShouldFallbackToLocal/timeout (0.00s)
  713. --- PASS: TestShouldFallbackToLocal/auth_error (0.00s)
  714. --- PASS: TestShouldFallbackToLocal/bad_request (0.00s)
  715. === RUN TestRunImagesList_PrintsRowsAndSummary
  716. --- PASS: TestRunImagesList_PrintsRowsAndSummary (0.01s)
  717. === RUN TestRunImagesList_HeaderOrderAndSummaryLine
  718. --- PASS: TestRunImagesList_HeaderOrderAndSummaryLine (0.00s)
  719. === RUN TestRunImagesList_TruncatesLongValuesAndKeepsBoundedRowShape
  720. --- PASS: TestRunImagesList_TruncatesLongValuesAndKeepsBoundedRowShape (0.00s)
  721. === RUN TestRunImagesList_LongDigestLikeValuesAndEmptyFormattedFields
  722. --- PASS: TestRunImagesList_LongDigestLikeValuesAndEmptyFormattedFields (0.00s)
  723. === RUN TestRunImagesList_EmptyOutput
  724. --- PASS: TestRunImagesList_EmptyOutput (0.00s)
  725. === RUN TestRunImagesPrune_DefaultScopeIsBothDanglingAndRegistry
  726. --- PASS: TestRunImagesPrune_DefaultScopeIsBothDanglingAndRegistry (0.00s)
  727. === RUN TestRunImagesPrune_DanglingOnlyScopeSkipsRegistry
  728. --- PASS: TestRunImagesPrune_DanglingOnlyScopeSkipsRegistry (0.00s)
  729. === RUN TestRunImagesPrune_RegistryOnlyScopeSkipsRuntime
  730. --- PASS: TestRunImagesPrune_RegistryOnlyScopeSkipsRuntime (0.00s)
  731. === RUN TestRunImagesPrune_BothScopeFlagsExplicit
  732. --- PASS: TestRunImagesPrune_BothScopeFlagsExplicit (0.00s)
  733. === RUN TestRunImagesPrune_DryRunBothScopes
  734. --- PASS: TestRunImagesPrune_DryRunBothScopes (0.00s)
  735. === RUN TestRunImagesPrune_DryRunDanglingOnlyScope
  736. --- PASS: TestRunImagesPrune_DryRunDanglingOnlyScope (0.00s)
  737. === RUN TestRunImagesPrune_DryRunRegistryOnlyScope
  738. --- PASS: TestRunImagesPrune_DryRunRegistryOnlyScope (0.00s)
  739. === RUN TestRunImagesPrune_KeepReleasesControlsRetention
  740. --- PASS: TestRunImagesPrune_KeepReleasesControlsRetention (0.00s)
  741. === RUN TestRunImagesPrune_RejectsNegativeKeepReleases
  742. --- PASS: TestRunImagesPrune_RejectsNegativeKeepReleases (0.00s)
  743. === RUN TestRunImagesPrune_NonDryRunCallsConfirm
  744. --- PASS: TestRunImagesPrune_NonDryRunCallsConfirm (0.00s)
  745. === RUN TestRunImagesPrune_ConfirmPromptIncludesScopePreviewCounts
  746. --- PASS: TestRunImagesPrune_ConfirmPromptIncludesScopePreviewCounts (0.00s)
  747. === RUN TestRunImagesPrune_ConfirmRejectCancelsOperation
  748. --- PASS: TestRunImagesPrune_ConfirmRejectCancelsOperation (0.00s)
  749. === RUN TestRunImagesPrune_NoConfirmSkipsPrompt
  750. --- PASS: TestRunImagesPrune_NoConfirmSkipsPrompt (0.00s)
  751. === RUN TestRunImagesPrune_DryRunNeverPrompts
  752. --- PASS: TestRunImagesPrune_DryRunNeverPrompts (0.00s)
  753. === RUN TestRunImagesPrune_ReturnsRemoteErrors
  754. --- PASS: TestRunImagesPrune_ReturnsRemoteErrors (0.00s)
  755. === RUN TestRunImagesPrune_RejectsEmptyResponse
  756. --- PASS: TestRunImagesPrune_RejectsEmptyResponse (0.00s)
  757. === RUN TestAllListCommands_AcceptJSONFlag
  758. === RUN TestAllListCommands_AcceptJSONFlag/images_list
  759. === RUN TestAllListCommands_AcceptJSONFlag/backup_list
  760. === RUN TestAllListCommands_AcceptJSONFlag/backup_volumes_list
  761. === RUN TestAllListCommands_AcceptJSONFlag/backup_volumes_run
  762. === RUN TestAllListCommands_AcceptJSONFlag/backup_volumes_status
  763. === RUN TestAllListCommands_AcceptJSONFlag/auth_token_list
  764. === RUN TestAllListCommands_AcceptJSONFlag/remotes_list
  765. === RUN TestAllListCommands_AcceptJSONFlag/daemon_config_show
  766. === RUN TestAllListCommands_AcceptJSONFlag/daemon_networks
  767. === RUN TestAllListCommands_AcceptJSONFlag/images_tags
  768. === RUN TestAllListCommands_AcceptJSONFlag/daemon_tls
  769. --- PASS: TestAllListCommands_AcceptJSONFlag (0.00s)
  770. --- PASS: TestAllListCommands_AcceptJSONFlag/images_list (0.00s)
  771. --- PASS: TestAllListCommands_AcceptJSONFlag/backup_list (0.00s)
  772. --- PASS: TestAllListCommands_AcceptJSONFlag/backup_volumes_list (0.00s)
  773. --- PASS: TestAllListCommands_AcceptJSONFlag/backup_volumes_run (0.00s)
  774. --- PASS: TestAllListCommands_AcceptJSONFlag/backup_volumes_status (0.00s)
  775. --- PASS: TestAllListCommands_AcceptJSONFlag/auth_token_list (0.00s)
  776. --- PASS: TestAllListCommands_AcceptJSONFlag/remotes_list (0.00s)
  777. --- PASS: TestAllListCommands_AcceptJSONFlag/daemon_config_show (0.00s)
  778. --- PASS: TestAllListCommands_AcceptJSONFlag/daemon_networks (0.00s)
  779. --- PASS: TestAllListCommands_AcceptJSONFlag/images_tags (0.00s)
  780. --- PASS: TestAllListCommands_AcceptJSONFlag/daemon_tls (0.00s)
  781. === RUN TestImagesList_JSONFlag_Accepted
  782. --- PASS: TestImagesList_JSONFlag_Accepted (0.00s)
  783. === RUN TestBackupList_JSONFlag_Accepted
  784. --- PASS: TestBackupList_JSONFlag_Accepted (0.00s)
  785. === RUN TestTokenList_JSONFlag_Accepted
  786. --- PASS: TestTokenList_JSONFlag_Accepted (0.00s)
  787. === RUN TestRemotesList_JSONFlag_Accepted
  788. --- PASS: TestRemotesList_JSONFlag_Accepted (0.00s)
  789. === RUN TestImagesList_JSONShape_RoundTripsDTO
  790. --- PASS: TestImagesList_JSONShape_RoundTripsDTO (0.00s)
  791. === RUN TestPinList_JSONShape_RoundTripsTags
  792. --- PASS: TestPinList_JSONShape_RoundTripsTags (0.00s)
  793. === RUN TestBackupList_JSONShape_RoundTripsJobs
  794. --- PASS: TestBackupList_JSONShape_RoundTripsJobs (0.00s)
  795. === RUN TestTokenList_JSONShape_RoundTripsTokens
  796. --- PASS: TestTokenList_JSONShape_RoundTripsTokens (0.00s)
  797. === RUN TestRemotesList_JSONShape_RoundTripsRemoteObjects
  798. --- PASS: TestRemotesList_JSONShape_RoundTripsRemoteObjects (0.00s)
  799. === RUN TestWriteJSON_ProducesValidIndentedJSON
  800. --- PASS: TestWriteJSON_ProducesValidIndentedJSON (0.00s)
  801. === RUN TestHasLocalTLSCapableEntrypoint
  802. === RUN TestHasLocalTLSCapableEntrypoint/smart_tcp
  803. === RUN TestHasLocalTLSCapableEntrypoint/tls_mux
  804. === RUN TestHasLocalTLSCapableEntrypoint/plain_tcp
  805. === RUN TestHasLocalTLSCapableEntrypoint/empty
  806. --- PASS: TestHasLocalTLSCapableEntrypoint (0.00s)
  807. --- PASS: TestHasLocalTLSCapableEntrypoint/smart_tcp (0.00s)
  808. --- PASS: TestHasLocalTLSCapableEntrypoint/tls_mux (0.00s)
  809. --- PASS: TestHasLocalTLSCapableEntrypoint/plain_tcp (0.00s)
  810. --- PASS: TestHasLocalTLSCapableEntrypoint/empty (0.00s)
  811. === RUN TestTagAndPushPreservesExactSourceReference
  812. --- PASS: TestTagAndPushPreservesExactSourceReference (0.00s)
  813. === RUN TestTagAndPushRejectsMissingSourceReference
  814. --- PASS: TestTagAndPushRejectsMissingSourceReference (0.00s)
  815. === RUN TestExchangeRegistryAuth_Success
  816. --- PASS: TestExchangeRegistryAuth_Success (0.00s)
  817. === RUN TestExchangeRegistryAuth_VerifyAuthFails
  818. --- PASS: TestExchangeRegistryAuth_VerifyAuthFails (0.00s)
  819. === RUN TestExchangeRegistryAuth_TokenNotValid
  820. --- PASS: TestExchangeRegistryAuth_TokenNotValid (0.00s)
  821. === RUN TestIntegration_TagAndPush_NativeRegistry
  822. === PAUSE TestIntegration_TagAndPush_NativeRegistry
  823. === RUN TestResolveImageTarget_BareNameUsesTargetRegistry
  824. === RUN TestResolveImageTarget_BareNameUsesTargetRegistry/bare_name
  825. === RUN TestResolveImageTarget_BareNameUsesTargetRegistry/bare_name_with_tag
  826. === RUN TestResolveImageTarget_BareNameUsesTargetRegistry/namespaced_name
  827. === RUN TestResolveImageTarget_BareNameUsesTargetRegistry/bare_digest
  828. --- PASS: TestResolveImageTarget_BareNameUsesTargetRegistry (0.00s)
  829. --- PASS: TestResolveImageTarget_BareNameUsesTargetRegistry/bare_name (0.00s)
  830. --- PASS: TestResolveImageTarget_BareNameUsesTargetRegistry/bare_name_with_tag (0.00s)
  831. --- PASS: TestResolveImageTarget_BareNameUsesTargetRegistry/namespaced_name (0.00s)
  832. --- PASS: TestResolveImageTarget_BareNameUsesTargetRegistry/bare_digest (0.00s)
  833. === RUN TestResolveImageTarget_QualifiedRefMatchingTarget
  834. --- PASS: TestResolveImageTarget_QualifiedRefMatchingTarget (0.00s)
  835. === RUN TestResolveImageTarget_RejectsMismatchedRegistry
  836. === RUN TestResolveImageTarget_RejectsMismatchedRegistry/other.example.org/myapp:v1
  837. === RUN TestResolveImageTarget_RejectsMismatchedRegistry/reg.example.com:443/myapp:v1
  838. --- PASS: TestResolveImageTarget_RejectsMismatchedRegistry (0.00s)
  839. --- PASS: TestResolveImageTarget_RejectsMismatchedRegistry/other.example.org/myapp:v1 (0.00s)
  840. --- PASS: TestResolveImageTarget_RejectsMismatchedRegistry/reg.example.com:443/myapp:v1 (0.00s)
  841. === RUN TestTargetRegistryDomain_RemoteFallsBackToStatusForOlderServers
  842. --- PASS: TestTargetRegistryDomain_RemoteFallsBackToStatusForOlderServers (0.00s)
  843. === RUN TestTargetRegistryDomain_LocalSocketUsesStatus
  844. --- PASS: TestTargetRegistryDomain_LocalSocketUsesStatus (0.00s)
  845. === RUN TestTargetRegistryDomain_Errors
  846. === RUN TestTargetRegistryDomain_Errors/verify_fails
  847. === RUN TestTargetRegistryDomain_Errors/token_without_admin_scope
  848. === RUN TestTargetRegistryDomain_Errors/token_invalid
  849. === RUN TestTargetRegistryDomain_Errors/older_server_denies_status
  850. === RUN TestTargetRegistryDomain_Errors/no_registry_domain_configured
  851. --- PASS: TestTargetRegistryDomain_Errors (0.00s)
  852. --- PASS: TestTargetRegistryDomain_Errors/verify_fails (0.00s)
  853. --- PASS: TestTargetRegistryDomain_Errors/token_without_admin_scope (0.00s)
  854. --- PASS: TestTargetRegistryDomain_Errors/token_invalid (0.00s)
  855. --- PASS: TestTargetRegistryDomain_Errors/older_server_denies_status (0.00s)
  856. --- PASS: TestTargetRegistryDomain_Errors/no_registry_domain_configured (0.00s)
  857. === RUN TestInferPushRemote_UsesUniqueMatchingSavedRemote
  858. --- PASS: TestInferPushRemote_UsesUniqueMatchingSavedRemote (0.00s)
  859. === RUN TestInferPushRemote_ReturnsAmbiguousErrorWhenMultipleRemotesMatch
  860. --- PASS: TestInferPushRemote_ReturnsAmbiguousErrorWhenMultipleRemotesMatch (0.00s)
  861. === RUN TestInferPushRemote_SkipsGuessWhenExplicitRemoteSelected
  862. --- PASS: TestInferPushRemote_SkipsGuessWhenExplicitRemoteSelected (0.00s)
  863. === RUN TestInferPushRemote_SkipsGuessWhenActiveRemoteConfigured
  864. --- PASS: TestInferPushRemote_SkipsGuessWhenActiveRemoteConfigured (0.00s)
  865. === RUN TestInferPushRemote_FailsSafeWhenSomeRemotesCannotBeProbed
  866. --- PASS: TestInferPushRemote_FailsSafeWhenSomeRemotesCannotBeProbed (0.00s)
  867. === RUN TestInferRemoteForRepository_ReturnsAmbiguousErrorWhenMultipleRemotesMatch
  868. --- PASS: TestInferRemoteForRepository_ReturnsAmbiguousErrorWhenMultipleRemotesMatch (0.00s)
  869. === RUN TestValidateBuildArg
  870. === RUN TestValidateBuildArg/valid_simple
  871. === RUN TestValidateBuildArg/valid_with_underscore_key
  872. === RUN TestValidateBuildArg/valid_with_numbers_in_key
  873. === RUN TestValidateBuildArg/valid_empty_value
  874. === RUN TestValidateBuildArg/valid_complex_value
  875. === RUN TestValidateBuildArg/invalid_no_equals
  876. === RUN TestValidateBuildArg/invalid_starts_with_number
  877. === RUN TestValidateBuildArg/invalid_starts_with_dash
  878. === RUN TestValidateBuildArg/invalid_special_chars_in_key
  879. === RUN TestValidateBuildArg/invalid_empty_string
  880. === RUN TestValidateBuildArg/invalid_equals_only
  881. --- PASS: TestValidateBuildArg (0.00s)
  882. --- PASS: TestValidateBuildArg/valid_simple (0.00s)
  883. --- PASS: TestValidateBuildArg/valid_with_underscore_key (0.00s)
  884. --- PASS: TestValidateBuildArg/valid_with_numbers_in_key (0.00s)
  885. --- PASS: TestValidateBuildArg/valid_empty_value (0.00s)
  886. --- PASS: TestValidateBuildArg/valid_complex_value (0.00s)
  887. --- PASS: TestValidateBuildArg/invalid_no_equals (0.00s)
  888. --- PASS: TestValidateBuildArg/invalid_starts_with_number (0.00s)
  889. --- PASS: TestValidateBuildArg/invalid_starts_with_dash (0.00s)
  890. --- PASS: TestValidateBuildArg/invalid_special_chars_in_key (0.00s)
  891. --- PASS: TestValidateBuildArg/invalid_empty_string (0.00s)
  892. --- PASS: TestValidateBuildArg/invalid_equals_only (0.00s)
  893. === RUN TestParseImageRef
  894. === RUN TestParseImageRef/full_ref
  895. === RUN TestParseImageRef/no_tag
  896. === RUN TestParseImageRef/latest_tag
  897. === RUN TestParseImageRef/no_slash
  898. === RUN TestParseImageRef/namespace_without_registry_host
  899. === RUN TestParseImageRef/localhost
  900. === RUN TestParseImageRef/registry_with_port
  901. === RUN TestParseImageRef/registry_with_namespace
  902. --- PASS: TestParseImageRef (0.00s)
  903. --- PASS: TestParseImageRef/full_ref (0.00s)
  904. --- PASS: TestParseImageRef/no_tag (0.00s)
  905. --- PASS: TestParseImageRef/latest_tag (0.00s)
  906. --- PASS: TestParseImageRef/no_slash (0.00s)
  907. --- PASS: TestParseImageRef/namespace_without_registry_host (0.00s)
  908. --- PASS: TestParseImageRef/localhost (0.00s)
  909. --- PASS: TestParseImageRef/registry_with_port (0.00s)
  910. --- PASS: TestParseImageRef/registry_with_namespace (0.00s)
  911. === RUN TestClassifyPushArgument
  912. === RUN TestClassifyPushArgument/tagged_image_latest
  913. === RUN TestClassifyPushArgument/tagged_image_semver
  914. === RUN TestClassifyPushArgument/registry_qualified_image
  915. === RUN TestClassifyPushArgument/registry_qualified_digest
  916. === RUN TestClassifyPushArgument/legacy_domain
  917. === RUN TestClassifyPushArgument/bare_image_name
  918. --- PASS: TestClassifyPushArgument (0.00s)
  919. --- PASS: TestClassifyPushArgument/tagged_image_latest (0.00s)
  920. --- PASS: TestClassifyPushArgument/tagged_image_semver (0.00s)
  921. --- PASS: TestClassifyPushArgument/registry_qualified_image (0.00s)
  922. --- PASS: TestClassifyPushArgument/registry_qualified_digest (0.00s)
  923. --- PASS: TestClassifyPushArgument/legacy_domain (0.00s)
  924. --- PASS: TestClassifyPushArgument/bare_image_name (0.00s)
  925. === RUN TestBuildAndPush_BuildArgs
  926. --- PASS: TestBuildAndPush_BuildArgs (0.01s)
  927. === RUN TestBuildImageArgsInjectsGitBuildArgs
  928. --- PASS: TestBuildImageArgsInjectsGitBuildArgs (0.00s)
  929. === RUN TestBuildImageArgsUserArgsOverrideDefaults
  930. --- PASS: TestBuildImageArgsUserArgsOverrideDefaults (0.01s)
  931. === RUN TestParseTagRef
  932. === RUN TestParseTagRef/github_tag_ref
  933. === RUN TestParseTagRef/peeled_tag_ref
  934. === RUN TestParseTagRef/branch_ref
  935. === RUN TestParseTagRef/empty
  936. --- PASS: TestParseTagRef (0.00s)
  937. --- PASS: TestParseTagRef/github_tag_ref (0.00s)
  938. --- PASS: TestParseTagRef/peeled_tag_ref (0.00s)
  939. --- PASS: TestParseTagRef/branch_ref (0.00s)
  940. --- PASS: TestParseTagRef/empty (0.00s)
  941. === RUN TestVersionFromTagRefs
  942. === RUN TestVersionFromTagRefs/github_ref_tag
  943. === RUN TestVersionFromTagRefs/github_ref_type_and_name
  944. === RUN TestVersionFromTagRefs/gitlab_commit_tag
  945. === RUN TestVersionFromTagRefs/azure_source_branch_tag_ref
  946. === RUN TestVersionFromTagRefs/no_tag_refs
  947. --- PASS: TestVersionFromTagRefs (0.00s)
  948. --- PASS: TestVersionFromTagRefs/github_ref_tag (0.00s)
  949. --- PASS: TestVersionFromTagRefs/github_ref_type_and_name (0.00s)
  950. --- PASS: TestVersionFromTagRefs/gitlab_commit_tag (0.00s)
  951. --- PASS: TestVersionFromTagRefs/azure_source_branch_tag_ref (0.00s)
  952. --- PASS: TestVersionFromTagRefs/no_tag_refs (0.00s)
  953. === RUN TestBuildImageArgs_CustomDockerfile
  954. --- PASS: TestBuildImageArgs_CustomDockerfile (0.00s)
  955. === RUN TestParseDockerfileLabels
  956. === RUN TestParseDockerfileLabels/simple_label
  957. === RUN TestParseDockerfileLabels/multiple_labels
  958. === RUN TestParseDockerfileLabels/multi-label_on_one_line
  959. === RUN TestParseDockerfileLabels/unquoted_value
  960. === RUN TestParseDockerfileLabels/single-quoted_value
  961. === RUN TestParseDockerfileLabels/non-gordon_labels_ignored
  962. === RUN TestParseDockerfileLabels/comma-separated_domains
  963. === RUN TestParseDockerfileLabels/no_labels
  964. === RUN TestParseDockerfileLabels/comments_and_empty_lines
  965. --- PASS: TestParseDockerfileLabels (0.00s)
  966. --- PASS: TestParseDockerfileLabels/simple_label (0.00s)
  967. --- PASS: TestParseDockerfileLabels/multiple_labels (0.00s)
  968. --- PASS: TestParseDockerfileLabels/multi-label_on_one_line (0.00s)
  969. --- PASS: TestParseDockerfileLabels/unquoted_value (0.00s)
  970. --- PASS: TestParseDockerfileLabels/single-quoted_value (0.00s)
  971. --- PASS: TestParseDockerfileLabels/non-gordon_labels_ignored (0.00s)
  972. --- PASS: TestParseDockerfileLabels/comma-separated_domains (0.00s)
  973. --- PASS: TestParseDockerfileLabels/no_labels (0.00s)
  974. --- PASS: TestParseDockerfileLabels/comments_and_empty_lines (0.00s)
  975. === RUN TestParseDockerfileLabels_NonExistent
  976. --- PASS: TestParseDockerfileLabels_NonExistent (0.00s)
  977. === RUN TestDetectImageName_FromDockerfileLabels
  978. --- PASS: TestDetectImageName_FromDockerfileLabels (0.00s)
  979. === RUN TestDetectImageName_FallbackToDir
  980. --- PASS: TestDetectImageName_FallbackToDir (0.00s)
  981. === RUN TestSplitLabelPairs
  982. === RUN TestSplitLabelPairs/single_pair
  983. === RUN TestSplitLabelPairs/two_pairs
  984. === RUN TestSplitLabelPairs/unquoted
  985. === RUN TestSplitLabelPairs/quoted_with_spaces_in_value
  986. --- PASS: TestSplitLabelPairs (0.00s)
  987. --- PASS: TestSplitLabelPairs/single_pair (0.00s)
  988. --- PASS: TestSplitLabelPairs/two_pairs (0.00s)
  989. --- PASS: TestSplitLabelPairs/unquoted (0.00s)
  990. --- PASS: TestSplitLabelPairs/quoted_with_spaces_in_value (0.00s)
  991. === RUN TestGetGitVersionNoTagsReturnsFallbackAndWarns
  992. --- PASS: TestGetGitVersionNoTagsReturnsFallbackAndWarns (0.01s)
  993. === RUN TestParseLabelPair
  994. === RUN TestParseLabelPair/quoted
  995. === RUN TestParseLabelPair/unquoted
  996. === RUN TestParseLabelPair/single_quoted
  997. === RUN TestParseLabelPair/empty_value
  998. === RUN TestParseLabelPair/no_equals
  999. --- PASS: TestParseLabelPair (0.00s)
  1000. --- PASS: TestParseLabelPair/quoted (0.00s)
  1001. --- PASS: TestParseLabelPair/unquoted (0.00s)
  1002. --- PASS: TestParseLabelPair/single_quoted (0.00s)
  1003. --- PASS: TestParseLabelPair/empty_value (0.00s)
  1004. --- PASS: TestParseLabelPair/no_equals (0.00s)
  1005. === RUN TestTLSStatus_HumanOutput
  1006. tls_test.go:58: Human output:
  1007. Public TLS / ACME Status
  1008. ACME: enabled
  1009. Configured Mode: acme
  1010. Effective Mode: acme-staging
  1011. Reason: configured
  1012. Token Source: env
  1013. Certificates
  1014. ID: cert-abc123
  1015. Names: example.com, www.example.com
  1016. Status: valid
  1017. Not After: 2026-05-29 12:00:00
  1018. Route Coverage
  1019. example.com covered=yes covered_by=cert-abc123
  1020. internal.local covered=no error=self-signed cert
  1021. Errors
  1022. route internal.local has no ACME cert
  1023. --- PASS: TestTLSStatus_HumanOutput (0.00s)
  1024. === RUN TestTLSStatus_JSONOutput
  1025. --- PASS: TestTLSStatus_JSONOutput (0.00s)
  1026. === RUN TestTrafficCommandExists
  1027. --- PASS: TestTrafficCommandExists (0.00s)
  1028. === RUN TestTrafficStatusRejectsArgs
  1029. --- PASS: TestTrafficStatusRejectsArgs (0.00s)
  1030. === RUN TestTrafficStatusHumanOutput
  1031. --- PASS: TestTrafficStatusHumanOutput (0.00s)
  1032. === RUN TestTrafficStatusJSONOutput
  1033. --- PASS: TestTrafficStatusJSONOutput (0.00s)
  1034. === RUN TestRunTrafficStatusUsesControlPlane
  1035. --- PASS: TestRunTrafficStatusUsesControlPlane (0.00s)
  1036. === RUN TestRemoteTrafficStatusControlPlaneStillRenders
  1037. --- PASS: TestRemoteTrafficStatusControlPlaneStillRenders (0.00s)
  1038. === RUN TestPresentationHelpers
  1039. --- PASS: TestPresentationHelpers (0.00s)
  1040. === RUN TestUIAdoptionRuntimeSeams
  1041. --- PASS: TestUIAdoptionRuntimeSeams (0.00s)
  1042. === RUN TestRunVolumesList_ShowsVolumes
  1043. --- PASS: TestRunVolumesList_ShowsVolumes (0.00s)
  1044. === RUN TestRunVolumesList_JSON
  1045. --- PASS: TestRunVolumesList_JSON (0.00s)
  1046. === RUN TestRunVolumesPrune_JSONExecutesActualPrune
  1047. --- PASS: TestRunVolumesPrune_JSONExecutesActualPrune (0.00s)
  1048. === RUN TestRunVolumesPrune_DryRun
  1049. --- PASS: TestRunVolumesPrune_DryRun (0.00s)
  1050. === CONT TestIntegration_TagAndPush_NativeRegistry
  1051. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mblob storage initialized<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mroot_dir=<U+001B>[0m/tmp/TestIntegration_TagAndPush_NativeRegistry464249681/001
  1052. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mmanifest storage initialized<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mroot_dir=<U+001B>[0m/tmp/TestIntegration_TagAndPush_NativeRegistry464249681/001
  1053. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mblob upload started<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mname=<U+001B>[0mtestapp <U+001B>[36muuid=<U+001B>[0me8383d3c-d8bb-45f4-82fc-17c991b07994
  1054. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mblob upload finished<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mdigest=<U+001B>[0msha256:f6d90a413d270efeaef147f057850b7d3bba9dd28dfba1cacf6e930a182b9e73 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mname=<U+001B>[0mtestapp <U+001B>[36muuid=<U+001B>[0me8383d3c-d8bb-45f4-82fc-17c991b07994
  1055. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mblob upload started<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mname=<U+001B>[0mtestapp <U+001B>[36muuid=<U+001B>[0m8541d35c-d839-4310-b72f-6c5ff0afdb56
  1056. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mblob upload finished<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mdigest=<U+001B>[0msha256:422a5dd7f9c5f6ceecaa6db41438c74c52490bb49e8320a2e333a85b6d89a3d5 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mname=<U+001B>[0mtestapp <U+001B>[36muuid=<U+001B>[0m8541d35c-d839-4310-b72f-6c5ff0afdb56
  1057. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mmanifest stored<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mname=<U+001B>[0mtestapp <U+001B>[36mreference=<U+001B>[0mv1.0.0
  1058. <U+001B>[90m2026-10-18T20:51:17Z<U+001B>[0m <U+001B>[32mINF<U+001B>[0m <U+001B>[1mmanifest stored<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mfilesystem <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mname=<U+001B>[0mtestapp <U+001B>[36mreference=<U+001B>[0mlatest
  1059. --- PASS: TestIntegration_TagAndPush_NativeRegistry (0.04s)
  1060. PASS
  1061. ok github.com/bnema/gordon/internal/adapters/in/cli 1.295s
  1062. ? github.com/bnema/gordon/internal/adapters/in/cli/mocks [no test files]
  1063. === RUN TestClientApplyApp_SendsIdempotencyKey
  1064. --- PASS: TestClientApplyApp_SendsIdempotencyKey (0.00s)
  1065. === RUN TestClientDeployApp_GatewayErrorIsOutcomeUnknownWithoutReplay
  1066. --- PASS: TestClientDeployApp_GatewayErrorIsOutcomeUnknownWithoutReplay (0.00s)
  1067. === RUN TestClientOperationByKey_RecoveryPath
  1068. --- PASS: TestClientOperationByKey_RecoveryPath (0.00s)
  1069. === RUN TestClientLifecycle_MutationsCarryKeys
  1070. --- PASS: TestClientLifecycle_MutationsCarryKeys (0.00s)
  1071. === RUN TestClientRestartApp_SendsServiceScope
  1072. --- PASS: TestClientRestartApp_SendsServiceScope (0.00s)
  1073. === RUN TestClientDeployApp_AcceptedRunningJournal
  1074. --- PASS: TestClientDeployApp_AcceptedRunningJournal (0.00s)
  1075. === RUN TestClientDeployApp_ConflictDecodesJournal
  1076. --- PASS: TestClientDeployApp_ConflictDecodesJournal (0.00s)
  1077. === RUN TestClientStopApp_ConflictDecodesJournal
  1078. --- PASS: TestClientStopApp_ConflictDecodesJournal (0.00s)
  1079. === RUN TestClientDeployApp_ConflictWithoutJournalFallsBackToHTTPError
  1080. --- PASS: TestClientDeployApp_ConflictWithoutJournalFallsBackToHTTPError (0.00s)
  1081. === RUN TestClientListAppSecrets_ServiceFilterAndErrorContext
  1082. --- PASS: TestClientListAppSecrets_ServiceFilterAndErrorContext (0.00s)
  1083. === RUN TestClientReloadDoesNotRetryGatewayResponse
  1084. --- PASS: TestClientReloadDoesNotRetryGatewayResponse (0.00s)
  1085. === RUN TestClientGetStatusDoesNotRetryAuthenticationRejection
  1086. --- PASS: TestClientGetStatusDoesNotRetryAuthenticationRejection (0.00s)
  1087. === RUN TestClientGetStatusRetriesTransientGatewayResponse
  1088. --- PASS: TestClientGetStatusRetriesTransientGatewayResponse (0.03s)
  1089. === RUN TestClientGetStatusRetriesTransientTransportFailure
  1090. --- PASS: TestClientGetStatusRetriesTransientTransportFailure (0.03s)
  1091. === RUN TestClientGetStatusReportsTransportContextAfterRetryExhaustion
  1092. --- PASS: TestClientGetStatusReportsTransportContextAfterRetryExhaustion (0.03s)
  1093. === RUN TestClientWithInsecureTLS_AllowsSelfSignedCertificate
  1094. 2026/10/18 20:51:17 http: TLS handshake error from 127.0.0.1:33162: remote error: tls: bad certificate
  1095. 2026/10/18 20:51:17 http: TLS handshake error from 127.0.0.1:33168: remote error: tls: bad certificate
  1096. 2026/10/18 20:51:18 http: TLS handshake error from 127.0.0.1:33176: remote error: tls: bad certificate
  1097. WARNING: TLS certificate verification disabled for https://127.0.0.1:32869
  1098. 2026/10/18 20:51:19 http: TLS handshake error from 127.0.0.1:33190: remote error: tls: bad certificate
  1099. --- PASS: TestClientWithInsecureTLS_AllowsSelfSignedCertificate (1.88s)
  1100. === RUN TestClientGetTrafficStatus
  1101. --- PASS: TestClientGetTrafficStatus (0.00s)
  1102. === RUN TestClientGetCA
  1103. --- PASS: TestClientGetCA (0.00s)
  1104. === RUN TestClientGetCADisabled
  1105. --- PASS: TestClientGetCADisabled (0.00s)
  1106. === RUN TestClientGetTLSStatus
  1107. --- PASS: TestClientGetTLSStatus (0.00s)
  1108. === RUN TestClientListImages
  1109. --- PASS: TestClientListImages (0.00s)
  1110. === RUN TestClientPruneImages
  1111. --- PASS: TestClientPruneImages (0.00s)
  1112. === RUN TestParseResponse_CapsErrorBodySize
  1113. --- PASS: TestParseResponse_CapsErrorBodySize (0.02s)
  1114. === RUN TestStreamLogs_CapsErrorBodySize
  1115. --- PASS: TestStreamLogs_CapsErrorBodySize (0.03s)
  1116. === RUN TestRequestWithRetry_CapsErrorBodySize
  1117. --- PASS: TestRequestWithRetry_CapsErrorBodySize (0.03s)
  1118. === RUN TestExchangeRegistryToken_Success
  1119. --- PASS: TestExchangeRegistryToken_Success (0.00s)
  1120. === RUN TestExchangeRegistryToken_Unauthorized
  1121. --- PASS: TestExchangeRegistryToken_Unauthorized (0.00s)
  1122. === RUN TestExchangeRegistryToken_EmptyToken
  1123. --- PASS: TestExchangeRegistryToken_EmptyToken (0.00s)
  1124. === RUN TestHTTPError_ErrorString
  1125. --- PASS: TestHTTPError_ErrorString (0.00s)
  1126. === RUN TestHTTPError_Unwrap
  1127. --- PASS: TestHTTPError_Unwrap (0.00s)
  1128. === RUN TestParseErrorResponse_ReturnsHTTPError
  1129. --- PASS: TestParseErrorResponse_ReturnsHTTPError (0.00s)
  1130. === RUN TestParseErrorResponse_AppErrorMessage
  1131. --- PASS: TestParseErrorResponse_AppErrorMessage (0.00s)
  1132. === RUN TestParseErrorResponse_DeployFailureFields
  1133. --- PASS: TestParseErrorResponse_DeployFailureFields (0.00s)
  1134. === RUN TestParseErrorResponse_ErrorOnlyJSONNotStructured
  1135. --- PASS: TestParseErrorResponse_ErrorOnlyJSONNotStructured (0.00s)
  1136. === RUN TestParseErrorResponse_NonJSON
  1137. --- PASS: TestParseErrorResponse_NonJSON (0.00s)
  1138. === RUN TestRunVolumeBackups_PartialContentReturnsResultAndError
  1139. --- PASS: TestRunVolumeBackups_PartialContentReturnsResultAndError (0.00s)
  1140. === RUN TestExchangeRegistryToken_AccessTokenFallback
  1141. --- PASS: TestExchangeRegistryToken_AccessTokenFallback (0.00s)
  1142. === RUN TestLocalAdminDiscoveryRejectsUnsafeSelectedCandidate
  1143. --- PASS: TestLocalAdminDiscoveryRejectsUnsafeSelectedCandidate (0.00s)
  1144. === RUN TestLocalAdminDiscoveryReportsUnavailable
  1145. --- PASS: TestLocalAdminDiscoveryReportsUnavailable (0.00s)
  1146. === RUN TestLocalAdminDiscoveryUsesXDGCandidates
  1147. --- PASS: TestLocalAdminDiscoveryUsesXDGCandidates (0.00s)
  1148. === RUN TestLocalAdminClientFailsWithoutSocket
  1149. --- PASS: TestLocalAdminClientFailsWithoutSocket (0.00s)
  1150. === RUN TestLocalAdminClientSendsNoTokenAndNoExchange
  1151. --- PASS: TestLocalAdminClientSendsNoTokenAndNoExchange (0.10s)
  1152. === RUN TestLocalAdminClientIgnoresEnvironmentProxy
  1153. --- PASS: TestLocalAdminClientIgnoresEnvironmentProxy (0.00s)
  1154. === RUN TestLocalAdminClientRejectsRedirects
  1155. --- PASS: TestLocalAdminClientRejectsRedirects (0.00s)
  1156. === RUN TestLocalAdminClientRespectsCancellation
  1157. --- PASS: TestLocalAdminClientRespectsCancellation (0.00s)
  1158. === RUN TestLocalAdminClientFailsOnMissingSocket
  1159. --- PASS: TestLocalAdminClientFailsOnMissingSocket (0.00s)
  1160. === RUN TestLocalAdminTransportDialsUnixOnly
  1161. --- PASS: TestLocalAdminTransportDialsUnixOnly (0.00s)
  1162. === RUN TestMigrateClientConfig
  1163. Notice: migrated [client] config from gordon.toml to 'default' remote. The [client] section is deprecated; use 'gordon remotes' instead.
  1164. --- PASS: TestMigrateClientConfig (0.00s)
  1165. === RUN TestMigrateClientConfig_NoOverwrite
  1166. --- PASS: TestMigrateClientConfig_NoOverwrite (0.00s)
  1167. === RUN TestMigrateClientConfig_SkipsLocalMode
  1168. --- PASS: TestMigrateClientConfig_SkipsLocalMode (0.00s)
  1169. === RUN TestValidateRemoteName
  1170. === RUN TestValidateRemoteName/valid_simple
  1171. === RUN TestValidateRemoteName/valid_with_dots
  1172. === RUN TestValidateRemoteName/valid_with_dashes
  1173. === RUN TestValidateRemoteName/valid_with_underscore
  1174. === RUN TestValidateRemoteName/invalid_slash
  1175. === RUN TestValidateRemoteName/invalid_dotdot
  1176. === RUN TestValidateRemoteName/invalid_space
  1177. === RUN TestValidateRemoteName/empty
  1178. === RUN TestValidateRemoteName/leading_dot
  1179. === RUN TestValidateRemoteName/trailing_dot
  1180. === RUN TestValidateRemoteName/only_dots
  1181. === RUN TestValidateRemoteName/only_dashes
  1182. === RUN TestValidateRemoteName/very_long_name
  1183. --- PASS: TestValidateRemoteName (0.00s)
  1184. --- PASS: TestValidateRemoteName/valid_simple (0.00s)
  1185. --- PASS: TestValidateRemoteName/valid_with_dots (0.00s)
  1186. --- PASS: TestValidateRemoteName/valid_with_dashes (0.00s)
  1187. --- PASS: TestValidateRemoteName/valid_with_underscore (0.00s)
  1188. --- PASS: TestValidateRemoteName/invalid_slash (0.00s)
  1189. --- PASS: TestValidateRemoteName/invalid_dotdot (0.00s)
  1190. --- PASS: TestValidateRemoteName/invalid_space (0.00s)
  1191. --- PASS: TestValidateRemoteName/empty (0.00s)
  1192. --- PASS: TestValidateRemoteName/leading_dot (0.00s)
  1193. --- PASS: TestValidateRemoteName/trailing_dot (0.00s)
  1194. --- PASS: TestValidateRemoteName/only_dots (0.00s)
  1195. --- PASS: TestValidateRemoteName/only_dashes (0.00s)
  1196. --- PASS: TestValidateRemoteName/very_long_name (0.00s)
  1197. === RUN TestResolve_FlagNameLookup
  1198. --- PASS: TestResolve_FlagNameLookup (0.00s)
  1199. === RUN TestResolve_FlagURLPassthrough
  1200. --- PASS: TestResolve_FlagURLPassthrough (0.00s)
  1201. === RUN TestResolve_ActiveRemoteFallback
  1202. --- PASS: TestResolve_ActiveRemoteFallback (0.00s)
  1203. === RUN TestResolve_NoRemote_LocalMode
  1204. --- PASS: TestResolve_NoRemote_LocalMode (0.00s)
  1205. === RUN TestResolve_EnvRemoteName
  1206. --- PASS: TestResolve_EnvRemoteName (0.00s)
  1207. === RUN TestResolve_EnvRemoteURL
  1208. --- PASS: TestResolve_EnvRemoteURL (0.00s)
  1209. === RUN TestResolve_FlagTokenOverridesStored
  1210. --- PASS: TestResolve_FlagTokenOverridesStored (0.00s)
  1211. === RUN TestResolve_EnvTokenOverridesStored
  1212. --- PASS: TestResolve_EnvTokenOverridesStored (0.00s)
  1213. === RUN TestResolve_InsecureTLSFlag
  1214. --- PASS: TestResolve_InsecureTLSFlag (0.00s)
  1215. === RUN TestResolve_InsecureTLSFromEntry
  1216. --- PASS: TestResolve_InsecureTLSFromEntry (0.00s)
  1217. === RUN TestResolve_TokenEnvVar
  1218. --- PASS: TestResolve_TokenEnvVar (0.00s)
  1219. === RUN TestResolve_UnknownNameReturnsNotFound
  1220. --- PASS: TestResolve_UnknownNameReturnsNotFound (0.00s)
  1221. === RUN TestResolveStrict_UnknownFlagRemoteWrapsErrRemoteNotFound
  1222. --- PASS: TestResolveStrict_UnknownFlagRemoteWrapsErrRemoteNotFound (0.00s)
  1223. === RUN TestResolveStrict_LoadRemotesErrorIsReturned
  1224. --- PASS: TestResolveStrict_LoadRemotesErrorIsReturned (0.00s)
  1225. PASS
  1226. ok github.com/bnema/gordon/internal/adapters/in/cli/remote 3.220s
  1227. === RUN TestStatusIcon_ReturnsStyledIcon
  1228. === RUN TestStatusIcon_ReturnsStyledIcon/success_renders_without_error
  1229. === RUN TestStatusIcon_ReturnsStyledIcon/running_renders_without_error
  1230. === RUN TestStatusIcon_ReturnsStyledIcon/error_renders_without_error
  1231. === RUN TestStatusIcon_ReturnsStyledIcon/stopped_renders_without_error
  1232. === RUN TestStatusIcon_ReturnsStyledIcon/exited_renders_without_error
  1233. === RUN TestStatusIcon_ReturnsStyledIcon/unknown_renders_without_error
  1234. === RUN TestStatusIcon_ReturnsStyledIcon/pending_renders_without_error
  1235. --- PASS: TestStatusIcon_ReturnsStyledIcon (0.00s)
  1236. --- PASS: TestStatusIcon_ReturnsStyledIcon/success_renders_without_error (0.00s)
  1237. --- PASS: TestStatusIcon_ReturnsStyledIcon/running_renders_without_error (0.00s)
  1238. --- PASS: TestStatusIcon_ReturnsStyledIcon/error_renders_without_error (0.00s)
  1239. --- PASS: TestStatusIcon_ReturnsStyledIcon/stopped_renders_without_error (0.00s)
  1240. --- PASS: TestStatusIcon_ReturnsStyledIcon/exited_renders_without_error (0.00s)
  1241. --- PASS: TestStatusIcon_ReturnsStyledIcon/unknown_renders_without_error (0.00s)
  1242. --- PASS: TestStatusIcon_ReturnsStyledIcon/pending_renders_without_error (0.00s)
  1243. === RUN TestStatusIcon_DifferentStatusesProduceDifferentOutput
  1244. --- PASS: TestStatusIcon_DifferentStatusesProduceDifferentOutput (0.00s)
  1245. === RUN TestTableRender_AppliesConfiguredColumnWidth
  1246. --- PASS: TestTableRender_AppliesConfiguredColumnWidth (0.00s)
  1247. === RUN TestTableRender_TruncatesLongCellTextWithEllipsis
  1248. --- PASS: TestTableRender_TruncatesLongCellTextWithEllipsis (0.00s)
  1249. === RUN TestTruncateCell_LeavesShortTextUnchanged
  1250. --- PASS: TestTruncateCell_LeavesShortTextUnchanged (0.00s)
  1251. === RUN TestTruncateCell_EdgeCases
  1252. === RUN TestTruncateCell_EdgeCases/zero_width_passthrough
  1253. === RUN TestTruncateCell_EdgeCases/width_three_all_dots
  1254. === RUN TestTruncateCell_EdgeCases/ascii_truncates
  1255. === RUN TestTruncateCell_EdgeCases/cjk_truncates_by_display_width
  1256. === RUN TestTruncateCell_EdgeCases/grapheme-safe_emoji_truncation
  1257. --- PASS: TestTruncateCell_EdgeCases (0.01s)
  1258. --- PASS: TestTruncateCell_EdgeCases/zero_width_passthrough (0.00s)
  1259. --- PASS: TestTruncateCell_EdgeCases/width_three_all_dots (0.00s)
  1260. --- PASS: TestTruncateCell_EdgeCases/ascii_truncates (0.00s)
  1261. --- PASS: TestTruncateCell_EdgeCases/cjk_truncates_by_display_width (0.01s)
  1262. --- PASS: TestTruncateCell_EdgeCases/grapheme-safe_emoji_truncation (0.00s)
  1263. === RUN TestTruncateCell_AnsiInputPassthrough
  1264. --- PASS: TestTruncateCell_AnsiInputPassthrough (0.00s)
  1265. === RUN TestTree_SingleNodeNoChildren
  1266. --- PASS: TestTree_SingleNodeNoChildren (0.00s)
  1267. === RUN TestTree_NodeWithOneChild
  1268. --- PASS: TestTree_NodeWithOneChild (0.00s)
  1269. === RUN TestTree_NodeWithMultipleChildren
  1270. --- PASS: TestTree_NodeWithMultipleChildren (0.00s)
  1271. === RUN TestTree_GroupWithNodes
  1272. --- PASS: TestTree_GroupWithNodes (0.00s)
  1273. === RUN TestTree_MixedNodesAndGroups
  1274. --- PASS: TestTree_MixedNodesAndGroups (0.00s)
  1275. === RUN TestTree_EmptyTreeRendersEmpty
  1276. --- PASS: TestTree_EmptyTreeRendersEmpty (0.00s)
  1277. === RUN TestTree_NodeWithChildSubtitleIndented
  1278. --- PASS: TestTree_NodeWithChildSubtitleIndented (0.00s)
  1279. === RUN TestTree_GroupNodeWithChild
  1280. --- PASS: TestTree_GroupNodeWithChild (0.00s)
  1281. PASS
  1282. ok github.com/bnema/gordon/internal/adapters/in/cli/ui/components 1.024s
  1283. ? github.com/bnema/gordon/internal/adapters/in/cli/ui/styles [no test files]
  1284. === RUN TestHandlerServesGETChallenge
  1285. --- PASS: TestHandlerServesGETChallenge (0.00s)
  1286. === RUN TestHandlerServesHEADChallenge
  1287. --- PASS: TestHandlerServesHEADChallenge (0.00s)
  1288. === RUN TestHandlerRejectsUnsafeToken
  1289. === RUN TestHandlerRejectsUnsafeToken/path_traversal
  1290. === RUN TestHandlerRejectsUnsafeToken/slash_in_token
  1291. === RUN TestHandlerRejectsUnsafeToken/empty_token
  1292. === RUN TestHandlerRejectsUnsafeToken/backslash_in_token
  1293. --- PASS: TestHandlerRejectsUnsafeToken (0.00s)
  1294. --- PASS: TestHandlerRejectsUnsafeToken/path_traversal (0.00s)
  1295. --- PASS: TestHandlerRejectsUnsafeToken/slash_in_token (0.00s)
  1296. --- PASS: TestHandlerRejectsUnsafeToken/empty_token (0.00s)
  1297. --- PASS: TestHandlerRejectsUnsafeToken/backslash_in_token (0.00s)
  1298. === RUN TestHandlerRejectsPOST
  1299. --- PASS: TestHandlerRejectsPOST (0.00s)
  1300. === RUN TestHandlerRejectsMissingPrefix
  1301. --- PASS: TestHandlerRejectsMissingPrefix (0.00s)
  1302. === RUN TestHandlerRejectsUnknownToken
  1303. --- PASS: TestHandlerRejectsUnknownToken (0.00s)
  1304. === RUN TestHandlerRejectsNilService
  1305. --- PASS: TestHandlerRejectsNilService (0.00s)
  1306. PASS
  1307. ok github.com/bnema/gordon/internal/adapters/in/http/acme 1.021s
  1308. === RUN TestHandler_AppApply_Persists
  1309. --- PASS: TestHandler_AppApply_Persists (0.00s)
  1310. === RUN TestHandler_AppApply_RejectsBadManifest
  1311. --- PASS: TestHandler_AppApply_RejectsBadManifest (0.00s)
  1312. === RUN TestHandler_AppDeploy_MapsOp
  1313. --- PASS: TestHandler_AppDeploy_MapsOp (0.00s)
  1314. === RUN TestHandler_AppDeploy_MapsCleanupWarnings
  1315. --- PASS: TestHandler_AppDeploy_MapsCleanupWarnings (0.00s)
  1316. === RUN TestHandler_AppDeploy_RunningReturns202
  1317. --- PASS: TestHandler_AppDeploy_RunningReturns202 (0.00s)
  1318. === RUN TestHandler_AppDeploy_TerminalReplayReturnsOK
  1319. --- PASS: TestHandler_AppDeploy_TerminalReplayReturnsOK (0.00s)
  1320. === RUN TestHandler_AppDeploy_TerminalFailureReplayIsVisible
  1321. --- PASS: TestHandler_AppDeploy_TerminalFailureReplayIsVisible (0.00s)
  1322. === RUN TestHandler_AppDeploy_RunningReplayBeforeServiceSteps
  1323. --- PASS: TestHandler_AppDeploy_RunningReplayBeforeServiceSteps (0.00s)
  1324. === RUN TestHandler_AppDeploy_RunningReplayAfterServiceSteps
  1325. --- PASS: TestHandler_AppDeploy_RunningReplayAfterServiceSteps (0.00s)
  1326. === RUN TestHandler_AppDeploy_ServiceScopeRequiredIs400
  1327. --- PASS: TestHandler_AppDeploy_ServiceScopeRequiredIs400 (0.00s)
  1328. === RUN TestHandler_AppDeploy_PassesAll
  1329. --- PASS: TestHandler_AppDeploy_PassesAll (0.00s)
  1330. === RUN TestHandler_AppRestart_PassesServiceAndAll
  1331. --- PASS: TestHandler_AppRestart_PassesServiceAndAll (0.00s)
  1332. === RUN TestHandler_AppDeploy_RejectsMissingIdempotencyKey
  1333. --- PASS: TestHandler_AppDeploy_RejectsMissingIdempotencyKey (0.00s)
  1334. === RUN TestHandler_AppList_RequiresScope
  1335. --- PASS: TestHandler_AppList_RequiresScope (0.00s)
  1336. === RUN TestHandler_AppSecretsSet_Forwards
  1337. --- PASS: TestHandler_AppSecretsSet_Forwards (0.00s)
  1338. === RUN TestHandler_AppSecretsSet_MissingRegistrationHasNoDeployHint
  1339. --- PASS: TestHandler_AppSecretsSet_MissingRegistrationHasNoDeployHint (0.00s)
  1340. === RUN TestHandler_AppLifecycle_UnknownAppIsNotFound
  1341. --- PASS: TestHandler_AppLifecycle_UnknownAppIsNotFound (0.00s)
  1342. === RUN TestHandler_AppLifecycle_ReplayConflictCarriesJournal
  1343. --- PASS: TestHandler_AppLifecycle_ReplayConflictCarriesJournal (0.00s)
  1344. === RUN TestHandler_AppShow_MapsReadModel
  1345. --- PASS: TestHandler_AppShow_MapsReadModel (0.00s)
  1346. === RUN TestHandler_AppShow_UnknownAppIsNotFound
  1347. --- PASS: TestHandler_AppShow_UnknownAppIsNotFound (0.00s)
  1348. === RUN TestHandler_AppList_MapsReadModel
  1349. --- PASS: TestHandler_AppList_MapsReadModel (0.00s)
  1350. === RUN TestHandler_AppOpLookup_Recovers
  1351. --- PASS: TestHandler_AppOpLookup_Recovers (0.00s)
  1352. === RUN TestHandler_AppOpLookup_GatesDiagnosticsByLogsScope
  1353. --- PASS: TestHandler_AppOpLookup_GatesDiagnosticsByLogsScope (0.00s)
  1354. === RUN TestHandler_AppApply_DryRunOmitsRevision
  1355. --- PASS: TestHandler_AppApply_DryRunOmitsRevision (0.00s)
  1356. === RUN TestHandler_AppSecretsList_MissingAppIs404
  1357. --- PASS: TestHandler_AppSecretsList_MissingAppIs404 (0.00s)
  1358. === RUN TestHandler_AppApply_MapsDevicePolicyViolation
  1359. --- PASS: TestHandler_AppApply_MapsDevicePolicyViolation (0.00s)
  1360. === RUN TestSendAppOpError_MapsRuntimeGuard
  1361. --- PASS: TestSendAppOpError_MapsRuntimeGuard (0.00s)
  1362. === RUN TestHandler_AppApply_MapsRuntimeUnsupported
  1363. --- PASS: TestHandler_AppApply_MapsRuntimeUnsupported (0.00s)
  1364. === RUN TestApplyApp_MapsCapabilityPolicyViolation
  1365. --- PASS: TestApplyApp_MapsCapabilityPolicyViolation (0.00s)
  1366. === RUN TestHandler_CA
  1367. --- PASS: TestHandler_CA (0.00s)
  1368. === RUN TestHandler_CARequiresStatusRead
  1369. --- PASS: TestHandler_CARequiresStatusRead (0.00s)
  1370. === RUN TestHandler_CARejectsNonGet
  1371. --- PASS: TestHandler_CARejectsNonGet (0.00s)
  1372. === RUN TestHandler_CADisabledReturnsNotFound
  1373. --- PASS: TestHandler_CADisabledReturnsNotFound (0.00s)
  1374. === RUN TestHandler_RetiredMutations_Return410
  1375. --- PASS: TestHandler_RetiredMutations_Return410 (0.00s)
  1376. === RUN TestHandler_VolumesGet_RequiresVolumesReadScope
  1377. === RUN TestHandler_VolumesGet_RequiresVolumesReadScope/volumes_read_access_granted
  1378. === RUN TestHandler_VolumesGet_RequiresVolumesReadScope/all_admin_access_granted
  1379. === RUN TestHandler_VolumesGet_RequiresVolumesReadScope/status_read_denied
  1380. === RUN TestHandler_VolumesGet_RequiresVolumesReadScope/volumes_write_denied
  1381. --- PASS: TestHandler_VolumesGet_RequiresVolumesReadScope (0.00s)
  1382. --- PASS: TestHandler_VolumesGet_RequiresVolumesReadScope/volumes_read_access_granted (0.00s)
  1383. --- PASS: TestHandler_VolumesGet_RequiresVolumesReadScope/all_admin_access_granted (0.00s)
  1384. --- PASS: TestHandler_VolumesGet_RequiresVolumesReadScope/status_read_denied (0.00s)
  1385. --- PASS: TestHandler_VolumesGet_RequiresVolumesReadScope/volumes_write_denied (0.00s)
  1386. === RUN TestHandler_VolumesPrune_RequiresVolumesWriteScope
  1387. === RUN TestHandler_VolumesPrune_RequiresVolumesWriteScope/volumes_write_access_granted
  1388. === RUN TestHandler_VolumesPrune_RequiresVolumesWriteScope/all_admin_access_granted
  1389. === RUN TestHandler_VolumesPrune_RequiresVolumesWriteScope/config_write_denied
  1390. === RUN TestHandler_VolumesPrune_RequiresVolumesWriteScope/volumes_read_denied
  1391. --- PASS: TestHandler_VolumesPrune_RequiresVolumesWriteScope (0.00s)
  1392. --- PASS: TestHandler_VolumesPrune_RequiresVolumesWriteScope/volumes_write_access_granted (0.00s)
  1393. --- PASS: TestHandler_VolumesPrune_RequiresVolumesWriteScope/all_admin_access_granted (0.00s)
  1394. --- PASS: TestHandler_VolumesPrune_RequiresVolumesWriteScope/config_write_denied (0.00s)
  1395. --- PASS: TestHandler_VolumesPrune_RequiresVolumesWriteScope/volumes_read_denied (0.00s)
  1396. === RUN TestHandler_Status_RequiresReadScope
  1397. === RUN TestHandler_Status_RequiresReadScope/status_read_access_granted
  1398. === RUN TestHandler_Status_RequiresReadScope/all_admin_access_granted
  1399. === RUN TestHandler_Status_RequiresReadScope/wrong_resource_denied
  1400. --- PASS: TestHandler_Status_RequiresReadScope (0.00s)
  1401. --- PASS: TestHandler_Status_RequiresReadScope/status_read_access_granted (0.00s)
  1402. --- PASS: TestHandler_Status_RequiresReadScope/all_admin_access_granted (0.00s)
  1403. --- PASS: TestHandler_Status_RequiresReadScope/wrong_resource_denied (0.00s)
  1404. === RUN TestHandler_AuthVerify_PublishesRegistryDomainForValidTokens
  1405. === RUN TestHandler_AuthVerify_PublishesRegistryDomainForValidTokens/valid_token_without_status_scope
  1406. === RUN TestHandler_AuthVerify_PublishesRegistryDomainForValidTokens/invalid_token
  1407. --- PASS: TestHandler_AuthVerify_PublishesRegistryDomainForValidTokens (0.00s)
  1408. --- PASS: TestHandler_AuthVerify_PublishesRegistryDomainForValidTokens/valid_token_without_status_scope (0.00s)
  1409. --- PASS: TestHandler_AuthVerify_PublishesRegistryDomainForValidTokens/invalid_token (0.00s)
  1410. === RUN TestHandler_Config_HidesSensitiveInventoryByDefault
  1411. --- PASS: TestHandler_Config_HidesSensitiveInventoryByDefault (0.00s)
  1412. === RUN TestHandler_Config_RequiresReadScope
  1413. === RUN TestHandler_Config_RequiresReadScope/config_read_access_granted
  1414. === RUN TestHandler_Config_RequiresReadScope/all_admin_access_granted
  1415. === RUN TestHandler_Config_RequiresReadScope/wrong_resource_denied
  1416. --- PASS: TestHandler_Config_RequiresReadScope (0.00s)
  1417. --- PASS: TestHandler_Config_RequiresReadScope/config_read_access_granted (0.00s)
  1418. --- PASS: TestHandler_Config_RequiresReadScope/all_admin_access_granted (0.00s)
  1419. --- PASS: TestHandler_Config_RequiresReadScope/wrong_resource_denied (0.00s)
  1420. === RUN TestHandler_Reload_RequiresWriteScope
  1421. === RUN TestHandler_Reload_RequiresWriteScope/config_write_access_granted
  1422. === RUN TestHandler_Reload_RequiresWriteScope/all_admin_access_granted
  1423. === RUN TestHandler_Reload_RequiresWriteScope/only_read_access_denied
  1424. === RUN TestHandler_Reload_RequiresWriteScope/wrong_resource_denied
  1425. --- PASS: TestHandler_Reload_RequiresWriteScope (0.00s)
  1426. --- PASS: TestHandler_Reload_RequiresWriteScope/config_write_access_granted (0.00s)
  1427. --- PASS: TestHandler_Reload_RequiresWriteScope/all_admin_access_granted (0.00s)
  1428. --- PASS: TestHandler_Reload_RequiresWriteScope/only_read_access_denied (0.00s)
  1429. --- PASS: TestHandler_Reload_RequiresWriteScope/wrong_resource_denied (0.00s)
  1430. === RUN TestHandler_Reload_ReturnsServerErrorOnTriggerFailure
  1431. --- PASS: TestHandler_Reload_ReturnsServerErrorOnTriggerFailure (0.00s)
  1432. === RUN TestHandler_Reload_UsesDetachedContextWithDeadline
  1433. --- PASS: TestHandler_Reload_UsesDetachedContextWithDeadline (0.00s)
  1434. === RUN TestHandler_MethodNotAllowed
  1435. === RUN TestHandler_MethodNotAllowed/DELETE_/admin/status
  1436. === RUN TestHandler_MethodNotAllowed/PUT_/admin/status
  1437. === RUN TestHandler_MethodNotAllowed/GET_/admin/reload
  1438. === RUN TestHandler_MethodNotAllowed/DELETE_/admin/reload
  1439. === RUN TestHandler_MethodNotAllowed/POST_/admin/config
  1440. === RUN TestHandler_MethodNotAllowed/DELETE_/admin/config
  1441. --- PASS: TestHandler_MethodNotAllowed (0.00s)
  1442. --- PASS: TestHandler_MethodNotAllowed/DELETE_/admin/status (0.00s)
  1443. --- PASS: TestHandler_MethodNotAllowed/PUT_/admin/status (0.00s)
  1444. --- PASS: TestHandler_MethodNotAllowed/GET_/admin/reload (0.00s)
  1445. --- PASS: TestHandler_MethodNotAllowed/DELETE_/admin/reload (0.00s)
  1446. --- PASS: TestHandler_MethodNotAllowed/POST_/admin/config (0.00s)
  1447. --- PASS: TestHandler_MethodNotAllowed/DELETE_/admin/config (0.00s)
  1448. === RUN TestHandler_Tags_InvalidRepository
  1449. === RUN TestHandler_Tags_InvalidRepository/path_traversal
  1450. === RUN TestHandler_Tags_InvalidRepository/empty_repo
  1451. --- PASS: TestHandler_Tags_InvalidRepository (0.00s)
  1452. --- PASS: TestHandler_Tags_InvalidRepository/path_traversal (0.00s)
  1453. --- PASS: TestHandler_Tags_InvalidRepository/empty_repo (0.00s)
  1454. === RUN TestHandler_Tags_Success
  1455. --- PASS: TestHandler_Tags_Success (0.00s)
  1456. === RUN TestHandler_Tags_Error
  1457. --- PASS: TestHandler_Tags_Error (0.00s)
  1458. === RUN TestHandler_Tags_URLDecodedRepository
  1459. --- PASS: TestHandler_Tags_URLDecodedRepository (0.00s)
  1460. === RUN TestHandler_NotFound
  1461. --- PASS: TestHandler_NotFound (0.00s)
  1462. === RUN TestHandler_BackupsStatus
  1463. --- PASS: TestHandler_BackupsStatus (0.00s)
  1464. === RUN TestHandler_BackupsListApp
  1465. --- PASS: TestHandler_BackupsListApp (0.00s)
  1466. === RUN TestHandler_BackupsRunApp
  1467. --- PASS: TestHandler_BackupsRunApp (0.00s)
  1468. === RUN TestHandler_VolumeBackupsRunDomain_ReturnsPartialResults
  1469. --- PASS: TestHandler_VolumeBackupsRunDomain_ReturnsPartialResults (0.00s)
  1470. === RUN TestHandler_VolumeBackupsRunDomain_ReturnsServerErrorWithoutResults
  1471. --- PASS: TestHandler_VolumeBackupsRunDomain_ReturnsServerErrorWithoutResults (0.00s)
  1472. === RUN TestHandler_BackupsRunApp_ChunkedBodyIsDecoded
  1473. --- PASS: TestHandler_BackupsRunApp_ChunkedBodyIsDecoded (0.00s)
  1474. === RUN TestHandler_LogsRequireLogsReadAndRedact
  1475. === RUN TestHandler_LogsRequireLogsReadAndRedact/status_read_denied
  1476. === RUN TestHandler_LogsRequireLogsReadAndRedact/logs_read_allowed_and_redacted
  1477. --- PASS: TestHandler_LogsRequireLogsReadAndRedact (0.00s)
  1478. --- PASS: TestHandler_LogsRequireLogsReadAndRedact/status_read_denied (0.00s)
  1479. --- PASS: TestHandler_LogsRequireLogsReadAndRedact/logs_read_allowed_and_redacted (0.00s)
  1480. === RUN TestHandler_ImagesGet_ReturnsMappedList
  1481. --- PASS: TestHandler_ImagesGet_ReturnsMappedList (0.00s)
  1482. === RUN TestHandler_ImagesPrune_AcceptsOptionalKeepLast
  1483. === RUN TestHandler_ImagesPrune_AcceptsOptionalKeepLast/missing_keep_last_uses_default
  1484. === RUN TestHandler_ImagesPrune_AcceptsOptionalKeepLast/provided_keep_last
  1485. --- PASS: TestHandler_ImagesPrune_AcceptsOptionalKeepLast (0.00s)
  1486. --- PASS: TestHandler_ImagesPrune_AcceptsOptionalKeepLast/missing_keep_last_uses_default (0.00s)
  1487. --- PASS: TestHandler_ImagesPrune_AcceptsOptionalKeepLast/provided_keep_last (0.00s)
  1488. === RUN TestHandler_Images_ErrorMappingForServiceFailures
  1489. === RUN TestHandler_Images_ErrorMappingForServiceFailures/list_failure_maps_to_internal_server_error
  1490. === RUN TestHandler_Images_ErrorMappingForServiceFailures/prune_failure_maps_to_internal_server_error
  1491. --- PASS: TestHandler_Images_ErrorMappingForServiceFailures (0.00s)
  1492. --- PASS: TestHandler_Images_ErrorMappingForServiceFailures/list_failure_maps_to_internal_server_error (0.00s)
  1493. --- PASS: TestHandler_Images_ErrorMappingForServiceFailures/prune_failure_maps_to_internal_server_error (0.00s)
  1494. === RUN TestHandler_ImagesPrune_ValidationAndAvailability
  1495. === RUN TestHandler_ImagesPrune_ValidationAndAvailability/rejects_negative_keep_last
  1496. === RUN TestHandler_ImagesPrune_ValidationAndAvailability/returns_service_unavailable_when_image_service_missing
  1497. --- PASS: TestHandler_ImagesPrune_ValidationAndAvailability (0.00s)
  1498. --- PASS: TestHandler_ImagesPrune_ValidationAndAvailability/rejects_negative_keep_last (0.00s)
  1499. --- PASS: TestHandler_ImagesPrune_ValidationAndAvailability/returns_service_unavailable_when_image_service_missing (0.00s)
  1500. === RUN TestHandler_ImagesPrune_ScopeDefaults
  1501. === RUN TestHandler_ImagesPrune_ScopeDefaults/missing_scope_fields_defaults_to_both_true
  1502. === RUN TestHandler_ImagesPrune_ScopeDefaults/explicit_dangling_only
  1503. === RUN TestHandler_ImagesPrune_ScopeDefaults/explicit_registry_only
  1504. === RUN TestHandler_ImagesPrune_ScopeDefaults/both_scopes_false_returns_400
  1505. --- PASS: TestHandler_ImagesPrune_ScopeDefaults (0.00s)
  1506. --- PASS: TestHandler_ImagesPrune_ScopeDefaults/missing_scope_fields_defaults_to_both_true (0.00s)
  1507. --- PASS: TestHandler_ImagesPrune_ScopeDefaults/explicit_dangling_only (0.00s)
  1508. --- PASS: TestHandler_ImagesPrune_ScopeDefaults/explicit_registry_only (0.00s)
  1509. --- PASS: TestHandler_ImagesPrune_ScopeDefaults/both_scopes_false_returns_400 (0.00s)
  1510. === RUN TestHandler_Images_Authorization
  1511. === RUN TestHandler_Images_Authorization/images_list_requires_status:read
  1512. === RUN TestHandler_Images_Authorization/images_prune_requires_config:write
  1513. --- PASS: TestHandler_Images_Authorization (0.00s)
  1514. --- PASS: TestHandler_Images_Authorization/images_list_requires_status:read (0.00s)
  1515. --- PASS: TestHandler_Images_Authorization/images_prune_requires_config:write (0.00s)
  1516. === RUN TestHandler_TLSStatus_RequiresStatusReadScope
  1517. --- PASS: TestHandler_TLSStatus_RequiresStatusReadScope (0.00s)
  1518. === RUN TestHandler_TLSStatus_GETReturnsJSON
  1519. --- PASS: TestHandler_TLSStatus_GETReturnsJSON (0.00s)
  1520. === RUN TestHandler_TLSStatus_POSTReturns405
  1521. --- PASS: TestHandler_TLSStatus_POSTReturns405 (0.00s)
  1522. === RUN TestHandler_TrafficStatus
  1523. --- PASS: TestHandler_TrafficStatus (0.00s)
  1524. === RUN TestHandler_TrafficStatusRequiresStatusRead
  1525. --- PASS: TestHandler_TrafficStatusRequiresStatusRead (0.00s)
  1526. === RUN TestHandler_TrafficStatusUnavailableWithoutService
  1527. --- PASS: TestHandler_TrafficStatusUnavailableWithoutService (0.00s)
  1528. === RUN TestLocalAuthorityInjectsLeastPrivilegeScopes
  1529. --- PASS: TestLocalAuthorityInjectsLeastPrivilegeScopes (0.00s)
  1530. === RUN TestLocalAuthorityCanonicalAllowlist
  1531. === PAUSE TestLocalAuthorityCanonicalAllowlist
  1532. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths
  1533. === PAUSE TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths
  1534. === RUN TestLocalAuthorityRejectsNonAdminAndTraversalRequests
  1535. --- PASS: TestLocalAuthorityRejectsNonAdminAndTraversalRequests (0.00s)
  1536. === RUN TestAuthMiddleware_GlobalRateLimitHit
  1537. --- PASS: TestAuthMiddleware_GlobalRateLimitHit (0.00s)
  1538. === RUN TestAuthMiddleware_PerIPRateLimitHit
  1539. --- PASS: TestAuthMiddleware_PerIPRateLimitHit (0.00s)
  1540. === RUN TestAuthMiddleware_TrustedProxy
  1541. --- PASS: TestAuthMiddleware_TrustedProxy (0.00s)
  1542. === RUN TestAuthMiddleware_NoRateLimiting
  1543. --- PASS: TestAuthMiddleware_NoRateLimiting (0.00s)
  1544. === RUN TestAuthMiddleware_AuthDisabled
  1545. <U+001B>[90m2026-10-18T20:51:18Z<U+001B>[0m <U+001B>[31mERR<U+001B>[0m <U+001B>[1mauthentication disabled/misconfigured - denying admin API request<U+001B>[0m <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/admin/status <U+001B>[36mremote_addr=<U+001B>[0m192.168.1.100:12345
  1546. --- PASS: TestAuthMiddleware_AuthDisabled (0.00s)
  1547. === RUN TestAuthMiddleware_MissingAuthHeader
  1548. --- PASS: TestAuthMiddleware_MissingAuthHeader (0.00s)
  1549. === RUN TestAuthMiddleware_InvalidToken
  1550. <U+001B>[90m2026-10-18T20:51:18Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1minvalid admin token<U+001B>[0m <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"assert.AnError general error for testing"<U+001B>[0m<U+001B>[0m
  1551. --- PASS: TestAuthMiddleware_InvalidToken (0.00s)
  1552. === RUN TestAuthMiddleware_RejectsLongLivedToken
  1553. <U+001B>[90m2026-10-18T20:51:18Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mlong-lived token rejected on admin endpoint<U+001B>[0m <U+001B>[36mpath=<U+001B>[0m/admin/status <U+001B>[36msubject=<U+001B>[0madmin
  1554. --- PASS: TestAuthMiddleware_RejectsLongLivedToken (0.00s)
  1555. === RUN TestAuthMiddleware_AcceptsEphemeralToken
  1556. --- PASS: TestAuthMiddleware_AcceptsEphemeralToken (0.00s)
  1557. === RUN TestAuthMiddleware_MissingAdminScope
  1558. <U+001B>[90m2026-10-18T20:51:18Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mtoken missing admin scopes<U+001B>[0m <U+001B>[36msubject=<U+001B>[0muser1
  1559. --- PASS: TestAuthMiddleware_MissingAdminScope (0.00s)
  1560. === RUN TestAuthMiddleware_Success
  1561. --- PASS: TestAuthMiddleware_Success (0.00s)
  1562. === RUN TestAuthMiddleware_DirectToken_Rejected
  1563. --- PASS: TestAuthMiddleware_DirectToken_Rejected (0.00s)
  1564. === RUN TestRequireScope
  1565. === RUN TestRequireScope/wildcard_scope_grants_access
  1566. === RUN TestRequireScope/exact_scope_grants_access
  1567. === RUN TestRequireScope/wrong_resource_denies_access
  1568. === RUN TestRequireScope/wrong_action_denies_access
  1569. --- PASS: TestRequireScope (0.00s)
  1570. --- PASS: TestRequireScope/wildcard_scope_grants_access (0.00s)
  1571. --- PASS: TestRequireScope/exact_scope_grants_access (0.00s)
  1572. --- PASS: TestRequireScope/wrong_resource_denies_access (0.00s)
  1573. --- PASS: TestRequireScope/wrong_action_denies_access (0.00s)
  1574. === RUN TestHasAccess
  1575. --- PASS: TestHasAccess (0.00s)
  1576. === RUN TestHandler_ImagesPrune_ExposesPerCandidateVerdicts
  1577. --- PASS: TestHandler_ImagesPrune_ExposesPerCandidateVerdicts (0.00s)
  1578. === RUN TestHandler_VolumesPrune_ExposesPerCandidateVerdicts
  1579. --- PASS: TestHandler_VolumesPrune_ExposesPerCandidateVerdicts (0.00s)
  1580. === CONT TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths
  1581. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/status
  1582. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/reload
  1583. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/config
  1584. === CONT TestLocalAuthorityCanonicalAllowlist
  1585. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/status
  1586. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/tls/status
  1587. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/volumes/prune
  1588. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/images/prune
  1589. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/auth/verify
  1590. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/traffic/status
  1591. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/auth/tokens
  1592. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/config
  1593. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/auth/tokens
  1594. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/health
  1595. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/networks
  1596. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/appsX
  1597. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/secrets
  1598. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/volumes
  1599. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/secrets/blog.example.com
  1600. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/volumes/prune
  1601. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/secrets/blog.example.com
  1602. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/images
  1603. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/DELETE_/secrets/blog
  1604. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/images/prune
  1605. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/images/anything
  1606. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/reload
  1607. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/tags/repository/extra
  1608. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/logs/blog
  1609. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/tags/repository
  1610. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/backups/volumes/status/extra
  1611. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/logs
  1612. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/logs/blog/web
  1613. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/backups
  1614. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/backups/status
  1615. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/backups/shop
  1616. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/apps/blog/operations/by-key/key/extra
  1617. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/backups/shop
  1618. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/backups/volumes
  1619. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/backups/volumes
  1620. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/backups/volumes/status
  1621. === RUN TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/
  1622. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/backups/volumes/blog.example.com
  1623. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/backups/volumes/blog.example.com
  1624. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths (0.00s)
  1625. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/status (0.00s)
  1626. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/reload (0.00s)
  1627. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/config (0.00s)
  1628. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/volumes/prune (0.00s)
  1629. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/images/prune (0.00s)
  1630. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/auth/verify (0.00s)
  1631. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/auth/tokens (0.00s)
  1632. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/auth/tokens (0.00s)
  1633. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/health (0.00s)
  1634. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/appsX (0.00s)
  1635. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/secrets (0.00s)
  1636. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/secrets/blog.example.com (0.00s)
  1637. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/POST_/secrets/blog.example.com (0.00s)
  1638. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/DELETE_/secrets/blog (0.00s)
  1639. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/images/anything (0.00s)
  1640. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/tags/repository/extra (0.00s)
  1641. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/logs/blog (0.00s)
  1642. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/backups/volumes/status/extra (0.00s)
  1643. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/apps/blog/operations/by-key/key/extra (0.00s)
  1644. --- PASS: TestLocalAuthorityDeniesNearMissesAndNonCanonicalPaths/GET_/ (0.00s)
  1645. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/apps
  1646. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/apply
  1647. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/apps/blog
  1648. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/apps/blog/diff
  1649. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/deploy
  1650. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/restart
  1651. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/stop
  1652. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/start
  1653. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/remove
  1654. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/secrets/set
  1655. === RUN TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/secrets/delete
  1656. === RUN TestLocalAuthorityCanonicalAllowlist/GET_/apps/blog/operations/by-key/request-1
  1657. --- PASS: TestLocalAuthorityCanonicalAllowlist (0.00s)
  1658. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/status (0.00s)
  1659. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/tls/status (0.00s)
  1660. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/traffic/status (0.00s)
  1661. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/config (0.00s)
  1662. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/networks (0.00s)
  1663. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/volumes (0.00s)
  1664. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/volumes/prune (0.00s)
  1665. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/images (0.00s)
  1666. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/images/prune (0.00s)
  1667. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/reload (0.00s)
  1668. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/tags/repository (0.00s)
  1669. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/logs (0.00s)
  1670. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/logs/blog/web (0.00s)
  1671. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/backups (0.00s)
  1672. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/backups/status (0.00s)
  1673. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/backups/shop (0.00s)
  1674. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/backups/shop (0.00s)
  1675. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/backups/volumes (0.00s)
  1676. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/backups/volumes (0.00s)
  1677. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/backups/volumes/status (0.00s)
  1678. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/backups/volumes/blog.example.com (0.00s)
  1679. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/backups/volumes/blog.example.com (0.00s)
  1680. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/apps (0.00s)
  1681. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/apply (0.00s)
  1682. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/apps/blog (0.00s)
  1683. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/apps/blog/diff (0.00s)
  1684. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/deploy (0.00s)
  1685. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/restart (0.00s)
  1686. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/stop (0.00s)
  1687. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/start (0.00s)
  1688. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/remove (0.00s)
  1689. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/secrets/set (0.00s)
  1690. --- PASS: TestLocalAuthorityCanonicalAllowlist/POST_/apps/blog/secrets/delete (0.00s)
  1691. --- PASS: TestLocalAuthorityCanonicalAllowlist/GET_/apps/blog/operations/by-key/request-1 (0.00s)
  1692. PASS
  1693. ok github.com/bnema/gordon/internal/adapters/in/http/admin 1.106s
  1694. === RUN TestHandler_Password_AlwaysGone
  1695. --- PASS: TestHandler_Password_AlwaysGone (0.00s)
  1696. === RUN TestHandler_Token_Success
  1697. --- PASS: TestHandler_Token_Success (0.00s)
  1698. === RUN TestHandler_Token_MissingCredentials
  1699. --- PASS: TestHandler_Token_MissingCredentials (0.00s)
  1700. === RUN TestHandler_Token_AuthDisabled
  1701. --- PASS: TestHandler_Token_AuthDisabled (0.00s)
  1702. === RUN TestHandler_Token_InvalidCredentials
  1703. --- PASS: TestHandler_Token_InvalidCredentials (0.00s)
  1704. === RUN TestHandler_Token_InternalAuth
  1705. --- PASS: TestHandler_Token_InternalAuth (0.00s)
  1706. === RUN TestHandler_Token_TokenAuth
  1707. --- PASS: TestHandler_Token_TokenAuth (0.00s)
  1708. === RUN TestHandler_Token_TokenAuthScopeIntersection
  1709. --- PASS: TestHandler_Token_TokenAuthScopeIntersection (0.00s)
  1710. === RUN TestHandler_Token_TokenAuthScopeDenied
  1711. --- PASS: TestHandler_Token_TokenAuthScopeDenied (0.00s)
  1712. === RUN TestHandler_Token_PasswordAuthWithJWT
  1713. --- PASS: TestHandler_Token_PasswordAuthWithJWT (0.00s)
  1714. === RUN TestHandler_Token_MethodNotAllowed
  1715. === RUN TestHandler_Token_MethodNotAllowed/POST
  1716. === RUN TestHandler_Token_MethodNotAllowed/PUT
  1717. === RUN TestHandler_Token_MethodNotAllowed/DELETE
  1718. === RUN TestHandler_Token_MethodNotAllowed/PATCH
  1719. --- PASS: TestHandler_Token_MethodNotAllowed (0.00s)
  1720. --- PASS: TestHandler_Token_MethodNotAllowed/POST (0.00s)
  1721. --- PASS: TestHandler_Token_MethodNotAllowed/PUT (0.00s)
  1722. --- PASS: TestHandler_Token_MethodNotAllowed/DELETE (0.00s)
  1723. --- PASS: TestHandler_Token_MethodNotAllowed/PATCH (0.00s)
  1724. === RUN TestHandler_NotFound
  1725. === RUN TestHandler_NotFound//auth/unknown
  1726. === RUN TestHandler_NotFound//auth/
  1727. === RUN TestHandler_NotFound//auth
  1728. --- PASS: TestHandler_NotFound (0.00s)
  1729. --- PASS: TestHandler_NotFound//auth/unknown (0.00s)
  1730. --- PASS: TestHandler_NotFound//auth/ (0.00s)
  1731. --- PASS: TestHandler_NotFound//auth (0.00s)
  1732. === RUN TestParseRequestedScopes_MultipleScopeParams
  1733. --- PASS: TestParseRequestedScopes_MultipleScopeParams (0.00s)
  1734. === RUN TestParseRequestedScopes_InvalidScopeFiltered
  1735. === RUN TestParseRequestedScopes_InvalidScopeFiltered/invalid_format_is_skipped
  1736. === RUN TestParseRequestedScopes_InvalidScopeFiltered/missing_actions_is_skipped
  1737. === RUN TestParseRequestedScopes_InvalidScopeFiltered/all_invalid_returns_default
  1738. --- PASS: TestParseRequestedScopes_InvalidScopeFiltered (0.00s)
  1739. --- PASS: TestParseRequestedScopes_InvalidScopeFiltered/invalid_format_is_skipped (0.00s)
  1740. --- PASS: TestParseRequestedScopes_InvalidScopeFiltered/missing_actions_is_skipped (0.00s)
  1741. --- PASS: TestParseRequestedScopes_InvalidScopeFiltered/all_invalid_returns_default (0.00s)
  1742. === RUN TestParseRequestedScopes_NoScopeReturnsDefault
  1743. --- PASS: TestParseRequestedScopes_NoScopeReturnsDefault (0.00s)
  1744. === RUN TestIsLocalhostRequest
  1745. === RUN TestIsLocalhostRequest/127.0.0.1_is_localhost
  1746. === RUN TestIsLocalhostRequest/127.0.0.2_is_localhost
  1747. === RUN TestIsLocalhostRequest/::1_is_localhost
  1748. === RUN TestIsLocalhostRequest/192.168.1.1_is_not_localhost
  1749. === RUN TestIsLocalhostRequest/10.0.0.1_is_not_localhost
  1750. === RUN TestIsLocalhostRequest/public_IP_is_not_localhost
  1751. --- PASS: TestIsLocalhostRequest (0.00s)
  1752. --- PASS: TestIsLocalhostRequest/127.0.0.1_is_localhost (0.00s)
  1753. --- PASS: TestIsLocalhostRequest/127.0.0.2_is_localhost (0.00s)
  1754. --- PASS: TestIsLocalhostRequest/::1_is_localhost (0.00s)
  1755. --- PASS: TestIsLocalhostRequest/192.168.1.1_is_not_localhost (0.00s)
  1756. --- PASS: TestIsLocalhostRequest/10.0.0.1_is_not_localhost (0.00s)
  1757. --- PASS: TestIsLocalhostRequest/public_IP_is_not_localhost (0.00s)
  1758. === RUN TestHandler_isInternalAuth
  1759. === RUN TestHandler_isInternalAuth/correct_credentials
  1760. === RUN TestHandler_isInternalAuth/incorrect_username
  1761. === RUN TestHandler_isInternalAuth/incorrect_password
  1762. === RUN TestHandler_isInternalAuth/empty_internal_auth_credentials
  1763. === RUN TestHandler_isInternalAuth/partially_empty_internal_auth_-_empty_password
  1764. === RUN TestHandler_isInternalAuth/partially_empty_internal_auth_-_empty_username
  1765. --- PASS: TestHandler_isInternalAuth (0.00s)
  1766. --- PASS: TestHandler_isInternalAuth/correct_credentials (0.00s)
  1767. --- PASS: TestHandler_isInternalAuth/incorrect_username (0.00s)
  1768. --- PASS: TestHandler_isInternalAuth/incorrect_password (0.00s)
  1769. --- PASS: TestHandler_isInternalAuth/empty_internal_auth_credentials (0.00s)
  1770. --- PASS: TestHandler_isInternalAuth/partially_empty_internal_auth_-_empty_password (0.00s)
  1771. --- PASS: TestHandler_isInternalAuth/partially_empty_internal_auth_-_empty_username (0.00s)
  1772. === RUN TestHandler_Token_EphemeralTokenRejected
  1773. --- PASS: TestHandler_Token_EphemeralTokenRejected (0.00s)
  1774. === RUN TestHandler_Token_LongLivedTokenAccepted
  1775. --- PASS: TestHandler_Token_LongLivedTokenAccepted (0.00s)
  1776. === RUN TestHandler_Token_AdminScopeSuccess
  1777. --- PASS: TestHandler_Token_AdminScopeSuccess (0.00s)
  1778. === RUN TestHandler_Token_AdminScopeDeniedWithRegistryOnly
  1779. --- PASS: TestHandler_Token_AdminScopeDeniedWithRegistryOnly (0.00s)
  1780. === RUN TestHandler_Token_AdminScopeWildcard
  1781. --- PASS: TestHandler_Token_AdminScopeWildcard (0.00s)
  1782. PASS
  1783. ok github.com/bnema/gordon/internal/adapters/in/http/auth 1.025s
  1784. === RUN TestIsLocalhostRequest
  1785. === RUN TestIsLocalhostRequest/ipv4_loopback
  1786. === RUN TestIsLocalhostRequest/ipv4_loopback_other
  1787. === RUN TestIsLocalhostRequest/ipv6_loopback_bracketed
  1788. === RUN TestIsLocalhostRequest/external_ipv4
  1789. === RUN TestIsLocalhostRequest/external_ipv6
  1790. === RUN TestIsLocalhostRequest/empty
  1791. --- PASS: TestIsLocalhostRequest (0.00s)
  1792. --- PASS: TestIsLocalhostRequest/ipv4_loopback (0.00s)
  1793. --- PASS: TestIsLocalhostRequest/ipv4_loopback_other (0.00s)
  1794. --- PASS: TestIsLocalhostRequest/ipv6_loopback_bracketed (0.00s)
  1795. --- PASS: TestIsLocalhostRequest/external_ipv4 (0.00s)
  1796. --- PASS: TestIsLocalhostRequest/external_ipv6 (0.00s)
  1797. --- PASS: TestIsLocalhostRequest/empty (0.00s)
  1798. PASS
  1799. ok github.com/bnema/gordon/internal/adapters/in/http/httphelper 1.009s
  1800. === RUN TestAccessLogger_EmitsEntryPerRequest
  1801. --- PASS: TestAccessLogger_EmitsEntryPerRequest (0.00s)
  1802. === RUN TestAccessLogger_RedactsSensitiveQueryParams
  1803. --- PASS: TestAccessLogger_RedactsSensitiveQueryParams (0.00s)
  1804. === RUN TestAccessLogger_RedactsSensitiveReferers
  1805. === RUN TestAccessLogger_RedactsSensitiveReferers/query_params
  1806. === RUN TestAccessLogger_RedactsSensitiveReferers/fragment_removed
  1807. === RUN TestAccessLogger_RedactsSensitiveReferers/userinfo_removed
  1808. === RUN TestAccessLogger_RedactsSensitiveReferers/malformed_query_key_redacted_conservatively
  1809. --- PASS: TestAccessLogger_RedactsSensitiveReferers (0.00s)
  1810. --- PASS: TestAccessLogger_RedactsSensitiveReferers/query_params (0.00s)
  1811. --- PASS: TestAccessLogger_RedactsSensitiveReferers/fragment_removed (0.00s)
  1812. --- PASS: TestAccessLogger_RedactsSensitiveReferers/userinfo_removed (0.00s)
  1813. --- PASS: TestAccessLogger_RedactsSensitiveReferers/malformed_query_key_redacted_conservatively (0.00s)
  1814. === RUN TestAccessLogger_RequestIDReused
  1815. --- PASS: TestAccessLogger_RequestIDReused (0.00s)
  1816. === RUN TestAccessLogger_ExcludeHealthCheckUA
  1817. --- PASS: TestAccessLogger_ExcludeHealthCheckUA (0.00s)
  1818. === RUN TestAccessLogger_ExcludeLoopbackIP
  1819. --- PASS: TestAccessLogger_ExcludeLoopbackIP (0.00s)
  1820. === RUN TestAccessLogger_NoExcludeWhenDisabled
  1821. --- PASS: TestAccessLogger_NoExcludeWhenDisabled (0.00s)
  1822. === RUN TestAccessLogger_WriteFailureDoesNotAffectResponse
  1823. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1maccess log write failed<U+001B>[0m <U+001B>[36merror=<U+001B>[0m<U+001B>[31m<U+001B>[1m"disk full"<U+001B>[0m<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m192.0.2.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/ <U+001B>[36mrequest_id=<U+001B>[0m03638847a1906a8510b2da9f39e3a8e8 <U+001B>[36mstatus=<U+001B>[0m200
  1824. --- PASS: TestAccessLogger_WriteFailureDoesNotAffectResponse (0.00s)
  1825. === RUN TestAccessLogger_PanicRecoveryChain_Captures500
  1826. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[31mERR<U+001B>[0m <U+001B>[1mpanic recovered<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mhost=<U+001B>[0mexample.com <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpanic=<U+001B>[0m"test panic" <U+001B>[36mpath=<U+001B>[0m/crash
  1827. --- PASS: TestAccessLogger_PanicRecoveryChain_Captures500 (0.00s)
  1828. === RUN TestRegistryAuthV2_LocalhostBypassRequiresInternalAuth
  1829. --- PASS: TestRegistryAuthV2_LocalhostBypassRequiresInternalAuth (0.00s)
  1830. === RUN TestRegistryAuthV2_LocalhostWrongInternalAuthFallsBack
  1831. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1munauthorized registry access attempt<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m127.0.0.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/
  1832. --- PASS: TestRegistryAuthV2_LocalhostWrongInternalAuthFallsBack (0.00s)
  1833. === RUN TestRegistryAuthV2_NonLocalhostIgnoresInternalAuth
  1834. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mregistry auth over insecure HTTP connection<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m192.168.1.10 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/
  1835. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1munauthorized registry access attempt<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m192.168.1.10 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/
  1836. --- PASS: TestRegistryAuthV2_NonLocalhostIgnoresInternalAuth (0.00s)
  1837. === RUN TestCheckScopeAccess_ActionMapping
  1838. === RUN TestCheckScopeAccess_ActionMapping/GET_maps_to_pull
  1839. === RUN TestCheckScopeAccess_ActionMapping/HEAD_maps_to_pull
  1840. === RUN TestCheckScopeAccess_ActionMapping/PUT_maps_to_push
  1841. === RUN TestCheckScopeAccess_ActionMapping/POST_maps_to_push
  1842. === RUN TestCheckScopeAccess_ActionMapping/PATCH_maps_to_push
  1843. === RUN TestCheckScopeAccess_ActionMapping/DELETE_maps_to_push
  1844. === RUN TestCheckScopeAccess_ActionMapping/OPTIONS_defaults_to_pull
  1845. --- PASS: TestCheckScopeAccess_ActionMapping (0.00s)
  1846. --- PASS: TestCheckScopeAccess_ActionMapping/GET_maps_to_pull (0.00s)
  1847. --- PASS: TestCheckScopeAccess_ActionMapping/HEAD_maps_to_pull (0.00s)
  1848. --- PASS: TestCheckScopeAccess_ActionMapping/PUT_maps_to_push (0.00s)
  1849. --- PASS: TestCheckScopeAccess_ActionMapping/POST_maps_to_push (0.00s)
  1850. --- PASS: TestCheckScopeAccess_ActionMapping/PATCH_maps_to_push (0.00s)
  1851. --- PASS: TestCheckScopeAccess_ActionMapping/DELETE_maps_to_push (0.00s)
  1852. --- PASS: TestCheckScopeAccess_ActionMapping/OPTIONS_defaults_to_pull (0.00s)
  1853. === RUN TestCheckScopeAccess_RepoNameExtraction
  1854. === RUN TestCheckScopeAccess_RepoNameExtraction/simple_repo_with_manifests
  1855. === RUN TestCheckScopeAccess_RepoNameExtraction/simple_repo_with_blobs
  1856. === RUN TestCheckScopeAccess_RepoNameExtraction/nested_repo_with_manifests
  1857. === RUN TestCheckScopeAccess_RepoNameExtraction/deeply_nested_repo
  1858. === RUN TestCheckScopeAccess_RepoNameExtraction/repo_with_tags_list
  1859. === RUN TestCheckScopeAccess_RepoNameExtraction/wrong_repo_name
  1860. --- PASS: TestCheckScopeAccess_RepoNameExtraction (0.00s)
  1861. --- PASS: TestCheckScopeAccess_RepoNameExtraction/simple_repo_with_manifests (0.00s)
  1862. --- PASS: TestCheckScopeAccess_RepoNameExtraction/simple_repo_with_blobs (0.00s)
  1863. --- PASS: TestCheckScopeAccess_RepoNameExtraction/nested_repo_with_manifests (0.00s)
  1864. --- PASS: TestCheckScopeAccess_RepoNameExtraction/deeply_nested_repo (0.00s)
  1865. --- PASS: TestCheckScopeAccess_RepoNameExtraction/repo_with_tags_list (0.00s)
  1866. --- PASS: TestCheckScopeAccess_RepoNameExtraction/wrong_repo_name (0.00s)
  1867. === RUN TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository
  1868. === RUN TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/unauthorized_repo_behind_reserved_first_component
  1869. === RUN TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/authorized_prefix_cannot_reach_a_nested_repository
  1870. === RUN TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/pull_token_cannot_PUT_a_reserved-looking_repository
  1871. === RUN TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/exact_nested_repository_is_authorized
  1872. --- PASS: TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository (0.00s)
  1873. --- PASS: TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/unauthorized_repo_behind_reserved_first_component (0.00s)
  1874. --- PASS: TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/authorized_prefix_cannot_reach_a_nested_repository (0.00s)
  1875. --- PASS: TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/pull_token_cannot_PUT_a_reserved-looking_repository (0.00s)
  1876. --- PASS: TestCheckScopeAccess_ReservedComponentsCannotRedirectRepository/exact_nested_repository_is_authorized (0.00s)
  1877. === RUN TestCheckScopeAccess_WildcardMatching
  1878. === RUN TestCheckScopeAccess_WildcardMatching/wildcard_repo_matches_any
  1879. === RUN TestCheckScopeAccess_WildcardMatching/org_wildcard_matches_repo_in_org
  1880. === RUN TestCheckScopeAccess_WildcardMatching/org_wildcard_does_not_match_other_org
  1881. === RUN TestCheckScopeAccess_WildcardMatching/wildcard_action_grants_push
  1882. --- PASS: TestCheckScopeAccess_WildcardMatching (0.00s)
  1883. --- PASS: TestCheckScopeAccess_WildcardMatching/wildcard_repo_matches_any (0.00s)
  1884. --- PASS: TestCheckScopeAccess_WildcardMatching/org_wildcard_matches_repo_in_org (0.00s)
  1885. --- PASS: TestCheckScopeAccess_WildcardMatching/org_wildcard_does_not_match_other_org (0.00s)
  1886. --- PASS: TestCheckScopeAccess_WildcardMatching/wildcard_action_grants_push (0.00s)
  1887. === RUN TestCheckScopeAccess_SpecialRoutes
  1888. === RUN TestCheckScopeAccess_SpecialRoutes/v2_root_is_allowed
  1889. === RUN TestCheckScopeAccess_SpecialRoutes/non-v2_path_is_denied
  1890. === RUN TestCheckScopeAccess_SpecialRoutes/catalog_path_is_handled
  1891. --- PASS: TestCheckScopeAccess_SpecialRoutes (0.00s)
  1892. --- PASS: TestCheckScopeAccess_SpecialRoutes/v2_root_is_allowed (0.00s)
  1893. --- PASS: TestCheckScopeAccess_SpecialRoutes/non-v2_path_is_denied (0.00s)
  1894. --- PASS: TestCheckScopeAccess_SpecialRoutes/catalog_path_is_handled (0.00s)
  1895. === RUN TestRegistryAuthV2_RejectsLongLivedToken
  1896. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mregistry auth over insecure HTTP connection<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m10.0.0.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest
  1897. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mlong-lived token rejected on registry endpoint<U+001B>[0m <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest <U+001B>[36msubject=<U+001B>[0madmin
  1898. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1munauthorized registry access attempt<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m10.0.0.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest
  1899. --- PASS: TestRegistryAuthV2_RejectsLongLivedToken (0.00s)
  1900. === RUN TestRegistryAuthV2_AcceptsEphemeralToken
  1901. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mregistry auth over insecure HTTP connection<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m10.0.0.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest
  1902. --- PASS: TestRegistryAuthV2_AcceptsEphemeralToken (0.00s)
  1903. === RUN TestRegistryAuthV2_RejectsLongLivedTokenAsPassword
  1904. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mregistry auth over insecure HTTP connection<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m10.0.0.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest
  1905. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mlong-lived token rejected on registry endpoint<U+001B>[0m <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest <U+001B>[36msubject=<U+001B>[0mci-user
  1906. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1munauthorized registry access attempt<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m10.0.0.1 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET <U+001B>[36mpath=<U+001B>[0m/v2/myrepo/manifests/latest
  1907. --- PASS: TestRegistryAuthV2_RejectsLongLivedTokenAsPassword (0.00s)
  1908. === RUN TestCheckScopeAccess_DenialCases
  1909. === RUN TestCheckScopeAccess_DenialCases/pull_scope_denies_push
  1910. === RUN TestCheckScopeAccess_DenialCases/wrong_repo_denies_access
  1911. === RUN TestCheckScopeAccess_DenialCases/empty_scopes_denies_access
  1912. === RUN TestCheckScopeAccess_DenialCases/invalid_scope_format_is_skipped
  1913. --- PASS: TestCheckScopeAccess_DenialCases (0.00s)
  1914. --- PASS: TestCheckScopeAccess_DenialCases/pull_scope_denies_push (0.00s)
  1915. --- PASS: TestCheckScopeAccess_DenialCases/wrong_repo_denies_access (0.00s)
  1916. --- PASS: TestCheckScopeAccess_DenialCases/empty_scopes_denies_access (0.00s)
  1917. --- PASS: TestCheckScopeAccess_DenialCases/invalid_scope_format_is_skipped (0.00s)
  1918. === RUN TestRegistryCIDRAllowlist
  1919. === RUN TestRegistryCIDRAllowlist/no_CIDRs_configured_passes_through
  1920. === RUN TestRegistryCIDRAllowlist/empty_CIDRs_passes_through
  1921. === RUN TestRegistryCIDRAllowlist/allowed_IP_returns_200
  1922. === RUN TestRegistryCIDRAllowlist/denied_IP_returns_403
  1923. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mregistry access denied by CIDR allowlist<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m203.0.113.50 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET
  1924. === RUN TestRegistryCIDRAllowlist/localhost_always_allowed_even_when_not_in_allowlist
  1925. === RUN TestRegistryCIDRAllowlist/127.x.x.x_always_allowed
  1926. === RUN TestRegistryCIDRAllowlist/IPv6_localhost_always_allowed
  1927. === RUN TestRegistryCIDRAllowlist/trusted_proxy_forwards_allowed_client_IP
  1928. === RUN TestRegistryCIDRAllowlist/trusted_proxy_forwards_denied_client_IP
  1929. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mregistry access denied by CIDR allowlist<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m203.0.113.50 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET
  1930. --- PASS: TestRegistryCIDRAllowlist (0.00s)
  1931. --- PASS: TestRegistryCIDRAllowlist/no_CIDRs_configured_passes_through (0.00s)
  1932. --- PASS: TestRegistryCIDRAllowlist/empty_CIDRs_passes_through (0.00s)
  1933. --- PASS: TestRegistryCIDRAllowlist/allowed_IP_returns_200 (0.00s)
  1934. --- PASS: TestRegistryCIDRAllowlist/denied_IP_returns_403 (0.00s)
  1935. --- PASS: TestRegistryCIDRAllowlist/localhost_always_allowed_even_when_not_in_allowlist (0.00s)
  1936. --- PASS: TestRegistryCIDRAllowlist/127.x.x.x_always_allowed (0.00s)
  1937. --- PASS: TestRegistryCIDRAllowlist/IPv6_localhost_always_allowed (0.00s)
  1938. --- PASS: TestRegistryCIDRAllowlist/trusted_proxy_forwards_allowed_client_IP (0.00s)
  1939. --- PASS: TestRegistryCIDRAllowlist/trusted_proxy_forwards_denied_client_IP (0.00s)
  1940. === RUN TestHTTPSRedirect_NoPortHost_OmitsTLSPort
  1941. --- PASS: TestHTTPSRedirect_NoPortHost_OmitsTLSPort (0.00s)
  1942. === RUN TestHTTPSRedirect_HTTPListenerPort_MapsToTLSPort
  1943. --- PASS: TestHTTPSRedirect_HTTPListenerPort_MapsToTLSPort (0.00s)
  1944. === RUN TestHTTPSRedirect_UnknownExplicitPort_IsPreserved
  1945. --- PASS: TestHTTPSRedirect_UnknownExplicitPort_IsPreserved (0.00s)
  1946. === RUN TestHTTPSRedirect_TrailingDotHostRedirectsToCanonicalHost
  1947. --- PASS: TestHTTPSRedirect_TrailingDotHostRedirectsToCanonicalHost (0.00s)
  1948. === RUN TestHTTPSRedirect_RejectsInvalidHost
  1949. === RUN TestHTTPSRedirect_RejectsInvalidHost/invalid_port
  1950. === RUN TestHTTPSRedirect_RejectsInvalidHost/localhost
  1951. === RUN TestHTTPSRedirect_RejectsInvalidHost/ipv6
  1952. === RUN TestHTTPSRedirect_RejectsInvalidHost/unconfigured_public_host
  1953. --- PASS: TestHTTPSRedirect_RejectsInvalidHost (0.00s)
  1954. --- PASS: TestHTTPSRedirect_RejectsInvalidHost/invalid_port (0.00s)
  1955. --- PASS: TestHTTPSRedirect_RejectsInvalidHost/localhost (0.00s)
  1956. --- PASS: TestHTTPSRedirect_RejectsInvalidHost/ipv6 (0.00s)
  1957. --- PASS: TestHTTPSRedirect_RejectsInvalidHost/unconfigured_public_host (0.00s)
  1958. === RUN TestHTTPSRedirect_TLSAlwaysNeverServesPlaintext
  1959. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mplaintext refused: host requires TLS but no HTTPS endpoint is configured<U+001B>[0m <U+001B>[36mhost=<U+001B>[0msecure.example.com
  1960. --- PASS: TestHTTPSRedirect_TLSAlwaysNeverServesPlaintext (0.00s)
  1961. === RUN TestHTTPSRedirect_TLSAlwaysIgnoresDisabledRedirectConfig
  1962. --- PASS: TestHTTPSRedirect_TLSAlwaysIgnoresDisabledRedirectConfig (0.00s)
  1963. === RUN TestHTTPSRedirect_IneligibleKnownHostPassesThrough
  1964. --- PASS: TestHTTPSRedirect_IneligibleKnownHostPassesThrough (0.00s)
  1965. === RUN TestProxyCIDRAllowlist
  1966. === RUN TestProxyCIDRAllowlist/no_CIDRs_configured_passes_through
  1967. === RUN TestProxyCIDRAllowlist/allowed_IP_gets_redirect
  1968. === RUN TestProxyCIDRAllowlist/blocked_IP_gets_403
  1969. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mproxy origin access denied by CIDR allowlist<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m203.0.113.50 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET
  1970. === RUN TestProxyCIDRAllowlist/localhost_always_allowed
  1971. === RUN TestProxyCIDRAllowlist/ignores_XFF_(uses_RemoteAddr_only)
  1972. <U+001B>[90m2026-10-18T20:51:19Z<U+001B>[0m <U+001B>[33mWRN<U+001B>[0m <U+001B>[1mproxy origin access denied by CIDR allowlist<U+001B>[0m <U+001B>[36madapter=<U+001B>[0mhttp <U+001B>[36mclient_ip=<U+001B>[0m203.0.113.50 <U+001B>[36mlayer=<U+001B>[0madapter <U+001B>[36mmethod=<U+001B>[0mGET
  1973. --- PASS: TestProxyCIDRAllowlist (0.00s)
  1974. --- PASS: TestProxyCIDRAllowlist/no_CIDRs_configured_passes_through (0.00s)
  1975. --- PASS: TestProxyCIDRAllowlist/allowed_IP_gets_redirect (0.00s)
  1976. --- PASS: TestProxyCIDRAllowlist/blocked_IP_gets_403 (0.00s)
  1977. --- PASS: TestProxyCIDRAllowlist/localhost_always_allowed (0.00s)
  1978. --- PASS: TestProxyCIDRAllowlist/ignores_XFF_(uses_RemoteAddr_only) (0.00s)
  1979. === RUN TestGetClientIP
  1980. === RUN TestGetClientIP/from_RemoteAddr_with_port
  1981. === RUN TestGetClientIP/from_RemoteAddr_without_port

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close