main bac21c6

Test success 2m 14s

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

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