main bac21c6

Test success 1m 55s

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

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