[tools] Replace test-all.sh with ./tools/run tests

• Simplify the usage by allowing globs, directories or single test file paths as unnamed arguments. Removes the `--filter` flag that nobody really understood.
• Make the table fit the terminal.
• Replace dawn-path with `<dawn>` in expectation files.

Change-Id: I45a0579e3589888664877c22edb575d1a4ed18c1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/161701
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/docs/tint/end-to-end-tests.md b/docs/tint/end-to-end-tests.md
index 693c1f3..d89bc14 100644
--- a/docs/tint/end-to-end-tests.md
+++ b/docs/tint/end-to-end-tests.md
@@ -16,20 +16,18 @@
 
 ## Running
 
-To run the end-to-end tests use the `<dawn>/test/test-all.sh` script, passing the path to the tint executable as the first command line argument.
+To run the end-to-end tests use the `./tools/run tests` script, passing the path to the tint executable with the `--tint` (defaulting to `./out/active/tint`):
 
-For example, if your build directory is `out/active`, then building Dawn will
-place the standalone `tint` compiler executable in that directory.  In that case
-you can run all the tests as follows:
+    ./tools/run tests
 
-    ./test/test-all.sh out/active/tint
+You can pass a list of globs, directories or file paths as extra arguments to specify what tests you
+want to run.
 
 You can pass `--help` to see the full list of command line flags.\
 The most commonly used flags are:
 
 | flag                 | description |
 |----------------------|-------------|
-|`--filter`            | Filters the testing to subset of the tests. The filter argument is a glob pattern that can include `*` for any substring of a file or directory, and `**` for any number of directories.<br>Example: `--filter 'expressions/**/i32.wgsl'` will test all the `i32.wgsl` expression tests.
 |`--format`            | Filters the tests to the particular backend.<br>Example: `--format hlsl` will just test the HLSL backend.
 |`--generate-expected` | Generate expectation files for the tests that previously had no expectation file, or were marked as `SKIP` but now pass.
 |`--generate-skip`     | Generate `SKIP` expectation files for tests that are not currently passing.
@@ -38,4 +36,4 @@
 
 Each test should be as small as possible, and focused on the particular feature being tested.
 
-Use sub-directories whenever possible to group similar tests, and try to keep the pattern of directories as consistent as possible between different tests. This helps filter tests using the `--filter` glob patterns.
+Use sub-directories whenever possible to group similar tests, and try to keep the pattern of directories as consistent as possible between different tests. This helps filter tests with glob patterns.
diff --git a/go.mod b/go.mod
index 3c87020..d84291d 100644
--- a/go.mod
+++ b/go.mod
@@ -59,8 +59,8 @@
 	go.opencensus.io v0.24.0 // indirect
 	golang.org/x/crypto v0.14.0 // indirect
 	golang.org/x/sync v0.3.0 // indirect
-	golang.org/x/sys v0.13.0 // indirect
-	golang.org/x/term v0.13.0 // indirect
+	golang.org/x/sys v0.14.0 // indirect
+	golang.org/x/term v0.14.0 // indirect
 	golang.org/x/text v0.13.0 // indirect
 	golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
 	google.golang.org/appengine v1.6.8-0.20221117013220-504804fb50de // indirect
diff --git a/go.sum b/go.sum
index cbd2110..cd3cc97 100644
--- a/go.sum
+++ b/go.sum
@@ -240,10 +240,14 @@
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
 golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
+golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
 golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
+golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8=
+golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
diff --git a/infra/kokoro/linux/docker.sh b/infra/kokoro/linux/docker.sh
index 653613f..b2cb82a 100755
--- a/infra/kokoro/linux/docker.sh
+++ b/infra/kokoro/linux/docker.sh
@@ -210,14 +210,14 @@
         hide_cmds
     fi
 
-    status "Testing test/tint/test-all.sh"
+    status "Testing end-to-end tests"
     show_cmds
-        ${SRC_DIR}/test/tint/test-all.sh "${BUILD_DIR}/tint" --verbose
+        ${SRC_DIR}/tools/run tests --tint "${BUILD_DIR}/tint" --verbose
     hide_cmds
 
-    status "Testing test/tint/test-all.sh for SPIR-V IR backend"
+    status "Testing tools/run tests for SPIR-V IR backend"
     show_cmds
-        ${SRC_DIR}/test/tint/test-all.sh "${BUILD_DIR}/tint" --verbose --format spvasm --use-ir
+        ${SRC_DIR}/tools/run tests --tint "${BUILD_DIR}/tint" --verbose --format spvasm --use-ir
     hide_cmds
 
     status "Checking _other.cc files also build"
