diff --git a/zircon/system/utest/async-loop/BUILD.gn b/zircon/system/ulib/async-loop/test/BUILD.gn
similarity index 89%
rename from zircon/system/utest/async-loop/BUILD.gn
rename to zircon/system/ulib/async-loop/test/BUILD.gn
index f307c542002e04e0283b05b9955fc1a32b4c83b8..319d86594fcd2412f88bef92d1d4b963be3d5599 100644
--- a/zircon/system/utest/async-loop/BUILD.gn
+++ b/zircon/system/ulib/async-loop/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 = [
+    ":async-loop",
+  ]
+}
+
 test("async-loop") {
   sources = [
     "loop_tests.cpp",
diff --git a/zircon/system/utest/async-loop/loop_tests.cpp b/zircon/system/ulib/async-loop/test/loop_tests.cpp
similarity index 100%
rename from zircon/system/utest/async-loop/loop_tests.cpp
rename to zircon/system/ulib/async-loop/test/loop_tests.cpp
diff --git a/zircon/system/utest/BUILD.gn b/zircon/system/utest/BUILD.gn
index 6fc7c0afa49f09cd9d44af7440317e934528080f..a608cdc35cc6a6d20978937f75d239b71e917195 100644
--- a/zircon/system/utest/BUILD.gn
+++ b/zircon/system/utest/BUILD.gn
@@ -53,6 +53,7 @@ if (current_cpu != "") {
       "$zx/system/uapp/disk-pave:install-disk-image-test",
       "$zx/system/uapp/nand-util:nand-util-test",
       "$zx/system/ulib/async/test",
+      "$zx/system/ulib/async-loop/test",
       "$zx/system/ulib/blobfs/test",
       "$zx/system/ulib/bootfs:bootfs-test",
       "$zx/system/ulib/c:tests",
@@ -76,7 +77,6 @@ if (current_cpu != "") {
       "$zx/system/ulib/zbi-bootfs/test:test",
       "$zx/system/ulib/zxtest/test",
       "abigen",
-      "async-loop",
       "async-testutils",
       "backtrace-request",
       "biotime",