diff --git a/zircon/system/utest/fs-vnode/BUILD.gn b/zircon/system/ulib/fs/test/BUILD.gn
similarity index 93%
rename from zircon/system/utest/fs-vnode/BUILD.gn
rename to zircon/system/ulib/fs/test/BUILD.gn
index f7532d2616cace167b928ce72315c0741f01a0eb..913c2c650ead9f7d7efa277d4dd8df55408d9a7d 100644
--- a/zircon/system/utest/fs-vnode/BUILD.gn
+++ b/zircon/system/ulib/fs/test/BUILD.gn
@@ -2,6 +2,13 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+group("test") {
+  testonly = true
+  deps = [
+    ":fs-vnode",
+  ]
+}
+
 test("fs-vnode") {
   sources = [
     "lazy-dir-tests.cpp",
diff --git a/zircon/system/utest/fs-vnode/lazy-dir-tests.cpp b/zircon/system/ulib/fs/test/lazy-dir-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/lazy-dir-tests.cpp
rename to zircon/system/ulib/fs/test/lazy-dir-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/pseudo-dir-tests.cpp b/zircon/system/ulib/fs/test/pseudo-dir-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/pseudo-dir-tests.cpp
rename to zircon/system/ulib/fs/test/pseudo-dir-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/pseudo-file-tests.cpp b/zircon/system/ulib/fs/test/pseudo-file-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/pseudo-file-tests.cpp
rename to zircon/system/ulib/fs/test/pseudo-file-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/remote-dir-tests.cpp b/zircon/system/ulib/fs/test/remote-dir-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/remote-dir-tests.cpp
rename to zircon/system/ulib/fs/test/remote-dir-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/service-tests.cpp b/zircon/system/ulib/fs/test/service-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/service-tests.cpp
rename to zircon/system/ulib/fs/test/service-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/teardown-tests.cpp b/zircon/system/ulib/fs/test/teardown-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/teardown-tests.cpp
rename to zircon/system/ulib/fs/test/teardown-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/tracked-remote-dir-tests.cpp b/zircon/system/ulib/fs/test/tracked-remote-dir-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/tracked-remote-dir-tests.cpp
rename to zircon/system/ulib/fs/test/tracked-remote-dir-tests.cpp
diff --git a/zircon/system/utest/fs-vnode/vmo-file-tests.cpp b/zircon/system/ulib/fs/test/vmo-file-tests.cpp
similarity index 100%
rename from zircon/system/utest/fs-vnode/vmo-file-tests.cpp
rename to zircon/system/ulib/fs/test/vmo-file-tests.cpp
diff --git a/zircon/system/utest/BUILD.gn b/zircon/system/utest/BUILD.gn
index bad8c778799c8ab7b62d86e6f34fac5e3fe6ad59..282d11d3dfcc79092fba2569e6ace8dde849982e 100644
--- a/zircon/system/utest/BUILD.gn
+++ b/zircon/system/utest/BUILD.gn
@@ -70,6 +70,7 @@ if (current_cpu != "") {
       "$zx/system/ulib/disk-inspector/test",
       "$zx/system/ulib/driver-integration-test/test",
       "$zx/system/ulib/fbl/test",
+      "$zx/system/ulib/fs/test",
       "$zx/system/ulib/fvm/test",
       "$zx/system/ulib/fzl/test",
       "$zx/system/ulib/gpt/test",
@@ -133,7 +134,6 @@ if (current_cpu != "") {
       "fs-management",
       "fs-recovery",
       "fs-test-utils",
-      "fs-vnode",
       "futex-ownership",
       "fvm",
       "getentropy",