diff --git a/infra/kokoro/windows/build.bat b/infra/kokoro/windows/build.bat
index 886ec9a..3d93c08 100644
--- a/infra/kokoro/windows/build.bat
+++ b/infra/kokoro/windows/build.bat
@@ -163,7 +163,7 @@
 tint_unittests.exe || goto :error
 @echo off
 
-call :status "Testing test/tint/test-all.sh"
+call :status "Testing end-to-end tests"
 @echo on
 cd /d %SRC_DIR% || goto :error
 rem Run tests with DXC, FXC and Metal validation
@@ -175,7 +175,7 @@
 ) else (
     set TEST_ALL_FORMATS=wgsl,spvasm,msl,hlsl,glsl
 )
-call git bash -- ./test/tint/test-all.sh %BUILD_DIR%/tint.exe --verbose --format %TEST_ALL_FORMATS% || goto :error
+call git bash -- ./tools/run tests --tint %BUILD_DIR%/tint.exe --verbose --format %TEST_ALL_FORMATS% || goto :error
 set PATH=%OLD_PATH%
 @echo off
 
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/1474-b.wgsl.expected.dxc.hlsl
index 12364d9..a18972c 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.dxc.hlsl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.dxc.hlsl
@@ -1,4 +1,4 @@
-bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
+<dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1474-b.wgsl.expected.fxc.hlsl
index 12364d9..a18972c 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.fxc.hlsl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
+<dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.glsl b/test/tint/bug/tint/1474-b.wgsl.expected.glsl
index 17a64ce..b4eff3e 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.glsl
@@ -1,4 +1,4 @@
-bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
+<dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.msl b/test/tint/bug/tint/1474-b.wgsl.expected.msl
index d76c784..7d538c7 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.msl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.msl
@@ -1,4 +1,4 @@
-bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
+<dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.spvasm b/test/tint/bug/tint/1474-b.wgsl.expected.spvasm
index ada4b04..d7d2c75 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.spvasm
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.spvasm
@@ -1,4 +1,4 @@
-bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
+<dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.wgsl b/test/tint/bug/tint/1474-b.wgsl.expected.wgsl
index 3429d58..608dcab 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.wgsl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
+<dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.dxc.hlsl
index 6467ba5..1095835 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.fxc.hlsl
index 6467ba5..1095835 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.glsl
index 3d60580..b6c4caa 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.msl
index d3df4a5..cc12273 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm
index 2427774..1b216ac 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.wgsl
index 128b5b1..6dd456b 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.dxc.hlsl
index c8b01eea..69080f2 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
     if (x > 0) {
     ^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
     if (x > 0) {
         ^
 
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.fxc.hlsl
index c8b01eea..69080f2 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
     if (x > 0) {
     ^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
     if (x > 0) {
         ^
 
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.glsl
index d5ebf79..f5c26cd 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
     if (x > 0) {
     ^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
     if (x > 0) {
         ^
 
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.msl
index 4bee30a..7e429ff 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
     if (x > 0) {
     ^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
     if (x > 0) {
         ^
 
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.spvasm
index fc88e42..7545108 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
     if (x > 0) {
     ^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
     if (x > 0) {
         ^
 
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.wgsl
index bdbee1a..d9c1efd 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:5 note: control flow depends on possibly non-uniform value
     if (x > 0) {
     ^^
 
-diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl:7:9 note: user-defined input 'x' of 'main' may be non-uniform
     if (x > 0) {
         ^
 
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.dxc.hlsl
index 9d09adf..564755f 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.fxc.hlsl
index 9d09adf..564755f 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.glsl
index 7251735..6e4ed32 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.msl
index a7fa4e1..8ba0d2b 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.spvasm
index d777078..da201a0 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.wgsl
index 713dc9d..414ed34 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:8:11 warning: 'textureSample' must only be called from uniform control flow
       _ = textureSample(t, s, vec2(0, 0));
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) {
   ^^^^^^
 
-diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl:6:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/directive.wgsl.expected.dxc.hlsl
index bd9bb34..86ec60b 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/directive.wgsl.expected.fxc.hlsl
index bd9bb34..86ec60b 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.glsl b/test/tint/diagnostic_filtering/directive.wgsl.expected.glsl
index ab24431..a50ebec 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.msl b/test/tint/diagnostic_filtering/directive.wgsl.expected.msl
index 83db86f..3edac24 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/directive.wgsl.expected.spvasm
index 2ad0bcb..33e1d35 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/directive.wgsl.expected.wgsl
index c41d70e..91dcf6d 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:9:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/directive.wgsl:8:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.dxc.hlsl
index 98e2af5..9258f07 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.fxc.hlsl
index 98e2af5..9258f07 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.glsl
index d9b5545..b9e724f 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.msl
index e223252..351f979 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.spvasm
index 34dd8ae..80ae665 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.wgsl
index b0fdb8f..355e2b0 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.dxc.hlsl
index 9400af7..798c54d 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.fxc.hlsl
index 9400af7..798c54d 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.glsl
index edd028f..fafe45f 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.msl
index 3583008..6a945fa 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.spvasm
index e59c45a..ef8afdc 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.wgsl
index f64b722..64b17f0 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.dxc.hlsl
index 560765d..21667c1 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
   ^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.fxc.hlsl
index 560765d..21667c1 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
   ^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.glsl
index d2565f0..efd5a6c 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
   ^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.msl
index bf82a9a..90587efd 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
   ^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm
index 302b2a4..34c425f 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
   ^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.wgsl
index cec593b..4157fb5 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
   ^^^
 
-diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.dxc.hlsl
index 47b4528..85d32ae 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x; ) @diagnostic(warning, derivative_uniformity) {
   ^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.glsl
index bec2c30..53f7fed 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x; ) @diagnostic(warning, derivative_uniformity) {
   ^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.msl
index cd1b000..4335d2f 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x; ) @diagnostic(warning, derivative_uniformity) {
   ^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.spvasm
index 41dd99e..c8aabf8 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x; ) @diagnostic(warning, derivative_uniformity) {
   ^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.wgsl
index 60252ba..b134d61 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   for (; x > v.x; ) @diagnostic(warning, derivative_uniformity) {
   ^^^
 
-diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.dxc.hlsl
index f1d82ad..d3ca32f 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.fxc.hlsl
index f1d82ad..d3ca32f 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.glsl
index 49dbd4d..c210ca5 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.msl
index 2929ed0..83f50fe 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.spvasm
index 98a9836..24c7c9e 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.wgsl
index b67e34b..3219222 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.dxc.hlsl
index a5cb879..9ce0bb8 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.fxc.hlsl
index a5cb879..9ce0bb8 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.glsl
index 300448d..5c4eb20 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.msl
index 87809d2..d69cb8d 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.spvasm
index 22d03c2..8ba4515 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.wgsl
index 0aba7b9..01069f2 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/function_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.dxc.hlsl
index 968c059..9154d1d 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
   ^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.fxc.hlsl
index 968c059..9154d1d 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
   ^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.glsl
index d7073ff..ec4a904 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
   ^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.msl
index 68a42db..07bc9c0 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
   ^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.spvasm
index 88e8f6d..533a15d 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
   ^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.wgsl
index 5bfad32..f488be9 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
     _ = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
   ^^
 
-diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.dxc.hlsl
index 54e3e92..13f36cb 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.fxc.hlsl
index 54e3e92..13f36cb 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.glsl
index 79434b5..3c45508 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.msl
index 6b2d12b..689da4e 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.spvasm
index d23951c..0c53d71 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.wgsl
index bc8f8dd..281b60f 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   if (x > 0) {
   ^^
 
-diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:7:7 note: user-defined input 'x' of 'main' may be non-uniform
   if (x > 0) {
       ^
 
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.dxc.hlsl
index 00a9ac5..f15782f 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.fxc.hlsl
index 00a9ac5..f15782f 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.glsl
index d98b7a8c..0db27ea 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.msl
index ad66d56..5de56a9 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.spvasm
index 0c887f0..2de9615 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.wgsl
index 6bd3050..498b589 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.dxc.hlsl
index f15f8b1..4dc3724 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.fxc.hlsl
index f15f8b1..4dc3724 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.glsl
index 87cbb48..724cfe7 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.msl
index b71bb5d..796b68c 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.spvasm
index 39c6074..ce95602 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.wgsl
index b13921b..dd0f0a4 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.dxc.hlsl
index f1d8d13..5460a69 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.fxc.hlsl
index f1d8d13..5460a69 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.glsl
index 4794a47..7c553a1 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.msl
index 5eadb5d..c57d216 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.spvasm
index b4837c0..d1c7513 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.wgsl
index b2f284c..041ae59 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value
       break if x > 0.0;
       ^^^^^
 
-diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform
       break if x > 0.0;
                ^
 
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.dxc.hlsl
index eb7b7d4..97e8269 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
   ^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.fxc.hlsl
index eb7b7d4..97e8269 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
   ^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.glsl
index 06f82a0..bb9b4c0 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
   ^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.msl
index e1b9131..164c3f5 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
   ^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.spvasm
index 69b01be..6649b62 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
   ^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.wgsl
index 0c3a256..078b5c7 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:3 note: control flow depends on possibly non-uniform value
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
   ^^^^^^
 
-diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:3:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.dxc.hlsl
index 45d0756..2da3980 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                        ^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.fxc.hlsl
index 45d0756..2da3980 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                        ^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.glsl
index 608302f..bb50f5f 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                        ^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.msl
index c75db53..cd78f8c 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                        ^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm
index 6f4c569..e11f582 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                        ^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.wgsl
index 1ed3a61..428a4c1 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                        ^^
 
-diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.dxc.hlsl
index 9d6319b..f724471 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
   ^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.fxc.hlsl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.fxc.hlsl
index 9d6319b..f724471 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
   ^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.glsl
index a37e0fb6..cb82c55 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
   ^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.msl
index 2549ca8..df56d48 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
   ^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm
index b4ed2fc..523e3e9 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
   ^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.wgsl
index fb738ce..87a4384 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
   ^^^^^
 
-diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.dxc.hlsl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.dxc.hlsl
index ab156c4..3e2ce99 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   while (x > v.x) @diagnostic(warning, derivative_uniformity) {
   ^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.glsl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.glsl
index c1c0401..d6ad4a8 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.glsl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.glsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   while (x > v.x) @diagnostic(warning, derivative_uniformity) {
   ^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.msl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.msl
index b3fedd9..657eb2d 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.msl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.msl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   while (x > v.x) @diagnostic(warning, derivative_uniformity) {
   ^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.spvasm b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.spvasm
index a834845..3cb5ff2 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.spvasm
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   while (x > v.x) @diagnostic(warning, derivative_uniformity) {
   ^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.wgsl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.wgsl
index c04aa36..61d80e3 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.wgsl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:7:3 note: control flow depends on possibly non-uniform value
   while (x > v.x) @diagnostic(warning, derivative_uniformity) {
   ^^^^^
 
-diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
+<dawn>/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl:8:9 note: return value of 'textureSample' may be non-uniform
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/test/tint/test-all.sh b/test/tint/test-all.sh
deleted file mode 100755
index d9642a6..0000000
--- a/test/tint/test-all.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/bash
-
-# Copyright 2021 The Dawn & Tint Authors
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice, this
-#    list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-#    this list of conditions and the following disclaimer in the documentation
-#    and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its
-#    contributors may be used to endorse or promote products derived from
-#    this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-set -e # Fail on any error.
-
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
-
-function usage() {
-    echo "test-all.sh is a simple wrapper around <tint>/tools/test-runner that"
-    echo "injects the <tint>/test directory as the second command line argument"
-    echo
-    echo "Usage of test-runner:"
-    "${SCRIPT_DIR}/../../tools/run" "test-runner" --help
-}
-
-TINT="$1"
-
-if [ -z "$TINT" ]; then
-    echo "error: missing argument: location of the 'tint' executable"
-    echo
-    usage
-    exit 1
-fi
-if [ ! -x "$TINT" ]; then
-    echo "error: invalid argument: location of the 'tint' executable"
-    echo
-    usage
-    exit 1
-fi
-
-"${SCRIPT_DIR}/../../tools/run" "test-runner" "${@:2}" "${TINT}" "${SCRIPT_DIR}"
diff --git a/tools/src/cmd/test-runner/main.go b/tools/src/cmd/tests/main.go
similarity index 83%
rename from tools/src/cmd/test-runner/main.go
rename to tools/src/cmd/tests/main.go
index 791ea03..9866c9c 100644
--- a/tools/src/cmd/test-runner/main.go
+++ b/tools/src/cmd/tests/main.go
@@ -25,7 +25,7 @@
 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// test-runner runs tint against a number of test shaders checking for expected behavior
+// tests runs tint against a number of test shaders checking for expected behavior
 package main
 
 import (
@@ -37,6 +37,7 @@
 	"io/ioutil"
 	"os"
 	"os/exec"
+	"path"
 	"path/filepath"
 	"regexp"
 	"runtime"
@@ -47,8 +48,11 @@
 
 	"dawn.googlesource.com/dawn/tools/src/fileutils"
 	"dawn.googlesource.com/dawn/tools/src/glob"
+	"dawn.googlesource.com/dawn/tools/src/match"
+	"dawn.googlesource.com/dawn/tools/src/transform"
 	"github.com/fatih/color"
 	"github.com/sergi/go-diff/diffmatchpatch"
+	"golang.org/x/term"
 )
 
 type outputFormat string
@@ -64,14 +68,27 @@
 	wgsl    = outputFormat("wgsl")
 )
 
+// The root directory of the dawn project
+var dawnRoot = fileutils.DawnRoot()
+
+// The default non-flag arguments to the command
+var defaultArgs = []string{"test/tint"}
+
+// The globs automatically appended if a glob argument is a directory
+var directoryGlobs = []string{
+	"**.wgsl",
+	"**.spvasm",
+	"**.spv",
+}
+
 // Directories we don't generate expected PASS result files for.
 // These directories contain large corpora of tests for which the generated code
 // is uninteresting.
 // These paths use unix-style slashes and do not contain the '/test/tint' prefix.
 var dirsWithNoPassExpectations = []string{
-	"benchmark/",
-	"unittest/",
-	"vk-gl-cts/",
+	dawnRoot + "/test/tint/benchmark/",
+	dawnRoot + "/test/tint/unittest/",
+	dawnRoot + "/test/tint/vk-gl-cts/",
 }
 
 func main() {
@@ -82,98 +99,116 @@
 }
 
 func showUsage() {
-	fmt.Println(`
-test-runner runs tint against a number of test shaders checking for expected behavior
+	fmt.Printf(`
+tests runs tint against a number of test shaders checking for expected behavior
 
 usage:
-  test-runner [flags...] <executable> [<directory>]
+  tests [flags...] [globs...]
 
-  <executable> the path to the tint executable
-  <directory>  the root directory of the test files
+  [globs]  a list of project-root relative file globs, directory or file paths
+           of test cases.
+           A file path will be added to the test list.
+           A directory will automatically expand to the globs:
+                %v
+           Globs will include all test files that match the glob, but exclude
+		   those that match the --ignore flag.
+           If omitted, defaults to: %v
 
-optional flags:`)
+optional flags:`,
+		transform.SliceNoErr(directoryGlobs, func(in string) string { return fmt.Sprintf("'<dir>/%v'", in) }),
+		transform.SliceNoErr(defaultArgs, func(in string) string { return fmt.Sprintf("'%v'", in) }))
 	flag.PrintDefaults()
 	fmt.Println(``)
 	os.Exit(1)
 }
 
 func run() error {
-	var formatList, filter, dxcPath, fxcPath, xcrunPath string
-	var maxFilenameColumnWidth int
+	terminalWidth, _, err := term.GetSize(int(os.Stdout.Fd()))
+	if err != nil {
+		terminalWidth = 0
+	}
+
+	var formatList, ignore, dxcPath, fxcPath, tintPath, xcrunPath string
+	var maxTableWidth int
 	numCPU := runtime.NumCPU()
 	verbose, useIr, generateExpected, generateSkip := false, false, false, false
 	flag.StringVar(&formatList, "format", "all", "comma separated list of formats to emit. Possible values are: all, wgsl, spvasm, msl, hlsl, hlsl-dxc, hlsl-fxc, glsl")
-	flag.StringVar(&filter, "filter", "**.wgsl, **.spvasm, **.spv", "comma separated list of glob patterns for test files")
+	flag.StringVar(&ignore, "ignore", "**.expected.*", "files to ignore in globs")
 	flag.StringVar(&dxcPath, "dxc", "", "path to DXC executable for validating HLSL output")
 	flag.StringVar(&fxcPath, "fxc", "", "path to FXC DLL for validating HLSL output")
+	flag.StringVar(&tintPath, "tint", defaultTintPath(), "path to the tint executable")
 	flag.StringVar(&xcrunPath, "xcrun", "", "path to xcrun executable for validating MSL output")
 	flag.BoolVar(&verbose, "verbose", false, "print all run tests, including rows that all pass")
 	flag.BoolVar(&useIr, "use-ir", false, "generate with the IR enabled")
 	flag.BoolVar(&generateExpected, "generate-expected", false, "create or update all expected outputs")
 	flag.BoolVar(&generateSkip, "generate-skip", false, "create or update all expected outputs that fail with SKIP")
 	flag.IntVar(&numCPU, "j", numCPU, "maximum number of concurrent threads to run tests")
-	flag.IntVar(&maxFilenameColumnWidth, "filename-column-width", 0, "maximum width of the filename column")
+	flag.IntVar(&maxTableWidth, "table-width", terminalWidth, "maximum width of the results table")
 	flag.Usage = showUsage
 	flag.Parse()
 
-	args := flag.Args()
-	if len(args) == 0 {
+	// Check the executable can be found and actually is executable
+	if !fileutils.IsExe(tintPath) {
+		fmt.Fprintln(os.Stderr, "tint executable not found, please specify with --tint")
 		showUsage()
 	}
 
-	// executable path is the first argument
-	exe, args := args[0], args[1:]
-
-	// (optional) target directory is the second argument
-	dir := "."
-	if len(args) > 0 {
-		dir, args = args[0], args[1:]
+	// Apply default args, if not provided
+	args := flag.Args()
+	if len(args) == 0 {
+		args = defaultArgs
 	}
 
-	// Check the executable can be found and actually is executable
-	if !fileutils.IsExe(exe) {
-		return fmt.Errorf("'%s' not found or is not executable", exe)
-	}
-	exe, err := filepath.Abs(exe)
-	if err != nil {
-		return err
+	filePredicate := func(s string) bool { return true }
+	if m, err := match.New(ignore); err == nil {
+		filePredicate = func(s string) bool { return !m(s) }
+	} else {
+		return fmt.Errorf("failed to parse --ignore: %w", err)
 	}
 
-	// Allow using '/' in the filter on Windows
-	filter = strings.ReplaceAll(filter, "/", string(filepath.Separator))
+	// Transform args to globs, find the rootPath directory
+	absFiles := []string{}
+	rootPath := ""
+	globs := []string{}
+	for _, arg := range args {
+		// Make absolute
+		if !filepath.IsAbs(arg) {
+			arg = filepath.Join(dawnRoot, arg)
+		}
 
-	// Split the --filter flag up by ',', trimming any whitespace at the start and end
-	globIncludes := strings.Split(filter, ",")
-	for i, s := range globIncludes {
-		s = filepath.ToSlash(s) // Replace '\' with '/'
-		globIncludes[i] = `"` + strings.TrimSpace(s) + `"`
-	}
-
-	// Glob the files to test
-	files, err := glob.Scan(dir, glob.MustParseConfig(`{
-		"paths": [
-			{
-				"include": [ `+strings.Join(globIncludes, ",")+` ]
-			},
-			{
-				"exclude": [
-					"**.expected.wgsl",
-					"**.expected.spvasm",
-					"**.expected.ir.spvasm",
-					"**.expected.msl",
-					"**.expected.fxc.hlsl",
-					"**.expected.dxc.hlsl",
-					"**.expected.glsl"
-				]
+		switch {
+		case fileutils.IsDir(arg):
+			// Argument is to a directory, expand out to N globs
+			for _, glob := range directoryGlobs {
+				globs = append(globs, path.Join(arg, glob))
 			}
-		]
-	}`))
-	if err != nil {
-		return fmt.Errorf("Failed to glob files: %w", err)
+		case fileutils.IsFile(arg):
+			// Argument is a file, append to absFiles
+			absFiles = append(absFiles, arg)
+		default:
+			globs = append(globs, arg)
+		}
+
+		if rootPath == "" {
+			rootPath = filepath.Dir(arg)
+		} else {
+			rootPath = fileutils.CommonRootDir(rootPath, arg)
+		}
+	}
+
+	// Glob the absFiles to test
+	for _, g := range globs {
+		globFiles, err := glob.Glob(g)
+		if err != nil {
+			return fmt.Errorf("Failed to glob files: %w", err)
+		}
+		filtered := transform.Filter(globFiles, filePredicate)
+		normalized := transform.SliceNoErr(filtered, filepath.ToSlash)
+		absFiles = append(absFiles, normalized...)
 	}
 
 	// Ensure the files are sorted (globbing should do this, but why not)
-	sort.Strings(files)
+	sort.Strings(absFiles)
 
 	// Parse --format into a list of outputFormat
 	formats := []outputFormat{}
@@ -255,8 +290,8 @@
 
 	// Build the list of results.
 	// These hold the chans used to report the job results.
-	results := make([]map[outputFormat]chan status, len(files))
-	for i := range files {
+	results := make([]map[outputFormat]chan status, len(absFiles))
+	for i := range absFiles {
 		fileResults := map[outputFormat]chan status{}
 		for _, format := range formats {
 			fileResults[format] = make(chan status, 1)
@@ -268,8 +303,8 @@
 
 	// Spawn numCPU job runners...
 	runCfg := runConfig{
-		wd:               dir,
-		exe:              exe,
+		rootPath:         rootPath,
+		tintPath:         tintPath,
 		dxcPath:          dxcPath,
 		fxcPath:          fxcPath,
 		xcrunPath:        xcrunPath,
@@ -288,8 +323,7 @@
 
 	// Issue the jobs...
 	go func() {
-		for i, file := range files { // For each test file...
-			file := filepath.Join(dir, file)
+		for i, file := range absFiles { // For each test file...
 			flags := parseFlags(file)
 			for _, format := range formats { // For each output format...
 				pendingJobs <- job{
@@ -320,11 +354,31 @@
 		statsByFmt[format] = &stats{}
 	}
 
+	// Make file paths relative to rootPath, if possible
+	relFiles := transform.GoSliceNoErr(absFiles, func(path string) string {
+		path = filepath.ToSlash(path) // Normalize
+		if rel, err := filepath.Rel(rootPath, path); err == nil {
+			return rel
+		}
+		return path
+	})
+
 	// Print the table of file x format and gather per-format stats
 	failures := []failure{}
-	filenameColumnWidth := maxStringLen(files)
-	if maxFilenameColumnWidth > 0 {
-		filenameColumnWidth = maxFilenameColumnWidth
+	filenameColumnWidth := maxStringLen(relFiles)
+
+	// Calculate the table width
+	tableWidth := filenameColumnWidth + 3
+	for _, format := range formats {
+		tableWidth += formatWidth(format) + 3
+	}
+
+	// Reduce filename column width if too big
+	if tableWidth > maxTableWidth {
+		filenameColumnWidth -= tableWidth - maxTableWidth
+		if filenameColumnWidth < 20 {
+			filenameColumnWidth = 20
+		}
 	}
 
 	red := color.New(color.FgRed)
@@ -358,7 +412,7 @@
 
 	newKnownGood := knownGoodHashes{}
 
-	for i, file := range files {
+	for i, file := range relFiles {
 		results := results[i]
 
 		row := &strings.Builder{}
@@ -560,8 +614,8 @@
 }
 
 type runConfig struct {
-	wd               string
-	exe              string
+	rootPath         string
+	tintPath         string
 	dxcPath          string
 	fxcPath          string
 	xcrunPath        string
@@ -591,7 +645,7 @@
 
 		// Is there an expected output file? If so, load it.
 		expected, expectedFileExists := "", false
-		if content, err := ioutil.ReadFile(expectedFilePath); err == nil {
+		if content, err := os.ReadFile(expectedFilePath); err == nil {
 			expected = string(content)
 			expectedFileExists = true
 		}
@@ -603,17 +657,8 @@
 
 		expected = strings.ReplaceAll(expected, "\r\n", "\n")
 
-		file, err := filepath.Rel(cfg.wd, j.file)
-		if err != nil {
-			file = j.file
-		}
-
-		// Make relative paths use forward slash separators (on Windows) so that paths in tint
-		// output match expected output that contain errors
-		file = strings.ReplaceAll(file, `\`, `/`)
-
 		args := []string{
-			file,
+			j.file,
 			"--format", strings.Split(string(j.format), "-")[0], // 'hlsl-fxc' -> 'hlsl', etc.
 			"--print-hash",
 		}
@@ -624,7 +669,7 @@
 
 		// Append any skip-hashes, if they're found.
 		if j.format != "wgsl" { // Don't skip 'wgsl' as this 'toolchain' is ever changing.
-			if skipHashes := cfg.validationCache.knownGood[fileAndFormat{file, j.format}]; len(skipHashes) > 0 {
+			if skipHashes := cfg.validationCache.knownGood[fileAndFormat{j.file, j.format}]; len(skipHashes) > 0 {
 				args = append(args, "--skip-hash", strings.Join(skipHashes, ","))
 			}
 		}
@@ -663,23 +708,24 @@
 		args = append(args, j.flags...)
 
 		start := time.Now()
-		ok, out = invoke(cfg.wd, cfg.exe, args...)
+		ok, out = invoke(cfg.rootPath, cfg.tintPath, args...)
 		timeTaken := time.Since(start)
 
 		out = strings.ReplaceAll(out, "\r\n", "\n")
+		out = strings.ReplaceAll(out, filepath.ToSlash(dawnRoot), "<dawn>")
 		out, hashes := extractValidationHashes(out)
 		matched := expected == "" || expected == out
 
 		canEmitPassExpectationFile := true
 		for _, noPass := range dirsWithNoPassExpectations {
-			if strings.HasPrefix(file, noPass) {
+			if strings.HasPrefix(j.file, noPass) {
 				canEmitPassExpectationFile = false
 				break
 			}
 		}
 
 		saveExpectedFile := func(path string, content string) error {
-			return ioutil.WriteFile(path, []byte(content), 0666)
+			return os.WriteFile(path, []byte(content), 0666)
 		}
 
 		if ok && cfg.generateExpected && (validate || !skipped) {
@@ -998,3 +1044,13 @@
 	enc.SetIndent("", "  ")
 	return enc.Encode(&out)
 }
+
+// defaultRootPath returns the default path to the root of the test tree
+func defaultRootPath() string {
+	return filepath.Join(fileutils.DawnRoot(), "test/tint")
+}
+
+// defaultTintPath returns the default path to the tint executable
+func defaultTintPath() string {
+	return filepath.Join(fileutils.DawnRoot(), "out/active/tint")
+}
diff --git a/tools/src/fileutils/paths.go b/tools/src/fileutils/paths.go
index e6f03f8..a2edcfb 100644
--- a/tools/src/fileutils/paths.go
+++ b/tools/src/fileutils/paths.go
@@ -137,3 +137,29 @@
 	}
 	return !s.IsDir()
 }
+
+// CommonRootDir returns the common directory for pathA and pathB
+func CommonRootDir(pathA, pathB string) string {
+	pathA, pathB = filepath.ToSlash(pathA), filepath.ToSlash(pathB) // Normalize to forward-slash
+	if !strings.HasSuffix(pathA, "/") {
+		pathA += "/"
+	}
+	if !strings.HasSuffix(pathB, "/") {
+		pathB += "/"
+	}
+	n := len(pathA)
+	if len(pathB) < n {
+		n = len(pathB)
+	}
+	common := ""
+	for i := 0; i < n; i++ {
+		a, b := pathA[i], pathB[i]
+		if a != b {
+			break
+		}
+		if a == '/' {
+			common = pathA[:i+1]
+		}
+	}
+	return common
+}
diff --git a/tools/src/fileutils/paths_test.go b/tools/src/fileutils/paths_test.go
index 46102b9..ec0f1d3 100644
--- a/tools/src/fileutils/paths_test.go
+++ b/tools/src/fileutils/paths_test.go
@@ -62,3 +62,26 @@
 		t.Errorf("DawnRoot() returned %v.\n%v", dr, diff)
 	}
 }
+
+func TestCommonRootDir(t *testing.T) {
+	for _, test := range []struct {
+		a, b   string
+		expect string
+	}{
+		{"", "", "/"},
+		{"a/b/c", "d/e/f", ""},
+		{"a/", "b", ""},
+		{"a/b/c", "a/b", "a/b/"},
+		{"a/b/c/", "a/b", "a/b/"},
+		{"a/b/c/", "a/b/", "a/b/"},
+		{"a/b/c", "a/b/d", "a/b/"},
+		{"a/b/c", "a/bc", "a/"},
+	} {
+		if got := fileutils.CommonRootDir(test.a, test.b); got != test.expect {
+			t.Errorf("CommonRootDir('%v', '%v') returned '%v'.\nExpected: '%v'", test.a, test.b, got, test.expect)
+		}
+		if got := fileutils.CommonRootDir(test.b, test.a); got != test.expect {
+			t.Errorf("CommonRootDir('%v', '%v') returned '%v'.\nExpected: '%v'", test.b, test.a, got, test.expect)
+		}
+	}
+}
diff --git a/tools/src/glob/glob.go b/tools/src/glob/glob.go
index 0e05306..94648d3 100644
--- a/tools/src/glob/glob.go
+++ b/tools/src/glob/glob.go
@@ -71,7 +71,7 @@
 		}
 	}
 	// No wildcard found. Does the file exist at 'str'?
-	if s, err := os.Stat(str); err != nil && !s.IsDir() {
+	if s, err := os.Stat(str); err == nil && !s.IsDir() {
 		return []string{str}, nil
 	}
 	return []string{}, nil
diff --git a/tools/src/transform/slice.go b/tools/src/transform/slice.go
index de118bc..1f965a0 100644
--- a/tools/src/transform/slice.go
+++ b/tools/src/transform/slice.go
@@ -66,6 +66,15 @@
 	return out, nil
 }
 
+// SliceNoErr returns a new slice by transforming each element with the function fn
+func SliceNoErr[IN any, OUT any](in []IN, fn func(in IN) OUT) []OUT {
+	out := make([]OUT, len(in))
+	for i, el := range in {
+		out[i] = fn(el)
+	}
+	return out
+}
+
 // GoSlice returns a new slice by transforming each element with the function
 // fn, called by multiple go-routines.
 func GoSlice[IN any, OUT any](in []IN, fn func(in IN) (OUT, error)) ([]OUT, error) {
@@ -102,3 +111,35 @@
 
 	return out, nil
 }
+
+// GoSliceNoErr returns a new slice by transforming each element with the function
+// fn, called by multiple go-routines.
+func GoSliceNoErr[IN any, OUT any](in []IN, fn func(in IN) OUT) []OUT {
+
+	// Create a channel of indices
+	indices := make(chan int, 256)
+	go func() {
+		for i := range in {
+			indices <- i
+		}
+		close(indices)
+	}()
+
+	out := make([]OUT, len(in))
+
+	// Kick a number of workers to process the elements
+	numWorkers := runtime.NumCPU()
+	wg := sync.WaitGroup{}
+	wg.Add(numWorkers)
+	for worker := 0; worker < numWorkers; worker++ {
+		go func() {
+			defer wg.Done()
+			for idx := range indices {
+				out[idx] = fn(in[idx])
+			}
+		}()
+	}
+	wg.Wait()
+
+	return out
+}