Skip to content

Update dependency js-yaml to v4.2.0

5b9ebbc
Select commit
Loading
Failed to load commit list.
Open

Update dependency js-yaml to v4.2.0 #121

Update dependency js-yaml to v4.2.0
5b9ebbc
Select commit
Loading
Failed to load commit list.
Community-TC Integration / taskcluster-lib-urls go test succeeded Jun 1, 2026 in 41s

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-06-01T00:56:23.098Z
Resolved: 2026-06-01T00:57:03.920Z
Task Execution Time: 40 seconds, 822 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: e2jt8PscSQmGEb-tYNiGhA
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log


[taskcluster 2026-06-01T00:56:23.276Z] Worker Type (proj-taskcluster/ci) settings:
[taskcluster 2026-06-01T00:56:23.276Z]   {
[taskcluster 2026-06-01T00:56:23.276Z]     "generic-worker": {
[taskcluster 2026-06-01T00:56:23.276Z]       "config": {
[taskcluster 2026-06-01T00:56:23.276Z]         "capacity": 1,
[taskcluster 2026-06-01T00:56:23.276Z]         "headlessTasks": true
[taskcluster 2026-06-01T00:56:23.276Z]       },
[taskcluster 2026-06-01T00:56:23.276Z]       "engine": "multiuser",
[taskcluster 2026-06-01T00:56:23.276Z]       "go-arch": "amd64",
[taskcluster 2026-06-01T00:56:23.276Z]       "go-os": "linux",
[taskcluster 2026-06-01T00:56:23.276Z]       "go-version": "go1.26.2",
[taskcluster 2026-06-01T00:56:23.276Z]       "release": "https://github.com/taskcluster/taskcluster/releases/tag/v100.0.1",
[taskcluster 2026-06-01T00:56:23.276Z]       "revision": "fcf9d8ed582ed8de3d1cdb8f4f91ccec93b7803c",
[taskcluster 2026-06-01T00:56:23.276Z]       "source": "https://github.com/taskcluster/taskcluster/commits/fcf9d8ed582ed8de3d1cdb8f4f91ccec93b7803c",
[taskcluster 2026-06-01T00:56:23.276Z]       "version": "100.0.1"
[taskcluster 2026-06-01T00:56:23.276Z]     },
[taskcluster 2026-06-01T00:56:23.276Z]     "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-bngpghpfficdxtlhnusi",
[taskcluster 2026-06-01T00:56:23.276Z]     "instance-id": "2650204775549855419",
[taskcluster 2026-06-01T00:56:23.276Z]     "instance-type": "projects/757942385826/machineTypes/n2-standard-4",
[taskcluster 2026-06-01T00:56:23.276Z]     "local-ipv4": "10.128.15.195",
[taskcluster 2026-06-01T00:56:23.276Z]     "machine-setup": {
[taskcluster 2026-06-01T00:56:23.276Z]       "maintainer": "taskcluster-notifications+workers@mozilla.com",
[taskcluster 2026-06-01T00:56:23.276Z]       "script": "https://raw.githubusercontent.com/taskcluster/community-tc-config/b5b7c2ad856c144a6759e6e72280c4a958f8a930/imagesets/generic-worker-ubuntu-24-04/bootstrap.sh"
[taskcluster 2026-06-01T00:56:23.276Z]     },
[taskcluster 2026-06-01T00:56:23.276Z]     "project-id": "community-tc-workers",
[taskcluster 2026-06-01T00:56:23.276Z]     "public-hostname": "proj-taskcluster-ci-h6vgrna-rb63facjlsdtca.c.community-tc-workers.internal",
[taskcluster 2026-06-01T00:56:23.276Z]     "public-ipv4": "34.41.141.70",
[taskcluster 2026-06-01T00:56:23.276Z]     "region": "us-central1",
[taskcluster 2026-06-01T00:56:23.276Z]     "zone": "us-central1-b"
[taskcluster 2026-06-01T00:56:23.276Z]   }
[taskcluster 2026-06-01T00:56:23.276Z] Task ID: e2jt8PscSQmGEb-tYNiGhA
[taskcluster 2026-06-01T00:56:23.276Z] === Task Starting ===
[taskcluster 2026-06-01T00:56:23.705Z] [d2g] Loading docker image
[taskcluster 2026-06-01T00:56:34.782Z] [d2g] Loaded docker image "docker.io/library/golang:1.23"
[taskcluster 2026-06-01T00:56:34.786Z] Executing command 0: docker run -t --name taskcontainer_QqECDNKPSSSHYJsXrzMfYA --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-06-01T00:56:34.786Z] git clone https://github.com/taskcluster/taskcluster-lib-urls.git repo
[taskcluster 2026-06-01T00:56:34.786Z] cd repo
[taskcluster 2026-06-01T00:56:34.786Z] git config advice.detachedHead false
[taskcluster 2026-06-01T00:56:34.786Z] git checkout 5b9ebbcd1c27a4373871f5179d966a10c4855aeb
[taskcluster 2026-06-01T00:56:34.786Z] go test -v -race ./...
[taskcluster 2026-06-01T00:56:34.786Z] golangci-lint run
[taskcluster 2026-06-01T00:56:34.786Z] '
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: 848, done.
remote: Counting objects:   5% (1/17)
remote: Counting objects:  11% (2/17)
remote: Counting objects:  17% (3/17)
remote: Counting objects:  23% (4/17)
remote: Counting objects:  29% (5/17)
remote: Counting objects:  35% (6/17)
remote: Counting objects:  41% (7/17)
remote: Counting objects:  47% (8/17)
remote: Counting objects:  52% (9/17)
remote: Counting objects:  58% (10/17)
remote: Counting objects:  64% (11/17)
remote: Counting objects:  70% (12/17)
remote: Counting objects:  76% (13/17)
remote: Counting objects:  82% (14/17)
remote: Counting objects:  88% (15/17)
remote: Counting objects:  94% (16/17)
remote: Counting objects: 100% (17/17)
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects:   7% (1/14)
remote: Compressing objects:  14% (2/14)
remote: Compressing objects:  21% (3/14)
remote: Compressing objects:  28% (4/14)
remote: Compressing objects:  35% (5/14)
remote: Compressing objects:  42% (6/14)
remote: Compressing objects:  50% (7/14)
remote: Compressing objects:  57% (8/14)
remote: Compressing objects:  64% (9/14)
remote: Compressing objects:  71% (10/14)
remote: Compressing objects:  78% (11/14)
remote: Compressing objects:  85% (12/14)
remote: Compressing objects:  92% (13/14)
remote: Compressing objects: 100% (14/14)
remote: Compressing objects: 100% (14/14), done.
Receiving objects:   0% (1/848)
Receiving objects:   1% (9/848)
Receiving objects:   2% (17/848)
Receiving objects:   3% (26/848)
Receiving objects:   4% (34/848)
Receiving objects:   5% (43/848)
Receiving objects:   6% (51/848)
Receiving objects:   7% (60/848)
Receiving objects:   8% (68/848)
Receiving objects:   9% (77/848)
Receiving objects:  10% (85/848)
Receiving objects:  11% (94/848)
Receiving objects:  12% (102/848)
Receiving objects:  13% (111/848)
Receiving objects:  14% (119/848)
Receiving objects:  15% (128/848)
Receiving objects:  16% (136/848)
Receiving objects:  17% (145/848)
Receiving objects:  18% (153/848)
Receiving objects:  19% (162/848)
Receiving objects:  20% (170/848)
Receiving objects:  21% (179/848)
Receiving objects:  22% (187/848)
Receiving objects:  23% (196/848)
Receiving objects:  24% (204/848)
Receiving objects:  25% (212/848)
Receiving objects:  26% (221/848)
Receiving objects:  27% (229/848)
Receiving objects:  28% (238/848)
Receiving objects:  29% (246/848)
Receiving objects:  30% (255/848)
Receiving objects:  31% (263/848)
Receiving objects:  32% (272/848)
Receiving objects:  33% (280/848)
Receiving objects:  34% (289/848)
Receiving objects:  35% (297/848)
Receiving objects:  36% (306/848)
Receiving objects:  37% (314/848)
Receiving objects:  38% (323/848)
Receiving objects:  39% (331/848)
Receiving objects:  40% (340/848)
Receiving objects:  41% (348/848)
Receiving objects:  42% (357/848)
Receiving objects:  43% (365/848)
Receiving objects:  44% (374/848)
Receiving objects:  45% (382/848)
Receiving objects:  46% (391/848)
Receiving objects:  47% (399/848)
Receiving objects:  48% (408/848)
Receiving objects:  49% (416/848)
Receiving objects:  50% (424/848)
Receiving objects:  51% (433/848)
Receiving objects:  52% (441/848)
Receiving objects:  53% (450/848)
Receiving objects:  54% (458/848)
Receiving objects:  55% (467/848)
Receiving objects:  56% (475/848)
Receiving objects:  57% (484/848)
Receiving objects:  58% (492/848)
Receiving objects:  59% (501/848)
Receiving objects:  60% (509/848)
Receiving objects:  61% (518/848)
Receiving objects:  62% (526/848)
Receiving objects:  63% (535/848)
Receiving objects:  64% (543/848)
Receiving objects:  65% (552/848)
Receiving objects:  66% (560/848)
Receiving objects:  67% (569/848)
Receiving objects:  68% (577/848)
Receiving objects:  69% (586/848)
Receiving objects:  70% (594/848)
Receiving objects:  71% (603/848)
Receiving objects:  72% (611/848)
Receiving objects:  73% (620/848)
Receiving objects:  74% (628/848)
Receiving objects:  75% (636/848)
Receiving objects:  76% (645/848)
Receiving objects:  77% (653/848)
Receiving objects:  78% (662/848)
Receiving objects:  79% (670/848)
Receiving objects:  80% (679/848)
Receiving objects:  81% (687/848)
Receiving objects:  82% (696/848)
Receiving objects:  83% (704/848)
Receiving objects:  84% (713/848)
Receiving objects:  85% (721/848)
Receiving objects:  86% (730/848)
Receiving objects:  87% (738/848)
Receiving objects:  88% (747/848)
Receiving objects:  89% (755/848)
Receiving objects:  90% (764/848)
Receiving objects:  91% (772/848)
Receiving objects:  92% (781/848)
Receiving objects:  93% (789/848)
Receiving objects:  94% (798/848)
Receiving objects:  95% (806/848)
Receiving objects:  96% (815/848)
remote: Total 848 (delta 10), reused 3 (delta 3), pack-reused 831 (from 2)
Receiving objects:  97% (823/848)
Receiving objects:  98% (832/848)
Receiving objects:  99% (840/848)
Receiving objects: 100% (848/848)
Receiving objects: 100% (848/848), 595.93 KiB | 3.92 MiB/s, done.
Resolving deltas:   0% (0/394)
Resolving deltas:   1% (4/394)
Resolving deltas:   2% (8/394)
Resolving deltas:   3% (12/394)
Resolving deltas:   4% (16/394)
Resolving deltas:   5% (20/394)
Resolving deltas:   6% (24/394)
Resolving deltas:   7% (28/394)
Resolving deltas:   8% (32/394)
Resolving deltas:   9% (36/394)
Resolving deltas:  10% (40/394)
Resolving deltas:  11% (44/394)
Resolving deltas:  12% (48/394)
Resolving deltas:  13% (53/394)
Resolving deltas:  14% (56/394)
Resolving deltas:  15% (60/394)
Resolving deltas:  16% (65/394)
Resolving deltas:  17% (67/394)
Resolving deltas:  18% (71/394)
Resolving deltas:  19% (75/394)
Resolving deltas:  20% (79/394)
Resolving deltas:  21% (83/394)
Resolving deltas:  22% (87/394)
Resolving deltas:  23% (91/394)
Resolving deltas:  24% (95/394)
Resolving deltas:  25% (99/394)
Resolving deltas:  26% (103/394)
Resolving deltas:  27% (108/394)
Resolving deltas:  28% (111/394)
Resolving deltas:  29% (115/394)
Resolving deltas:  30% (120/394)
Resolving deltas:  31% (123/394)
Resolving deltas:  32% (127/394)
Resolving deltas:  33% (131/394)
Resolving deltas:  34% (134/394)
Resolving deltas:  35% (138/394)
Resolving deltas:  36% (142/394)
Resolving deltas:  37% (146/394)
Resolving deltas:  38% (150/394)
Resolving deltas:  39% (154/394)
Resolving deltas:  40% (158/394)
Resolving deltas:  41% (162/394)
Resolving deltas:  42% (166/394)
Resolving deltas:  43% (170/394)
Resolving deltas:  44% (174/394)
Resolving deltas:  45% (178/394)
Resolving deltas:  46% (182/394)
Resolving deltas:  47% (188/394)
Resolving deltas:  48% (190/394)
Resolving deltas:  49% (194/394)
Resolving deltas:  50% (197/394)
Resolving deltas:  51% (201/394)
Resolving deltas:  52% (205/394)
Resolving deltas:  53% (209/394)
Resolving deltas:  54% (213/394)
Resolving deltas:  55% (218/394)
Resolving deltas:  56% (221/394)
Resolving deltas:  57% (225/394)
Resolving deltas:  58% (229/394)
Resolving deltas:  59% (233/394)
Resolving deltas:  60% (237/394)
Resolving deltas:  61% (242/394)
Resolving deltas:  62% (245/394)
Resolving deltas:  63% (249/394)
Resolving deltas:  64% (253/394)
Resolving deltas:  65% (257/394)
Resolving deltas:  66% (261/394)
Resolving deltas:  67% (264/394)
Resolving deltas:  68% (268/394)
Resolving deltas:  69% (272/394)
Resolving deltas:  70% (276/394)
Resolving deltas:  71% (280/394)
Resolving deltas:  72% (284/394)
Resolving deltas:  73% (288/394)
Resolving deltas:  74% (292/394)
Resolving deltas:  75% (296/394)
Resolving deltas:  76% (300/394)
Resolving deltas:  77% (304/394)
Resolving deltas:  78% (308/394)
Resolving deltas:  79% (312/394)
Resolving deltas:  80% (316/394)
Resolving deltas:  81% (320/394)
Resolving deltas:  82% (324/394)
Resolving deltas:  83% (328/394)
Resolving deltas:  84% (331/394)
Resolving deltas:  85% (335/394)
Resolving deltas:  86% (339/394)
Resolving deltas:  87% (343/394)
Resolving deltas:  88% (347/394)
Resolving deltas:  89% (351/394)
Resolving deltas:  90% (355/394)
Resolving deltas:  91% (359/394)
Resolving deltas:  92% (363/394)
Resolving deltas:  93% (367/394)
Resolving deltas:  94% (371/394)
Resolving deltas:  95% (375/394)
Resolving deltas:  96% (379/394)
Resolving deltas:  97% (383/394)
Resolving deltas:  98% (387/394)
Resolving deltas:  99% (391/394)
Resolving deltas: 100% (394/394)
Resolving deltas: 100% (394/394), done.
HEAD is now at 5b9ebbc Update dependency js-yaml to v4.2.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(`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(`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(`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: ✓ 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: ✓ 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(`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(`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(``, `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(`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(`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: ✓ apiManifestSchema(``, `v1`) = `/schemas/common/manifest-v1.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: ✓ metadataMetaschema(`12345`, `v1`) = `12345/schemas/common/metadata-metaschema.json`
    tcurls_test.go:69: ✓ metadataMetaschema(``, `v1`) = `/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(`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: ✓ 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: ✓ 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`, `/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`, ``) = `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: ✓ ui(``, `/`) = `/`
    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: ✓ 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`
    tcurls_test.go:69: ✓ apiManifest(`12345`) = `12345/references/manifest.json`
    tcurls_test.go:69: ✓ apiManifest(``) = `/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.022s
[taskcluster 2026-06-01T00:57:03.343Z]                        Exit Code: 0
[taskcluster 2026-06-01T00:57:03.343Z]                        User Time: 13.761ms
[taskcluster 2026-06-01T00:57:03.343Z]                      Kernel Time: 19.659ms
[taskcluster 2026-06-01T00:57:03.343Z]                        Wall Time: 28.556899876s
[taskcluster 2026-06-01T00:57:03.343Z]  Average Available System Memory: 14.19 GiB
[taskcluster 2026-06-01T00:57:03.343Z]       Average System Memory Used: 1.42 GiB
[taskcluster 2026-06-01T00:57:03.343Z]          Peak System Memory Used: 1.59 GiB
[taskcluster 2026-06-01T00:57:03.343Z]              Total System Memory: 15.61 GiB
[taskcluster 2026-06-01T00:57:03.343Z]                           Result: SUCCEEDED
[taskcluster 2026-06-01T00:57:03.344Z] === Task Finished ===
[taskcluster 2026-06-01T00:57:03.344Z] Task Duration: 28.5575015s