Skip to content

Update dependency mocha to v11.8.0 - #120

Merged
lotas merged 1 commit into
mainfrom
renovate/mocha-11.x-lockfile
Aug 26, 2026
Merged

Update dependency mocha to v11.8.0#120
lotas merged 1 commit into
mainfrom
renovate/mocha-11.x-lockfile

Update dependency mocha to v11.8.0

114e260
Select commit
Loading
Failed to load commit list.
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