ci-split-host
Squashed from ci-split-host into main.
3 files changed,
+207
−28
.amadan/test-gate.sh+3 −3.amadan/test-weights.sh+45 −15.amadan/test-weights.tsv+159 −10
CI passed — run details
CI log
=== gate ===
.amadan/test-gate.sh
=== launchctx (0 s)
ok amadan.net/carlos/platform.git/launchctx 0.011s
? amadan.net/carlos/platform.git/launchctx/controlname [no test files]
? amadan.net/carlos/platform.git/launchctx/wireid [no test files]
=== vet (19 s)
=== gofmt (0 s)
gofmt -l .: clean
=== rest (79 s)
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 5.462s
ok github.com/carlosframework/platform/cmd/moveprobe 12.108s
ok github.com/carlosframework/platform/cmd/zddprobe 0.796s
ok github.com/carlosframework/platform/internal/activator 64.998s
ok github.com/carlosframework/platform/internal/agentsock 0.042s
ok github.com/carlosframework/platform/internal/alerting 0.014s
ok github.com/carlosframework/platform/internal/analytics 0.052s
ok github.com/carlosframework/platform/internal/appconfig 2.979s
ok github.com/carlosframework/platform/internal/apperr 0.141s
ok github.com/carlosframework/platform/internal/applog 0.365s
ok github.com/carlosframework/platform/internal/assetcache 0.127s
ok github.com/carlosframework/platform/internal/awsinv 0.009s
ok github.com/carlosframework/platform/internal/boxchoice 0.007s
ok github.com/carlosframework/platform/internal/boxid 0.987s
? github.com/carlosframework/platform/internal/boxid/boxidtest [no test files]
? github.com/carlosframework/platform/internal/boxid/internal/signtest [no test files]
ok github.com/carlosframework/platform/internal/boxvolumes 0.025s
ok github.com/carlosframework/platform/internal/caps 0.034s
ok github.com/carlosframework/platform/internal/certwarm 0.007s
ok github.com/carlosframework/platform/internal/cgroup 0.903s
ok github.com/carlosframework/platform/internal/changelog 0.718s
ok github.com/carlosframework/platform/internal/claimactivation 1.494s
ok github.com/carlosframework/platform/internal/clamd 0.063s
? github.com/carlosframework/platform/internal/cliflag [no test files]
? github.com/carlosframework/platform/internal/controlname [no test files]
? github.com/carlosframework/platform/internal/controlsock [no test files]
ok github.com/carlosframework/platform/internal/dbdoor 8.788s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.017s
ok github.com/carlosframework/platform/internal/dbquery 0.011s
ok github.com/carlosframework/platform/internal/dbreads 2.189s
? github.com/carlosframework/platform/internal/dbreads/dbreadstest [no test files]
ok github.com/carlosframework/platform/internal/dbverify 0.011s
ok github.com/carlosframework/platform/internal/dnsrec 0.009s
ok github.com/carlosframework/platform/internal/docsite 0.022s
ok github.com/carlosframework/platform/internal/domains 2.917s
ok github.com/carlosframework/platform/internal/doorkey 0.008s
ok github.com/carlosframework/platform/internal/economics 0.004s
ok github.com/carlosframework/platform/internal/edge 50.788s
? github.com/carlosframework/platform/internal/edgeproof [no test files]
ok github.com/carlosframework/platform/internal/edgesfile 0.016s
ok github.com/carlosframework/platform/internal/fleetapi 0.160s
ok github.com/carlosframework/platform/internal/gate 1.958s
ok github.com/carlosframework/platform/internal/genselect 0.019s
ok github.com/carlosframework/platform/internal/geo 0.014s
ok github.com/carlosframework/platform/internal/geoip 0.035s
ok github.com/carlosframework/platform/internal/historyreadback 0.228s
ok github.com/carlosframework/platform/internal/hostactors 7.783s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.004s
ok github.com/carlosframework/platform/internal/hostbox 3.516s
ok github.com/carlosframework/platform/internal/hostclaim 0.856s
ok github.com/carlosframework/platform/internal/hostenv 0.006s
ok github.com/carlosframework/platform/internal/hostevidence 0.008s
ok github.com/carlosframework/platform/internal/hostexec 7.969s
ok github.com/carlosframework/platform/internal/hostfence 0.034s
ok github.com/carlosframework/platform/internal/hostfiles 11.748s
ok github.com/carlosframework/platform/internal/hostfloor 0.015s
ok github.com/carlosframework/platform/internal/hostguard 1.068s
ok github.com/carlosframework/platform/internal/hostops 2.274s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.012s
ok github.com/carlosframework/platform/internal/hostquarantine 0.012s
ok github.com/carlosframework/platform/internal/hostrelocate 0.727s
ok github.com/carlosframework/platform/internal/hostresolve 0.207s
ok github.com/carlosframework/platform/internal/hostwrite 0.014s
ok github.com/carlosframework/platform/internal/infraview 0.012s
ok github.com/carlosframework/platform/internal/instancectl 5.328s
ok github.com/carlosframework/platform/internal/instanceexec 2.828s
ok github.com/carlosframework/platform/internal/instancefs 0.008s
ok github.com/carlosframework/platform/internal/instancekey 0.003s
ok github.com/carlosframework/platform/internal/instanceupdates 0.015s
ok github.com/carlosframework/platform/internal/layout 2.168s
ok github.com/carlosframework/platform/internal/lbhealth 0.002s
ok github.com/carlosframework/platform/internal/lease 10.232s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.553s
ok github.com/carlosframework/platform/internal/ledger 0.011s
ok github.com/carlosframework/platform/internal/mail 0.243s
ok github.com/carlosframework/platform/internal/maintenance 0.101s
ok github.com/carlosframework/platform/internal/maintenanceexec 6.909s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.087s
ok github.com/carlosframework/platform/internal/metrics 0.014s
ok github.com/carlosframework/platform/internal/moves 31.863s
ok github.com/carlosframework/platform/internal/moves/archive 1.051s
ok github.com/carlosframework/platform/internal/objstore 0.248s
ok github.com/carlosframework/platform/internal/ops 0.281s
ok github.com/carlosframework/platform/internal/park 0.281s
ok github.com/carlosframework/platform/internal/plans 0.006s
ok github.com/carlosframework/platform/internal/privatefile 0.005s
ok github.com/carlosframework/platform/internal/provision 50.852s
ok github.com/carlosframework/platform/internal/publicrelease 0.008s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 7.785s
ok github.com/carlosframework/platform/internal/relay 7.267s
ok github.com/carlosframework/platform/internal/release 33.501s
ok github.com/carlosframework/platform/internal/rollout 4.607s
ok github.com/carlosframework/platform/internal/rolloutwords 0.004s
ok github.com/carlosframework/platform/internal/rootaws 0.011s
ok github.com/carlosframework/platform/internal/rootparticipation 0.063s
ok github.com/carlosframework/platform/internal/rootstate 0.029s
ok github.com/carlosframework/platform/internal/runs 0.543s
ok github.com/carlosframework/platform/internal/s3compat 0.011s
ok github.com/carlosframework/platform/internal/safefile 0.010s
ok github.com/carlosframework/platform/internal/schedule 3.073s
ok github.com/carlosframework/platform/internal/seeds 0.026s
ok github.com/carlosframework/platform/internal/sim/engines 4.392s
ok github.com/carlosframework/platform/internal/sim/hostlife 27.203s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 5.297s
ok github.com/carlosframework/platform/internal/status 0.095s
ok github.com/carlosframework/platform/internal/steering 0.008s
ok github.com/carlosframework/platform/internal/stopevidence 0.203s
ok github.com/carlosframework/platform/internal/svcrole 0.003s
ok github.com/carlosframework/platform/internal/telemetry 0.014s
ok github.com/carlosframework/platform/internal/termfence 0.006s
ok github.com/carlosframework/platform/internal/tunnelclient 0.007s
ok github.com/carlosframework/platform/internal/unixdial 0.003s
ok github.com/carlosframework/platform/internal/updatewords 0.005s
ok github.com/carlosframework/platform/internal/usage 0.007s
ok github.com/carlosframework/platform/internal/version 0.004s
ok github.com/carlosframework/platform/internal/vet 1.681s
=== internal_console@0 (80 s)
ok github.com/carlosframework/platform/internal/console 77.582s
=== internal_console@1 (70 s)
ok github.com/carlosframework/platform/internal/console 65.231s
=== internal_console@2 (61 s)
ok github.com/carlosframework/platform/internal/console 57.496s
=== internal_console@3 (55 s)
ok github.com/carlosframework/platform/internal/console 52.290s
=== internal_console@4 (58 s)
ok github.com/carlosframework/platform/internal/console 55.132s
=== internal_console@5 (59 s)
ok github.com/carlosframework/platform/internal/console 55.354s
=== internal_console@6 (60 s)
ok github.com/carlosframework/platform/internal/console 57.034s
=== internal_console@7 (63 s)
ok github.com/carlosframework/platform/internal/console 59.889s
=== internal_host@0 (67 s)
ok github.com/carlosframework/platform/internal/host 64.450s
=== internal_host@1 (35 s)
ok github.com/carlosframework/platform/internal/host 32.724s
=== internal_host@2 (36 s)
ok github.com/carlosframework/platform/internal/host 33.548s
=== internal_host@3 (39 s)
ok github.com/carlosframework/platform/internal/host 36.730s
=== root@0 (72 s)
ok github.com/carlosframework/platform 69.651s
=== root@1 (52 s)
ok github.com/carlosframework/platform 49.464s
=== root@2 (63 s)
ok github.com/carlosframework/platform 60.677s
=== root@3 (59 s)
ok github.com/carlosframework/platform 56.994s
=== root@4 (65 s)
ok github.com/carlosframework/platform 62.409s
=== cross ===
--- shard 0 of 5 ---
cross-compiling darwin/arm64
--- shard 1 of 5 ---
cross-compiling darwin/amd64
--- shard 2 of 5 ---
cross-compiling linux/arm64
linux/arm64 carlos binary: 50659490 bytes (ceiling 52000000)
--- shard 3 of 5 ---
cross-compiling windows/amd64
--- shard 4 of 5 ---
cross-compiling windows/arm64
=== minio-contract ===
minio contract: arm64, minio RELEASE.2025-09-07T16-13-09Z, mc RELEASE.2025-08-13T08-35-41Z
minio: cached, digest verified
mc: cached, digest verified
minio healthy on 127.0.0.1:20999
Added `local` successfully.
Bucket created successfully `local/contract-bucket`.
Bucket created successfully `local/denied-bucket`.
Created policy `contract-only` successfully.
Added user `scopeduser` successfully.
Attached Policies: [contract-only]
To User: scopeduser
buckets and scoped user ready
=== RUN TestDeliveredContractMinio
=== RUN TestDeliveredContractMinio/put
=== RUN TestDeliveredContractMinio/get_round-trips_the_body
=== RUN TestDeliveredContractMinio/list_shows_the_key
=== RUN TestDeliveredContractMinio/head_and_list_agree_on_the_version
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_its_own_object
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/not_by_PutObjectTagging
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/and_not_by_x-amz-tagging_on_upload
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CreateMultipartUpload
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CopyObject_with_a_REPLACE_tagging_directive
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/but_multipart_itself_is_allowed
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_copy_itself_is_allowed
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/a_POST-policy_forged_tag_with_a_matching_version_is_still_not_a_verdict
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_an_ordinary_tagged-with-something-else_upload_is_allowed
=== RUN TestDeliveredContractMinio/delete_removes_it
=== RUN TestDeliveredContractMinio/cross-bucket_denial
--- PASS: TestDeliveredContractMinio (0.02s)
--- PASS: TestDeliveredContractMinio/put (0.00s)
--- PASS: TestDeliveredContractMinio/get_round-trips_the_body (0.00s)
--- PASS: TestDeliveredContractMinio/list_shows_the_key (0.00s)
--- PASS: TestDeliveredContractMinio/head_and_list_agree_on_the_version (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_its_own_object (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/not_by_PutObjectTagging (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/and_not_by_x-amz-tagging_on_upload (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route (0.01s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CreateMultipartUpload (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CopyObject_with_a_REPLACE_tagging_directive (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/but_multipart_itself_is_allowed (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_copy_itself_is_allowed (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/a_POST-policy_forged_tag_with_a_matching_version_is_still_not_a_verdict (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_an_ordinary_tagged-with-something-else_upload_is_allowed (0.00s)
--- PASS: TestDeliveredContractMinio/delete_removes_it (0.00s)
--- PASS: TestDeliveredContractMinio/cross-bucket_denial (0.00s)
PASS
ok github.com/carlosframework/platform/internal/objstore 0.027s
=== RUN TestT4StorageProbeMinio
2026/10/25 00:03:27 moves: T4: STORE: list: operation error S3: ListObjectsV2, https response error StatusCode: 403, RequestID: 18E19CDEBB60E18B, HostID: 7c420053e0fbcd7f41653fdd92ffa2802c903d05303b1aa15adc2e8bb65d183f, api error SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
--- PASS: TestT4StorageProbeMinio (0.01s)
PASS
ok github.com/carlosframework/platform/internal/host 0.023s
=== RUN TestS3StoreMinioContract
=== RUN TestS3StoreMinioContract/conditional_get_and_etag_listing
=== RUN TestS3StoreMinioContract/bump_through_every_mutation_path
--- PASS: TestS3StoreMinioContract (0.03s)
--- PASS: TestS3StoreMinioContract/conditional_get_and_etag_listing (0.01s)
--- PASS: TestS3StoreMinioContract/bump_through_every_mutation_path (0.02s)
PASS
ok github.com/carlosframework/platform/internal/release 0.030s
Bucket created successfully `local/dbf-deploy`.
Bucket created successfully `local/dbf-data-ie`.
Bucket created successfully `local/dbf-data-uk`.
local/dbf-deploy versioning is enabled
Created policy `dbf-console` successfully.
Created policy `dbf-ukbox` successfully.
Added user `dbfconsole` successfully.
Added user `dbfukbox` successfully.
Attached Policies: [dbf-console]
To User: dbfconsole
Attached Policies: [dbf-ukbox]
To User: dbfukbox
=== RUN TestDBForwardMinio
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/25 00:03:29 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/25 00:03:29 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/25 00:03:29 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/25 00:03:29 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/25 00:03:29 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/25 00:03:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/25 00:03:29 console: could not notify member@example.com of a CLI token issue: keymail: lookup member@example.com: keymail: GET /api/federation/lookup?addr=member%40example.com&from=console%40127.0.0.1%3A38379: could not determine target mailbox
agent.go:135: dbreads: dbr_dethm7jozsmbjcqrafvasrmj64: planned 3 files (1544 bytes) and restored to 3 in 12ms
agent.go:135: dbreads: dbr_dethm7jozsmbjcqrafvasrmj64: output 5 bytes in 1 confirmed chunks in 2ms
2026/10/25 00:03:30 console: db read dbr_dethm7jozsmbjcqrafvasrmj64: relayed 1 chunks (102 bytes) in 1.004s, ended done
agent.go:135: dbreads: dbr_k6pld3uojpqyexg4jhyrviepte: planned 1 files (720 bytes) and restored to 1 in 10ms
agent.go:135: dbreads: dbr_k6pld3uojpqyexg4jhyrviepte: output 5 bytes in 1 confirmed chunks in 1ms
2026/10/25 00:03:31 console: db read dbr_k6pld3uojpqyexg4jhyrviepte: relayed 1 chunks (102 bytes) in 1.005s, ended done
agent.go:135: dbreads: dbr_hpt4jbqt75zm6brx2zkzci6zzm: planned 3 files (1544 bytes) and held through 3 in 9ms
agent.go:135: dbreads: dbr_hpt4jbqt75zm6brx2zkzci6zzm: output 1544 bytes in 1 confirmed chunks in 1ms
2026/10/25 00:03:32 console: db read dbr_hpt4jbqt75zm6brx2zkzci6zzm: relayed 1 chunks (1641 bytes) in 1.004s, ended done
=== RUN TestDBForwardMinio/by_disconnect
=== NAME TestDBForwardMinio
agent.go:135: dbreads: dbr_52qkvkebpmphwxb2omd2m7stau: planned 3 files (1544 bytes) and restored to 3 in 10ms
2026/10/25 00:03:32 console: db read dbr_52qkvkebpmphwxb2omd2m7stau: relayed 0 chunks (0 bytes) in 18ms, ended client gone
agent.go:135: dbreads: dbr_52qkvkebpmphwxb2omd2m7stau: output 5 bytes in 1 confirmed chunks in 103ms
=== RUN TestDBForwardMinio/by_timeout
=== NAME TestDBForwardMinio
agent.go:135: dbreads: dbr_pdetksg23gcziiglderbza37h4: planned 3 files (1544 bytes) and restored to 3 in 9ms
2026/10/25 00:03:52 console: db read dbr_pdetksg23gcziiglderbza37h4: relayed 0 chunks (0 bytes) in 19.144s, ended no-result
agent.go:135: dbreads: dbr_pdetksg23gcziiglderbza37h4: output 5 bytes in 1 confirmed chunks in 19.118s
--- PASS: TestDBForwardMinio (22.59s)
--- PASS: TestDBForwardMinio/by_disconnect (0.23s)
--- PASS: TestDBForwardMinio/by_timeout (19.25s)
PASS
ok github.com/carlosframework/platform/internal/console 22.611s
minio contract: PASS
diff --git a/.amadan/test-gate.sh b/.amadan/test-gate.sh| index f1f02c9cd..1b1ae46f6 100755 |
| --- a/.amadan/test-gate.sh |
| +++ b/.amadan/test-gate.sh |
| @@ -33,7 +33,7 @@ |
| # next) can surface here. That is a bug in the test, not in the split. |
| set -eu |
| -: "${TEST_SPLIT=./internal/console=8 .=3}" |
| +: "${TEST_SPLIT=./internal/console=8 ./internal/host=4 .=5}" |
| weights=$(pwd)/.amadan/test-weights.tsv |
| # A shard count that is not a whole number of at least 1 would take a |
| @@ -192,10 +192,10 @@ for spec in $TEST_SPLIT; do |
| fi |
| # Longest-processing-time first: heaviest test onto the least-loaded |
| - # shard. Unweighted tests count as 0.2 s. |
| + # shard. Unweighted tests count as 0.05 s (see test-weights.sh). |
| awk -v pkg="$pkg" -v n="$shards" -F '\t' ' |
| FILENAME == ARGV[1] { if ($1 == pkg) w[$2] = $3; next } |
| - { print (($0 in w) ? w[$0] : 0.2) "\t" $0 } |
| + { print (($0 in w) ? w[$0] : 0.05) "\t" $0 } |
| ' "$weights" "$out/list-$tag" | sort -t "$(printf '\t')" -k1,1gr -k2,2 | |
| awk -v n="$shards" -F '\t' ' |
| { |
diff --git a/.amadan/test-weights.sh b/.amadan/test-weights.sh| index 651e4a271..6efc4c14a 100755 |
| --- a/.amadan/test-weights.sh |
| +++ b/.amadan/test-weights.sh |
| @@ -7,9 +7,15 @@ |
| # .amadan/test-weights.sh console.json root.json |
| # |
| # Measure on a quiet machine with the temp root on tmpfs, as CI has it, or |
| -# the fsync-heavy tests weigh several times what they do there. Only |
| -# top-level tests of a second or more are kept; everything else is dealt |
| -# as short, which is what it is. |
| +# the fsync-heavy tests weigh several times what they do there. |
| +# |
| +# Only the packages in the given files are rewritten; rows for other |
| +# packages are kept. A top-level test of a quarter-second or more gets a |
| +# row. A test that called t.Parallel (its JSON has a "pause") overlaps |
| +# with its neighbours, so its weight is its time divided by 8, roughly |
| +# what it adds to its shard's wall clock. Everything unlisted is dealt as |
| +# short (test-gate.sh counts it as 0.05 s), which is what it is: host's |
| +# 2,500 small serial tests average about 0.025 s. |
| set -eu |
| [ $# -gt 0 ] || { |
| @@ -18,20 +24,44 @@ set -eu |
| } |
| out=.amadan/test-weights.tsv |
| +tab=$(printf '\t') |
| +new=$(mktemp "${TMPDIR:-/tmp}/test-weights-XXXXXX") |
| +trap 'rm -f "$new" "$out.tmp"' EXIT |
| +cat "$@" | awk ' |
| + /"Test":"/ { |
| + if (!match($0, /"Test":"[^"]*"/)) next |
| + test = substr($0, RSTART + 8, RLENGTH - 9) |
| + if (index(test, "/")) next |
| + if (!match($0, /"Package":"[^"]*"/)) next |
| + pkg = substr($0, RSTART + 11, RLENGTH - 12) |
| + key = pkg "\t" test |
| + if ($0 ~ /"Action":"pause"/) { parallel[key] = 1; next } |
| + if ($0 !~ /"Action":"(pass|fail)"/) next |
| + if (!match($0, /"Elapsed":[0-9.]+/)) next |
| + secs[key] = substr($0, RSTART + 10, RLENGTH - 10) + 0 |
| + } |
| + END { |
| + for (k in secs) { |
| + w = (k in parallel) ? secs[k] / 8 : secs[k] |
| + if (w >= 0.25) printf "%s\t%.2f\n", k, w |
| + } |
| + # A package line with no weighted test still marks its rows as replaced. |
| + for (k in secs) { split(k, f, "\t"); seen[f[1]] = 1 } |
| + for (p in seen) printf "#pkg\t%s\n", p |
| + } |
| +' >"$new" |
| { |
| printf '# package\ttest\tseconds (.amadan/test-weights.sh, %s)\n' "$(date -u +%Y-%m-%d)" |
| - cat "$@" | awk ' |
| - /"Action":"(pass|fail)"/ && /"Test":"/ { |
| - if (!match($0, /"Test":"[^"]*"/)) next |
| - test = substr($0, RSTART + 8, RLENGTH - 9) |
| - if (index(test, "/")) next |
| - if (!match($0, /"Package":"[^"]*"/)) next |
| - pkg = substr($0, RSTART + 11, RLENGTH - 12) |
| - if (!match($0, /"Elapsed":[0-9.]+/)) next |
| - secs = substr($0, RSTART + 10, RLENGTH - 10) + 0 |
| - if (secs >= 1) printf "%s\t%s\t%.1f\n", pkg, test, secs |
| - } |
| - ' | sort -t "$(printf '\t')" -k1,1 -k3,3gr |
| + { |
| + grep -v '^#pkg' "$new" |
| + if [ -f "$out" ]; then |
| + awk -F "$tab" -v newf="$new" ' |
| + BEGIN { while ((getline l < newf) > 0) { split(l, f, "\t"); if (f[1] == "#pkg") replaced[f[2]] = 1 } } |
| + /^#/ { next } |
| + !($1 in replaced) |
| + ' "$out" |
| + fi |
| + } | sort -t "$tab" -k1,1 -k3,3gr |
| } >"$out.tmp" |
| mv "$out.tmp" "$out" |
| echo "wrote $out: $(($(wc -l <"$out") - 1)) weighted tests" |
diff --git a/.amadan/test-weights.tsv b/.amadan/test-weights.tsv| index 6241b5499..374c15546 100644 |
| --- a/.amadan/test-weights.tsv |
| +++ b/.amadan/test-weights.tsv |
| @@ -1,4 +1,71 @@ |
| -# package test seconds (.amadan/test-weights.sh, 2026-10-21) |
| +# package test seconds (.amadan/test-weights.sh, 2026-10-24) |
| +github.com/carlosframework/platform TestDBForwardPrintsNothingForABadAnswer 67.13 |
| +github.com/carlosframework/platform TestDBForwardThroughTheBackhaulHop 55.06 |
| +github.com/carlosframework/platform TestDBForwardLongRequestThroughTheEdge 42.79 |
| +github.com/carlosframework/platform TestMovesStringsAreRecorded 9.39 |
| +github.com/carlosframework/platform TestCanaryCreateMakesAOneLabelHost 8.25 |
| +github.com/carlosframework/platform TestE2EDomainsAttachThroughDeploy 8.18 |
| +github.com/carlosframework/platform TestCanaryRegionReusesACanaryPastTheListCap 6.61 |
| +github.com/carlosframework/platform TestAuthCLI 5.05 |
| +github.com/carlosframework/platform TestRunEmailEnableFlowCustomDomainPrintsRecordsAndPolls 5.02 |
| +github.com/carlosframework/platform TestMovesGateBitesOnTheRealRecord 4.39 |
| +github.com/carlosframework/platform TestE2ELogsThroughConsole 4.04 |
| +github.com/carlosframework/platform TestMovesApprovedCopyIsApplied 3.91 |
| +github.com/carlosframework/platform TestMovesLegacyExemptionsAreLegacy 3.42 |
| +github.com/carlosframework/platform TestDBForwardParityThroughTheCLI 3.31 |
| +github.com/carlosframework/platform TestDBForwardPullParityThroughTheCLI 3.18 |
| +github.com/carlosframework/platform TestMovesSinksAreSentences 3.00 |
| +github.com/carlosframework/platform TestMovesSinkAllowListIsHonest 2.99 |
| +github.com/carlosframework/platform TestMovesFunctionValuesAreNotSinks 2.63 |
| +github.com/carlosframework/platform TestMovesHomeRegionCallSiteInventory 2.42 |
| +github.com/carlosframework/platform TestSharedCarlosLocation 2.26 |
| +github.com/carlosframework/platform TestCanaryTooLongForOneLabelRefusesBeforeAnyWrite 2.11 |
| +github.com/carlosframework/platform TestE2EDeployThroughConsole 2.06 |
| +github.com/carlosframework/platform TestDeployExitsHonestlyWhenDNSIsNotPointingYet 2.02 |
| +github.com/carlosframework/platform TestDeployStaticRedeployWithRecordGetsDNSGuidance 2.02 |
| +github.com/carlosframework/platform TestResolveModeExpiredOffersRelogin 2.02 |
| +github.com/carlosframework/platform TestAuthLoginStoresACredential 2.01 |
| +github.com/carlosframework/platform TestAuthLoginUsesConfiguredDefault 2.01 |
| +github.com/carlosframework/platform TestAuthWhoamiPrintsMemberships 2.01 |
| +github.com/carlosframework/platform TestConsoleMovedOfferLogsInAndRepointsConfig 2.01 |
| +github.com/carlosframework/platform TestResolveModeOffersLoginAndContinues 2.01 |
| +github.com/carlosframework/platform TestResolveModeUnconfiguredPromptsForURL 2.01 |
| +github.com/carlosframework/platform TestWaitForDomainVerifiedSucceeds 2.00 |
| +github.com/carlosframework/platform TestDBForwardPullInterruptedLeavesNothing 1.99 |
| +github.com/carlosframework/platform TestDBForwardMixedVersions 1.91 |
| +github.com/carlosframework/platform TestDBForwardPullSavesNothingForABadAnswer 1.81 |
| +github.com/carlosframework/platform TestPlan13NoDirectPlacementEngineComparison 1.70 |
| +github.com/carlosframework/platform TestE2EDBThroughConsole 1.49 |
| +github.com/carlosframework/platform TestWatchRolloutListFailuresTimeOutNamingTheList 1.20 |
| +github.com/carlosframework/platform TestAuthLoginDenied 1.00 |
| +github.com/carlosframework/platform TestDBForwardPullOnAQueryOnlyConsole 0.97 |
| +github.com/carlosframework/platform TestDeployWatchReadsTheConsolesList 0.90 |
| +github.com/carlosframework/platform TestDBForwardRefusesSQLThatIsNotUTF8 0.88 |
| +github.com/carlosframework/platform TestEndToEndSmoke 0.70 |
| +github.com/carlosframework/platform TestCanaryRegionRefusesBeforeAnyWrite 0.49 |
| +github.com/carlosframework/platform TestWatchRolloutFallbackGetsTheRemainingTime 0.41 |
| +github.com/carlosframework/platform TestRegionHAS3ClientsUseS3Compat 0.35 |
| +github.com/carlosframework/platform TestRouteCLI 0.33 |
| +github.com/carlosframework/platform TestTenantInheritsActivationSocket 0.31 |
| +github.com/carlosframework/platform TestWatchProbeMatchesAWholeToken 0.31 |
| +github.com/carlosframework/platform TestWatchRolloutAlwaysTruncatedNamesTheUnlistedHost 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutDarkBoxNeverPollsOverHTTP 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutFinalSurvivesADarkBoxButNotANewerBuild 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutIdleSchedulerBeforeInstallIsPending 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutIncompleteJoinIsNotNoReports 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutLaterReportReclassifiesAURLLiveHost 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutNeverPollsATargetMissingFromACompleteList 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutNewerBuildNamesWhatIsInstalled 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutOpenSettleHoldsTheWatch 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutRefusingBoxIsPendingWithItsReason 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutStopsPollingAURLHostThatDropsOffTheList 0.30 |
| +github.com/carlosframework/platform TestWatchRolloutUnknownUnavailableCodeIsNeverPolled 0.30 |
| +github.com/carlosframework/platform TestEnvironmentBundlesCLI 0.27 |
| +github.com/carlosframework/platform TestRouteAccountDefaultsToOpsAndAllOptsIn 0.26 |
| +github.com/carlosframework/platform TestRouteUnitStampsAnExistingRoute 0.26 |
| +github.com/carlosframework/platform TestFollowRunCtrlCWhileARequestIsInFlight 0.25 |
| +github.com/carlosframework/platform TestScopedKeysCLI 0.25 |
| +github.com/carlosframework/platform TestSeededWiredCopyIsApplied 0.25 |
| github.com/carlosframework/platform/internal/console TestClaimConsoleMutationInvariant 60.1 |
| github.com/carlosframework/platform/internal/console TestClaimConsoleMutationInvariantWitnesses 12.3 |
| github.com/carlosframework/platform/internal/console TestRetiringAnInstancePurgesItsMoveLogRows 9.3 |
| @@ -37,12 +104,94 @@ github.com/carlosframework/platform/internal/console TestAnIncompletePlacementRe |
| github.com/carlosframework/platform/internal/console TestClaimLossPagesScanProgressSurvivesRestartAndWraps 1.0 |
| github.com/carlosframework/platform/internal/console TestCreateDoorsRefuseWithNoRoomBeforeRegistering 1.0 |
| github.com/carlosframework/platform/internal/console TestDBReadRequestBoundClampsAForgedDeadline 1.0 |
| -github.com/carlosframework/platform TestDBForwardPrintsNothingForABadAnswer 67.0 |
| -github.com/carlosframework/platform TestDBForwardLongRequestThroughTheEdge 44.5 |
| -github.com/carlosframework/platform TestDBForwardThroughTheBackhaulHop 44.1 |
| -github.com/carlosframework/platform TestDBForwardPullParityThroughTheCLI 4.8 |
| -github.com/carlosframework/platform TestDBForwardParityThroughTheCLI 4.6 |
| -github.com/carlosframework/platform TestDBForwardPullInterruptedLeavesNothing 2.1 |
| -github.com/carlosframework/platform TestDBForwardMixedVersions 1.9 |
| -github.com/carlosframework/platform TestDBForwardPullSavesNothingForABadAnswer 1.8 |
| -github.com/carlosframework/platform TestDBForwardRefusesSQLThatIsNotUTF8 1.0 |
| +github.com/carlosframework/platform/internal/host TestClaimAckRefreshProductionClient 20.09 |
| +github.com/carlosframework/platform/internal/host TestStalledIndexGetKeepsReconcileWalking 5.03 |
| +github.com/carlosframework/platform/internal/host TestPlan14Fix5MainEquivalence 4.37 |
| +github.com/carlosframework/platform/internal/host TestPlan9D3ProbeReadinessRefusesOutsideTheContract 3.60 |
| +github.com/carlosframework/platform/internal/host TestServingParkNestedBindMount 2.33 |
| +github.com/carlosframework/platform/internal/host TestFilesSeedOrdinaryPreparationRestore 2.30 |
| +github.com/carlosframework/platform/internal/host TestRunInterruptedWhileItsStopIsRetriedEndsAt125 2.25 |
| +github.com/carlosframework/platform/internal/host TestRunTimesOutAtItsDeadlineNotAFullTimeoutLater 1.50 |
| +github.com/carlosframework/platform/internal/host TestOfflineLandConvergesAfterACrashAtEveryPoint 1.32 |
| +github.com/carlosframework/platform/internal/host TestPublishRecordReportsARetriedCreateAsPublished 1.32 |
| +github.com/carlosframework/platform/internal/host TestOfflineMoveE2E 1.25 |
| +github.com/carlosframework/platform/internal/host TestInstallRenameWaitsForTheFloorLock 1.12 |
| +github.com/carlosframework/platform/internal/host TestOfflineLandMendsWhatIsMissing 1.02 |
| +github.com/carlosframework/platform/internal/host TestRunTimesOut 1.00 |
| +github.com/carlosframework/platform/internal/host TestPlan14GenerationRegistryRows 0.99 |
| +github.com/carlosframework/platform/internal/host TestRootJoinTakesNothingFromItsTrigger 0.98 |
| +github.com/carlosframework/platform/internal/host TestOfflineLandFailsEachMismatch 0.85 |
| +github.com/carlosframework/platform/internal/host TestStep8CensusChangesReachOnlyClaimMode 0.75 |
| +github.com/carlosframework/platform/internal/host TestPlan11Rev3ObservesRealInitTenant 0.72 |
| +github.com/carlosframework/platform/internal/host TestPlan14RecoveryKnownRefusal 0.70 |
| +github.com/carlosframework/platform/internal/host TestCanaryPointerReadWhenTheTicksIndexPollFails 0.69 |
| +github.com/carlosframework/platform/internal/host TestRollbackRestartResetsThenRestarts 0.63 |
| +github.com/carlosframework/platform/internal/host TestPlan14TimerIntentionBeforeMaterialization 0.62 |
| +github.com/carlosframework/platform/internal/host TestContendedFloorLockDefersTheInstall 0.61 |
| +github.com/carlosframework/platform/internal/host TestPlan14RollbackCanonicalReadiness 0.61 |
| +github.com/carlosframework/platform/internal/host TestPlan9D3ServingReadinessIsUnchanged 0.60 |
| +github.com/carlosframework/platform/internal/host TestProbeRefusesForeignPeer 0.60 |
| +github.com/carlosframework/platform/internal/host TestServingParkLedgerKeepsLastStartedDatabase 0.56 |
| +github.com/carlosframework/platform/internal/host TestPlan14FirstRegistrationOperations 0.54 |
| +github.com/carlosframework/platform/internal/host TestPlan14Fix4AdoptPerHostFailureExitsZero 0.54 |
| +github.com/carlosframework/platform/internal/host TestRelocationInstallJournalWaitsForTheSweep 0.54 |
| +github.com/carlosframework/platform/internal/host TestHeldStageLockWaiterOnARemovedFileRetries 0.52 |
| +github.com/carlosframework/platform/internal/host TestPlan14ExecutionPreinstallationAuthority 0.52 |
| +github.com/carlosframework/platform/internal/host TestPlan14ExecutionServingTransport 0.52 |
| +github.com/carlosframework/platform/internal/host TestPublishRecordRefusesWhatEnrollmentWouldRefuse 0.52 |
| +github.com/carlosframework/platform/internal/host TestPlan14RootMigrationTimerAdoption 0.51 |
| +github.com/carlosframework/platform/internal/host TestPlan14SwapFailureSurvivesLegacyTampering 0.51 |
| +github.com/carlosframework/platform/internal/host TestConsoleDigestRefusesOversized 0.50 |
| +github.com/carlosframework/platform/internal/host TestHomeTargetFreshStateShowsOnlyTheHomeToken 0.49 |
| +github.com/carlosframework/platform/internal/host TestPlan14RecoveryRebindAuthority 0.49 |
| +github.com/carlosframework/platform/internal/host TestFilesSeedCombinedRecoveryAllowsUpdate 0.45 |
| +github.com/carlosframework/platform/internal/host TestSystemUnitsSelectPrevByTheSeedsFloor 0.45 |
| +github.com/carlosframework/platform/internal/host TestPlan12RecoveryRestoreSourceDatabase 0.44 |
| +github.com/carlosframework/platform/internal/host TestT7WaitsOutAPublicationsRollback 0.44 |
| +github.com/carlosframework/platform/internal/host TestJoiningServes503UntilItCanHostAndPublishesNoEdgesFile 0.43 |
| +github.com/carlosframework/platform/internal/host TestRunSystemInstallChannelTakesPolicyAndIdentityTogether 0.42 |
| +github.com/carlosframework/platform/internal/host TestProbeEnvPinCoversAnInstanceBoxVariable 0.41 |
| +github.com/carlosframework/platform/internal/host TestRelocationReplacementActivationRefuses 0.41 |
| +github.com/carlosframework/platform/internal/host TestRevertReplays 0.40 |
| +github.com/carlosframework/platform/internal/host TestHeldPublicationRechecksInsideTheFreeze 0.39 |
| +github.com/carlosframework/platform/internal/host TestPlan11Fix1NoProcessDerivesCoverage 0.39 |
| +github.com/carlosframework/platform/internal/host TestServingParkRetainedReplacementWriteFailures 0.39 |
| +github.com/carlosframework/platform/internal/host TestPlan14Fix4IncidentProductionWiring 0.38 |
| +github.com/carlosframework/platform/internal/host TestPlan14GenerationRequiredArtifacts 0.38 |
| +github.com/carlosframework/platform/internal/host TestPlan14OrdinaryDeleteParticipation 0.38 |
| +github.com/carlosframework/platform/internal/host TestPlan14RootDispatchRejectsRegistryMutation 0.38 |
| +github.com/carlosframework/platform/internal/host TestFilesSeedPreparationChangedController 0.37 |
| +github.com/carlosframework/platform/internal/host TestPlan14SignedNamedRecoveryAuthority 0.37 |
| +github.com/carlosframework/platform/internal/host TestR2LegacyLockContentionRetries 0.37 |
| +github.com/carlosframework/platform/internal/host TestPlan14GenerationLocalRecoveryObligations 0.36 |
| +github.com/carlosframework/platform/internal/host TestRelocationReplacementRefusesTheWrongStamp 0.36 |
| +github.com/carlosframework/platform/internal/host TestPlan14ActiveRecoveryProcessCrash 0.34 |
| +github.com/carlosframework/platform/internal/host TestPlan14ExecutionMigrationIsIndependent 0.34 |
| +github.com/carlosframework/platform/internal/host TestPlan14InstalledLaunchProgramEvidence 0.34 |
| +github.com/carlosframework/platform/internal/host TestPlan9Fix4RootAssemblyIgnoresReplacedLegacyDirectory 0.34 |
| +github.com/carlosframework/platform/internal/host TestPlan14ProofObservationRejectsForgedRegistry 0.33 |
| +github.com/carlosframework/platform/internal/host TestRelocationInstallKeyCheckRefusesWhatTheTenantPlants 0.32 |
| +github.com/carlosframework/platform/internal/host TestRestoreWaitsForTheFloorLock 0.32 |
| +github.com/carlosframework/platform/internal/host TestPlan14Fix4OrdinaryProductionWrapper 0.31 |
| +github.com/carlosframework/platform/internal/host TestPlan14ParticipationFlagOffUpdate 0.31 |
| +github.com/carlosframework/platform/internal/host TestRunEndedDuringASwitchWaitGetsItsOwnResult 0.30 |
| +github.com/carlosframework/platform/internal/host TestRunOutputIsBoundedWhenEveryChunkFails 0.30 |
| +github.com/carlosframework/platform/internal/host TestRunStagingEndsAtTheRunsDeadline 0.30 |
| +github.com/carlosframework/platform/internal/host TestRunWhoseResultNeverLandedLeavesTheEndingToTheCloseOut 0.30 |
| +github.com/carlosframework/platform/internal/host TestRunWithoutAResultIsNotDone 0.30 |
| +github.com/carlosframework/platform/internal/host TestR2NamedFallbackMatchesMain 0.29 |
| +github.com/carlosframework/platform/internal/host TestClaimProductionCensusInstallsThroughReconciler 0.28 |
| +github.com/carlosframework/platform/internal/host TestPlan14AdoptionCanonicalReadiness 0.28 |
| +github.com/carlosframework/platform/internal/host TestPlan14RollbackProcessCrash 0.28 |
| +github.com/carlosframework/platform/internal/host TestPlan14SignedActiveFixAuthority 0.27 |
| +github.com/carlosframework/platform/internal/host TestR3FallbackDoubleRestart 0.27 |
| +github.com/carlosframework/platform/internal/host TestR3StickyBindingErrorMasksCrash 0.27 |
| +github.com/carlosframework/platform/internal/host TestPlan14NamedUnitsWithoutDeploymentRecord 0.26 |
| +github.com/carlosframework/platform/internal/host TestPlan9Fix1ResetWorkerAppliesBackoff 0.26 |
| +github.com/carlosframework/platform/internal/host TestPlan12PendingRecoveryRejectsChangedIdentity 0.25 |
| +github.com/carlosframework/platform/internal/host TestPlan13RecoveryHomeReceipt 0.25 |
| +github.com/carlosframework/platform/internal/host TestPlan14BoundRestartShapeRefusal 0.25 |
| +github.com/carlosframework/platform/internal/host TestPlan14FenceViewDeadline 0.25 |
| +github.com/carlosframework/platform/internal/host TestPlan14ProofBindingProvenance 0.25 |
| +github.com/carlosframework/platform/internal/host TestRecoverCensusDeadlineReachesTheSignedBinaryProof 0.25 |
| +github.com/carlosframework/platform/internal/host TestRelocationInstallPublishesAndReadsUnderTheHeldStageLock 0.25 |