Update dependency mocha to v11.8.0 - #120
Merged
Merged
Community-TC Integration / taskcluster-lib-urls go test
succeeded
Aug 26, 2026 in 40s
Community-TC (pull_request)
Run library test suite - golang 1.23
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-08-26T11:35:43.720Z
Resolved: 2026-08-26T11:36:23.592Z
Task Execution Time: 39 seconds, 872 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: B7d8STmkSmuwLsraFspoEw
RunId: 0
Artifacts
- public/logs/live_backing.log (33.7 KB)
- public/logs/live.log
[taskcluster 2026-08-26T11:35:43.773Z] Worker Type (proj-taskcluster/ci) settings:
[taskcluster 2026-08-26T11:35:43.773Z] {
[taskcluster 2026-08-26T11:35:43.773Z] "generic-worker": {
[taskcluster 2026-08-26T11:35:43.773Z] "config": {
[taskcluster 2026-08-26T11:35:43.773Z] "headlessTasks": true
[taskcluster 2026-08-26T11:35:43.773Z] },
[taskcluster 2026-08-26T11:35:43.773Z] "engine": "multiuser",
[taskcluster 2026-08-26T11:35:43.773Z] "go-arch": "amd64",
[taskcluster 2026-08-26T11:35:43.773Z] "go-os": "linux",
[taskcluster 2026-08-26T11:35:43.773Z] "go-version": "go1.26.2",
[taskcluster 2026-08-26T11:35:43.773Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v99.1.0",
[taskcluster 2026-08-26T11:35:43.773Z] "revision": "c76d61efe4bdc1a05bcec848739cd41ebf061f01",
[taskcluster 2026-08-26T11:35:43.773Z] "source": "https://github.com/taskcluster/taskcluster/commits/c76d61efe4bdc1a05bcec848739cd41ebf061f01",
[taskcluster 2026-08-26T11:35:43.773Z] "version": "99.1.0"
[taskcluster 2026-08-26T11:35:43.773Z] },
[taskcluster 2026-08-26T11:35:43.773Z] "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-aaynirqnxlbwcojgnbeo",
[taskcluster 2026-08-26T11:35:43.773Z] "instance-id": "8174659154974306334",
[taskcluster 2026-08-26T11:35:43.773Z] "instance-type": "projects/757942385826/machineTypes/n2-standard-4",
[taskcluster 2026-08-26T11:35:43.773Z] "local-ipv4": "10.142.0.49",
[taskcluster 2026-08-26T11:35:43.773Z] "machine-setup": {
[taskcluster 2026-08-26T11:35:43.773Z] "maintainer": "taskcluster-notifications+workers@mozilla.com",
[taskcluster 2026-08-26T11:35:43.773Z] "script": "https://raw.githubusercontent.com/taskcluster/community-tc-config/b5b7c2ad856c144a6759e6e72280c4a958f8a930/imagesets/generic-worker-ubuntu-24-04/bootstrap.sh"
[taskcluster 2026-08-26T11:35:43.773Z] },
[taskcluster 2026-08-26T11:35:43.773Z] "project-id": "community-tc-workers",
[taskcluster 2026-08-26T11:35:43.773Z] "public-hostname": "proj-taskcluster-ci-zwwterkgrlo3w5dj0v4btq.c.community-tc-workers.internal",
[taskcluster 2026-08-26T11:35:43.773Z] "public-ipv4": "35.237.174.89",
[taskcluster 2026-08-26T11:35:43.773Z] "region": "us-east1",
[taskcluster 2026-08-26T11:35:43.773Z] "zone": "us-east1-d"
[taskcluster 2026-08-26T11:35:43.773Z] }
[taskcluster 2026-08-26T11:35:43.773Z] Task ID: B7d8STmkSmuwLsraFspoEw
[taskcluster 2026-08-26T11:35:43.773Z] === Task Starting ===
[taskcluster 2026-08-26T11:35:44.227Z] [d2g] Loading docker image
[taskcluster 2026-08-26T11:35:55.084Z] [d2g] Loaded docker image "docker.io/library/golang:1.23"
[taskcluster 2026-08-26T11:35:55.084Z] Executing command 0: docker run -t --name taskcontainer_SXdowu9OSrKC2lMznyd0iQ --memory-swap -1 --pids-limit -1 --pull=never --log-driver=none '--add-host=localhost.localdomain:127.0.0.1' --env-file 'env.list' 'golang:1.23' /bin/bash -c 'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.61.0 &&
[taskcluster 2026-08-26T11:35:55.084Z] git clone https://github.com/taskcluster/taskcluster-lib-urls.git repo
[taskcluster 2026-08-26T11:35:55.084Z] cd repo
[taskcluster 2026-08-26T11:35:55.084Z] git config advice.detachedHead false
[taskcluster 2026-08-26T11:35:55.084Z] git checkout 114e2603983bddcb75467be56352ba7d9a1495ad
[taskcluster 2026-08-26T11:35:55.084Z] go test -v -race ./...
[taskcluster 2026-08-26T11:35:55.084Z] golangci-lint run
[taskcluster 2026-08-26T11:35:55.084Z] '
golangci/golangci-lint info checking GitHub for tag 'v1.61.0'
golangci/golangci-lint info found version: 1.61.0 for v1.61.0/linux/amd64
golangci/golangci-lint info installed /go/bin/golangci-lint
Cloning into 'repo'...
remote: Enumerating objects: 866, done.
remote: Counting objects: 2% (1/35)
remote: Counting objects: 5% (2/35)
remote: Counting objects: 8% (3/35)
remote: Counting objects: 11% (4/35)
remote: Counting objects: 14% (5/35)
remote: Counting objects: 17% (6/35)
remote: Counting objects: 20% (7/35)
remote: Counting objects: 22% (8/35)
remote: Counting objects: 25% (9/35)
remote: Counting objects: 28% (10/35)
remote: Counting objects: 31% (11/35)
remote: Counting objects: 34% (12/35)
remote: Counting objects: 37% (13/35)
remote: Counting objects: 40% (14/35)
remote: Counting objects: 42% (15/35)
remote: Counting objects: 45% (16/35)
remote: Counting objects: 48% (17/35)
remote: Counting objects: 51% (18/35)
remote: Counting objects: 54% (19/35)
remote: Counting objects: 57% (20/35)
remote: Counting objects: 60% (21/35)
remote: Counting objects: 62% (22/35)
remote: Counting objects: 65% (23/35)
remote: Counting objects: 68% (24/35)
remote: Counting objects: 71% (25/35)
remote: Counting objects: 74% (26/35)
remote: Counting objects: 77% (27/35)
remote: Counting objects: 80% (28/35)
remote: Counting objects: 82% (29/35)
remote: Counting objects: 85% (30/35)
remote: Counting objects: 88% (31/35)
remote: Counting objects: 91% (32/35)
remote: Counting objects: 94% (33/35)
remote: Counting objects: 97% (34/35)
remote: Counting objects: 100% (35/35)
remote: Counting objects: 100% (35/35), done.
remote: Compressing objects: 4% (1/22)
remote: Compressing objects: 9% (2/22)
remote: Compressing objects: 13% (3/22)
remote: Compressing objects: 18% (4/22)
remote: Compressing objects: 22% (5/22)
remote: Compressing objects: 27% (6/22)
remote: Compressing objects: 31% (7/22)
remote: Compressing objects: 36% (8/22)
remote: Compressing objects: 40% (9/22)
remote: Compressing objects: 45% (10/22)
remote: Compressing objects: 50% (11/22)
remote: Compressing objects: 54% (12/22)
remote: Compressing objects: 59% (13/22)
remote: Compressing objects: 63% (14/22)
remote: Compressing objects: 68% (15/22)
remote: Compressing objects: 72% (16/22)
remote: Compressing objects: 77% (17/22)
remote: Compressing objects: 81% (18/22)
remote: Compressing objects: 86% (19/22)
remote: Compressing objects: 90% (20/22)
remote: Compressing objects: 95% (21/22)
remote: Compressing objects: 100% (22/22)
remote: Compressing objects: 100% (22/22), done.
Receiving objects: 0% (1/866)
Receiving objects: 1% (9/866)
Receiving objects: 2% (18/866)
Receiving objects: 3% (26/866)
Receiving objects: 4% (35/866)
Receiving objects: 5% (44/866)
Receiving objects: 6% (52/866)
Receiving objects: 7% (61/866)
Receiving objects: 8% (70/866)
Receiving objects: 9% (78/866)
Receiving objects: 10% (87/866)
Receiving objects: 11% (96/866)
Receiving objects: 12% (104/866)
Receiving objects: 13% (113/866)
Receiving objects: 14% (122/866)
Receiving objects: 15% (130/866)
Receiving objects: 16% (139/866)
Receiving objects: 17% (148/866)
Receiving objects: 18% (156/866)
Receiving objects: 19% (165/866)
Receiving objects: 20% (174/866)
Receiving objects: 21% (182/866)
Receiving objects: 22% (191/866)
Receiving objects: 23% (200/866)
Receiving objects: 24% (208/866)
Receiving objects: 25% (217/866)
Receiving objects: 26% (226/866)
Receiving objects: 27% (234/866)
Receiving objects: 28% (243/866)
Receiving objects: 29% (252/866)
Receiving objects: 30% (260/866)
Receiving objects: 31% (269/866)
Receiving objects: 32% (278/866)
Receiving objects: 33% (286/866)
Receiving objects: 34% (295/866)
Receiving objects: 35% (304/866)
Receiving objects: 36% (312/866)
Receiving objects: 37% (321/866)
Receiving objects: 38% (330/866)
Receiving objects: 39% (338/866)
Receiving objects: 40% (347/866)
Receiving objects: 41% (356/866)
Receiving objects: 42% (364/866)
Receiving objects: 43% (373/866)
Receiving objects: 44% (382/866)
Receiving objects: 45% (390/866)
Receiving objects: 46% (399/866)
Receiving objects: 47% (408/866)
Receiving objects: 48% (416/866)
Receiving objects: 49% (425/866)
Receiving objects: 50% (433/866)
Receiving objects: 51% (442/866)
Receiving objects: 52% (451/866)
Receiving objects: 53% (459/866)
Receiving objects: 54% (468/866)
Receiving objects: 55% (477/866)
Receiving objects: 56% (485/866)
Receiving objects: 57% (494/866)
Receiving objects: 58% (503/866)
Receiving objects: 59% (511/866)
Receiving objects: 60% (520/866)
Receiving objects: 61% (529/866)
Receiving objects: 62% (537/866)
Receiving objects: 63% (546/866)
Receiving objects: 64% (555/866)
Receiving objects: 65% (563/866)
Receiving objects: 66% (572/866)
Receiving objects: 67% (581/866)
Receiving objects: 68% (589/866)
Receiving objects: 69% (598/866)
Receiving objects: 70% (607/866)
Receiving objects: 71% (615/866)
Receiving objects: 72% (624/866)
Receiving objects: 73% (633/866)
Receiving objects: 74% (641/866)
Receiving objects: 75% (650/866)
Receiving objects: 76% (659/866)
Receiving objects: 77% (667/866)
Receiving objects: 78% (676/866)
Receiving objects: 79% (685/866)
Receiving objects: 80% (693/866)
Receiving objects: 81% (702/866)
Receiving objects: 82% (711/866)
Receiving objects: 83% (719/866)
Receiving objects: 84% (728/866)
Receiving objects: 85% (737/866)
Receiving objects: 86% (745/866)
Receiving objects: 87% (754/866)
Receiving objects: 88% (763/866)
Receiving objects: 89% (771/866)
Receiving objects: 90% (780/866)
Receiving objects: 91% (789/866)
Receiving objects: 92% (797/866)
Receiving objects: 93% (806/866)
Receiving objects: 94% (815/866)
Receiving objects: 95% (823/866)
Receiving objects: 96% (832/866)
Receiving objects: 97% (841/866)
remote: Total 866 (delta 19), reused 17 (delta 12), pack-reused 831 (from 3)
Receiving objects: 98% (849/866)
Receiving objects: 99% (858/866)
Receiving objects: 100% (866/866)
Receiving objects: 100% (866/866), 605.46 KiB | 3.98 MiB/s, done.
Resolving deltas: 0% (0/402)
Resolving deltas: 1% (6/402)
Resolving deltas: 2% (9/402)
Resolving deltas: 3% (13/402)
Resolving deltas: 4% (17/402)
Resolving deltas: 5% (21/402)
Resolving deltas: 6% (25/402)
Resolving deltas: 7% (29/402)
Resolving deltas: 8% (33/402)
Resolving deltas: 9% (37/402)
Resolving deltas: 10% (41/402)
Resolving deltas: 11% (45/402)
Resolving deltas: 12% (49/402)
Resolving deltas: 13% (53/402)
Resolving deltas: 14% (57/402)
Resolving deltas: 15% (61/402)
Resolving deltas: 16% (65/402)
Resolving deltas: 17% (69/402)
Resolving deltas: 18% (73/402)
Resolving deltas: 19% (77/402)
Resolving deltas: 20% (81/402)
Resolving deltas: 21% (85/402)
Resolving deltas: 22% (89/402)
Resolving deltas: 23% (94/402)
Resolving deltas: 24% (97/402)
Resolving deltas: 25% (101/402)
Resolving deltas: 26% (105/402)
Resolving deltas: 27% (109/402)
Resolving deltas: 28% (113/402)
Resolving deltas: 29% (117/402)
Resolving deltas: 30% (121/402)
Resolving deltas: 31% (125/402)
Resolving deltas: 32% (129/402)
Resolving deltas: 33% (133/402)
Resolving deltas: 34% (137/402)
Resolving deltas: 35% (141/402)
Resolving deltas: 36% (145/402)
Resolving deltas: 37% (149/402)
Resolving deltas: 38% (153/402)
Resolving deltas: 39% (158/402)
Resolving deltas: 40% (161/402)
Resolving deltas: 41% (165/402)
Resolving deltas: 42% (169/402)
Resolving deltas: 43% (173/402)
Resolving deltas: 44% (177/402)
Resolving deltas: 45% (181/402)
Resolving deltas: 46% (185/402)
Resolving deltas: 47% (189/402)
Resolving deltas: 48% (193/402)
Resolving deltas: 49% (197/402)
Resolving deltas: 50% (201/402)
Resolving deltas: 51% (206/402)
Resolving deltas: 52% (210/402)
Resolving deltas: 53% (214/402)
Resolving deltas: 54% (218/402)
Resolving deltas: 55% (222/402)
Resolving deltas: 56% (227/402)
Resolving deltas: 57% (230/402)
Resolving deltas: 58% (234/402)
Resolving deltas: 59% (238/402)
Resolving deltas: 60% (242/402)
Resolving deltas: 61% (246/402)
Resolving deltas: 62% (250/402)
Resolving deltas: 63% (254/402)
Resolving deltas: 64% (258/402)
Resolving deltas: 65% (262/402)
Resolving deltas: 66% (266/402)
Resolving deltas: 67% (270/402)
Resolving deltas: 68% (274/402)
Resolving deltas: 69% (278/402)
Resolving deltas: 70% (282/402)
Resolving deltas: 71% (286/402)
Resolving deltas: 72% (290/402)
Resolving deltas: 73% (294/402)
Resolving deltas: 74% (298/402)
Resolving deltas: 75% (302/402)
Resolving deltas: 76% (306/402)
Resolving deltas: 77% (310/402)
Resolving deltas: 78% (314/402)
Resolving deltas: 79% (318/402)
Resolving deltas: 80% (322/402)
Resolving deltas: 81% (326/402)
Resolving deltas: 82% (330/402)
Resolving deltas: 83% (334/402)
Resolving deltas: 84% (338/402)
Resolving deltas: 85% (342/402)
Resolving deltas: 86% (346/402)
Resolving deltas: 87% (350/402)
Resolving deltas: 88% (354/402)
Resolving deltas: 89% (358/402)
Resolving deltas: 90% (362/402)
Resolving deltas: 91% (366/402)
Resolving deltas: 92% (370/402)
Resolving deltas: 93% (374/402)
Resolving deltas: 94% (378/402)
Resolving deltas: 95% (382/402)
Resolving deltas: 96% (386/402)
Resolving deltas: 97% (390/402)
Resolving deltas: 98% (394/402)
Resolving deltas: 99% (398/402)
Resolving deltas: 100% (402/402)
Resolving deltas: 100% (402/402), done.
HEAD is now at 114e260 Update dependency mocha to v11.8.0
go: downloading gopkg.in/yaml.v2 v2.4.0
=== RUN TestURLs
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com`, `auth`, `v1`, `ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com/`, `auth`, `v1`, `ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com//`, `auth`, `v1`, `ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`12345`, `auth`, `v1`, `ping`) = `12345/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(``, `auth`, `v1`, `ping`) = `/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com`, `auth`, `v1`, `/ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com/`, `auth`, `v1`, `/ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com//`, `auth`, `v1`, `/ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`12345`, `auth`, `v1`, `/ping`) = `12345/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(``, `auth`, `v1`, `/ping`) = `/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com`, `auth`, `v1`, `//ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com/`, `auth`, `v1`, `//ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com//`, `auth`, `v1`, `//ping`) = `https://taskcluster.example.com/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`12345`, `auth`, `v1`, `//ping`) = `12345/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(``, `auth`, `v1`, `//ping`) = `/api/auth/v1/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com`, `auth`, `v1`, `foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com/`, `auth`, `v1`, `foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com//`, `auth`, `v1`, `foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`12345`, `auth`, `v1`, `foo/ping`) = `12345/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(``, `auth`, `v1`, `foo/ping`) = `/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com`, `auth`, `v1`, `/foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com/`, `auth`, `v1`, `/foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com//`, `auth`, `v1`, `/foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`12345`, `auth`, `v1`, `/foo/ping`) = `12345/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(``, `auth`, `v1`, `/foo/ping`) = `/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com`, `auth`, `v1`, `//foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com/`, `auth`, `v1`, `//foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`https://taskcluster.example.com//`, `auth`, `v1`, `//foo/ping`) = `https://taskcluster.example.com/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(`12345`, `auth`, `v1`, `//foo/ping`) = `12345/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ api(``, `auth`, `v1`, `//foo/ping`) = `/api/auth/v1/foo/ping`
tcurls_test.go:69: ✓ docs(``, `something/in/docs`) = `/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com`, `something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com/`, `something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com//`, `something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`12345`, `something/in/docs`) = `12345/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com`, `/something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com/`, `/something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com//`, `/something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`12345`, `/something/in/docs`) = `12345/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(``, `/something/in/docs`) = `/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com`, `//something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com/`, `//something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`https://taskcluster.example.com//`, `//something/in/docs`) = `https://taskcluster.example.com/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(`12345`, `//something/in/docs`) = `12345/docs/something/in/docs`
tcurls_test.go:69: ✓ docs(``, `//something/in/docs`) = `/docs/something/in/docs`
tcurls_test.go:69: ✓ schema(`12345`, `auth`, `v1/something.json`) = `12345/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(``, `auth`, `v1/something.json`) = `/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com`, `auth`, `v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com/`, `auth`, `v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com//`, `auth`, `v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com`, `auth`, `/v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com/`, `auth`, `/v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com//`, `auth`, `/v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`12345`, `auth`, `/v1/something.json`) = `12345/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(``, `auth`, `/v1/something.json`) = `/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com`, `auth`, `//v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com/`, `auth`, `//v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com//`, `auth`, `//v1/something.json`) = `https://taskcluster.example.com/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`12345`, `auth`, `//v1/something.json`) = `12345/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(``, `auth`, `//v1/something.json`) = `/schemas/auth/v1/something.json`
tcurls_test.go:69: ✓ schema(`12345`, `auth`, `v2/something.json`) = `12345/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(``, `auth`, `v2/something.json`) = `/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com`, `auth`, `v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com/`, `auth`, `v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com//`, `auth`, `v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com`, `auth`, `/v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com/`, `auth`, `/v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com//`, `auth`, `/v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`12345`, `auth`, `/v2/something.json`) = `12345/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(``, `auth`, `/v2/something.json`) = `/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com`, `auth`, `//v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com/`, `auth`, `//v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`https://taskcluster.example.com//`, `auth`, `//v2/something.json`) = `https://taskcluster.example.com/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(`12345`, `auth`, `//v2/something.json`) = `12345/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ schema(``, `auth`, `//v2/something.json`) = `/schemas/auth/v2/something.json`
tcurls_test.go:69: ✓ apiReferenceSchema(``, `v1`) = `/schemas/common/api-reference-v1.json`
tcurls_test.go:69: ✓ apiReferenceSchema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/api-reference-v1.json`
tcurls_test.go:69: ✓ apiReferenceSchema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/api-reference-v1.json`
tcurls_test.go:69: ✓ apiReferenceSchema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/api-reference-v1.json`
tcurls_test.go:69: ✓ apiReferenceSchema(`12345`, `v1`) = `12345/schemas/common/api-reference-v1.json`
tcurls_test.go:69: ✓ exchangesReferenceSchema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: ✓ exchangesReferenceSchema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: ✓ exchangesReferenceSchema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: ✓ exchangesReferenceSchema(`12345`, `v1`) = `12345/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: ✓ exchangesReferenceSchema(``, `v1`) = `/schemas/common/exchanges-reference-v1.json`
tcurls_test.go:69: ✓ apiManifestSchema(``, `v1`) = `/schemas/common/manifest-v1.json`
tcurls_test.go:69: ✓ apiManifestSchema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/manifest-v1.json`
tcurls_test.go:69: ✓ apiManifestSchema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/manifest-v1.json`
tcurls_test.go:69: ✓ apiManifestSchema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/manifest-v1.json`
tcurls_test.go:69: ✓ apiManifestSchema(`12345`, `v1`) = `12345/schemas/common/manifest-v1.json`
tcurls_test.go:69: ✓ metadataMetaschema(`12345`, `v1`) = `12345/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: ✓ metadataMetaschema(``, `v1`) = `/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: ✓ metadataMetaschema(`https://taskcluster.example.com`, `v1`) = `https://taskcluster.example.com/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: ✓ metadataMetaschema(`https://taskcluster.example.com/`, `v1`) = `https://taskcluster.example.com/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: ✓ metadataMetaschema(`https://taskcluster.example.com//`, `v1`) = `https://taskcluster.example.com/schemas/common/metadata-metaschema.json`
tcurls_test.go:69: ✓ apiReference(`https://taskcluster.example.com`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/api.json`
tcurls_test.go:69: ✓ apiReference(`https://taskcluster.example.com/`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/api.json`
tcurls_test.go:69: ✓ apiReference(`https://taskcluster.example.com//`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/api.json`
tcurls_test.go:69: ✓ apiReference(`12345`, `auth`, `v1`) = `12345/references/auth/v1/api.json`
tcurls_test.go:69: ✓ apiReference(``, `auth`, `v1`) = `/references/auth/v1/api.json`
tcurls_test.go:69: ✓ exchangeReference(`12345`, `auth`, `v1`) = `12345/references/auth/v1/exchanges.json`
tcurls_test.go:69: ✓ exchangeReference(``, `auth`, `v1`) = `/references/auth/v1/exchanges.json`
tcurls_test.go:69: ✓ exchangeReference(`https://taskcluster.example.com`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/exchanges.json`
tcurls_test.go:69: ✓ exchangeReference(`https://taskcluster.example.com/`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/exchanges.json`
tcurls_test.go:69: ✓ exchangeReference(`https://taskcluster.example.com//`, `auth`, `v1`) = `https://taskcluster.example.com/references/auth/v1/exchanges.json`
tcurls_test.go:69: ✓ ui(`12345`, `something`) = `12345/something`
tcurls_test.go:69: ✓ ui(``, `something`) = `/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com`, `something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com/`, `something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com//`, `something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com`, `/something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com/`, `/something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com//`, `/something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`12345`, `/something`) = `12345/something`
tcurls_test.go:69: ✓ ui(``, `/something`) = `/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com`, `//something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com/`, `//something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com//`, `//something`) = `https://taskcluster.example.com/something`
tcurls_test.go:69: ✓ ui(`12345`, `//something`) = `12345/something`
tcurls_test.go:69: ✓ ui(``, `//something`) = `/something`
tcurls_test.go:69: ✓ ui(`12345`, ``) = `12345/`
tcurls_test.go:69: ✓ ui(``, ``) = `/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com`, ``) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com/`, ``) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com//`, ``) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(``, `/`) = `/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com`, `/`) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com/`, `/`) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com//`, `/`) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`12345`, `/`) = `12345/`
tcurls_test.go:69: ✓ ui(``, `//`) = `/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com`, `//`) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com/`, `//`) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`https://taskcluster.example.com//`, `//`) = `https://taskcluster.example.com/`
tcurls_test.go:69: ✓ ui(`12345`, `//`) = `12345/`
tcurls_test.go:69: ✓ apiManifest(`12345`) = `12345/references/manifest.json`
tcurls_test.go:69: ✓ apiManifest(``) = `/references/manifest.json`
tcurls_test.go:69: ✓ apiManifest(`https://taskcluster.example.com`) = `https://taskcluster.example.com/references/manifest.json`
tcurls_test.go:69: ✓ apiManifest(`https://taskcluster.example.com/`) = `https://taskcluster.example.com/references/manifest.json`
tcurls_test.go:69: ✓ apiManifest(`https://taskcluster.example.com//`) = `https://taskcluster.example.com/references/manifest.json`
--- PASS: TestURLs (0.01s)
=== RUN TestNormalize
tcurls_test.go:100: ✓ NormalizeRootURL(https://taskcluster.example.com) = `https://taskcluster.example.com`
tcurls_test.go:100: ✓ NormalizeRootURL(https://taskcluster.example.com/) = `https://taskcluster.example.com`
tcurls_test.go:100: ✓ NormalizeRootURL(https://taskcluster.example.com//) = `https://taskcluster.example.com`
--- PASS: TestNormalize (0.00s)
PASS
ok github.com/taskcluster/taskcluster-lib-urls 1.023s
[taskcluster 2026-08-26T11:36:22.990Z] Exit Code: 0
[taskcluster 2026-08-26T11:36:22.990Z] User Time: 19.533ms
[taskcluster 2026-08-26T11:36:22.990Z] Kernel Time: 13.022ms
[taskcluster 2026-08-26T11:36:22.990Z] Wall Time: 27.905297795s
[taskcluster 2026-08-26T11:36:22.990Z] Average Available System Memory: 14.21 GiB
[taskcluster 2026-08-26T11:36:22.990Z] Average System Memory Used: 1.41 GiB
[taskcluster 2026-08-26T11:36:22.990Z] Peak System Memory Used: 1.59 GiB
[taskcluster 2026-08-26T11:36:22.990Z] Total System Memory: 15.61 GiB
[taskcluster 2026-08-26T11:36:22.990Z] Result: SUCCEEDED
[taskcluster 2026-08-26T11:36:22.990Z] === Task Finished ===
[taskcluster 2026-08-26T11:36:22.990Z] Task Duration: 27.905985433s
Loading