[ddk][test] Switch usb-request-test to BTI based allocation calls

Change-Id: Ib10384cbfec3261d673b5c547521f37996b93b23
diff --git a/system/ulib/ddk/test/usb-request-test.c b/system/ulib/ddk/test/usb-request-test.c
index c622a57..6103b1e 100644
--- a/system/ulib/ddk/test/usb-request-test.c
+++ b/system/ulib/ddk/test/usb-request-test.c
@@ -5,11 +5,21 @@
 #include <limits.h>
 #include <ddk/usb-request.h>
 #include <unittest/unittest.h>
+#include <zircon/syscalls/iommu.h>
+
+extern zx_handle_t get_root_resource(void);
 
 static bool test_alloc_simple(void) {
     BEGIN_TEST;
+    zx_handle_t iommu_handle;
+    zx_handle_t bti_handle;
+    zx_iommu_desc_dummy_t desc;
+    ASSERT_EQ(zx_iommu_create(get_root_resource(), ZX_IOMMU_TYPE_DUMMY, &desc, sizeof(desc),
+                              &iommu_handle), ZX_OK, "");
+    ASSERT_EQ(zx_bti_create(iommu_handle, 0, 0, &bti_handle), ZX_OK, "");
+
     usb_request_t* req;
-    ASSERT_EQ(usb_request_alloc(&req, PAGE_SIZE * 3, 1), ZX_OK, "");
+    ASSERT_EQ(usb_request_alloc_with_bti(&req, bti_handle, PAGE_SIZE * 3, 1), ZX_OK, "");
     ASSERT_NONNULL(req, "");
     ASSERT_TRUE(io_buffer_is_valid(&req->buffer), "");
 
@@ -18,17 +28,25 @@
     ASSERT_EQ(req->buffer.phys_count, 3u, "unexpected phys count");
 
     usb_request_release(req);
+    zx_handle_close(bti_handle);
+    zx_handle_close(iommu_handle);
     END_TEST;
 }
 
 static bool test_alloc_vmo(void) {
     BEGIN_TEST;
+    zx_handle_t iommu_handle;
+    zx_handle_t bti_handle;
+    zx_iommu_desc_dummy_t desc;
+    ASSERT_EQ(zx_iommu_create(get_root_resource(), ZX_IOMMU_TYPE_DUMMY, &desc, sizeof(desc),
+                              &iommu_handle), ZX_OK, "");
+    ASSERT_EQ(zx_bti_create(iommu_handle, 0, 0, &bti_handle), ZX_OK, "");
 
     zx_handle_t vmo;
     ASSERT_EQ(zx_vmo_create(PAGE_SIZE * 4, 0, &vmo), ZX_OK, "");
 
     usb_request_t* req;
-    ASSERT_EQ(usb_request_alloc_vmo(&req, vmo, PAGE_SIZE, PAGE_SIZE * 3, 0), ZX_OK, "");
+    ASSERT_EQ(usb_request_alloc_vmo_with_bti(&req, bti_handle, vmo, PAGE_SIZE, PAGE_SIZE * 3, 0), ZX_OK, "");
 
     // Try copying some random data to and from the request.
     void* data = malloc(PAGE_SIZE * 4);
@@ -44,18 +62,27 @@
     free(data);
     free(out_data);
     usb_request_release(req);
+    zx_handle_close(bti_handle);
+    zx_handle_close(iommu_handle);
     END_TEST;
 }
 
 static bool test_pool(void) {
     BEGIN_TEST;
+    zx_handle_t iommu_handle;
+    zx_handle_t bti_handle;
+    zx_iommu_desc_dummy_t desc;
+    ASSERT_EQ(zx_iommu_create(get_root_resource(), ZX_IOMMU_TYPE_DUMMY, &desc, sizeof(desc),
+                              &iommu_handle), ZX_OK, "");
+    ASSERT_EQ(zx_bti_create(iommu_handle, 0, 0, &bti_handle), ZX_OK, "");
+
     usb_request_t* req;
-    ASSERT_EQ(usb_request_alloc(&req, 8u, 1), ZX_OK, "");
+    ASSERT_EQ(usb_request_alloc_with_bti(&req, bti_handle, 8u, 1), ZX_OK, "");
     ASSERT_NONNULL(req, "");
     ASSERT_TRUE(io_buffer_is_valid(&req->buffer), "");
 
     usb_request_t* zero_req;
-    ASSERT_EQ(usb_request_alloc(&zero_req, 0, 1), ZX_OK, "");
+    ASSERT_EQ(usb_request_alloc_with_bti(&zero_req, bti_handle, 0, 1), ZX_OK, "");
     ASSERT_NONNULL(zero_req, "");
 
     usb_request_pool_t pool;
@@ -71,6 +98,8 @@
 
     usb_request_release(req);
     usb_request_release(zero_req);
+    zx_handle_close(bti_handle);
+    zx_handle_close(iommu_handle);
     END_TEST;
 }