diff --git a/src/tests/kernel/core/disk_device_manager/DiskDeviceManagerTest.cpp b/src/tests/kernel/core/disk_device_manager/DiskDeviceManagerTest.cpp index f0837126f2..1ff1d9081b 100644 --- a/src/tests/kernel/core/disk_device_manager/DiskDeviceManagerTest.cpp +++ b/src/tests/kernel/core/disk_device_manager/DiskDeviceManagerTest.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -16,21 +17,30 @@ const char *kTestFileDevice = "/boot/home/tmp/test-file-device"; // main int -main() +main(int argc, char **argv) { + const char *testFileDevice = kTestFileDevice; + + if (argc > 1) + testFileDevice = argv[1]; + KDiskDeviceManager::CreateDefault(); KDiskDeviceManager *manager = KDiskDeviceManager::Default(); manager->InitialDeviceScan(); - partition_id id = manager->CreateFileDevice(kTestFileDevice); + partition_id id = manager->CreateFileDevice(testFileDevice); if (id < B_OK) printf("creating the file device failed: %s\n", strerror(id)); + // wait for scanning jobs to finish + // (that's hopefully a hack :-)) for (;;) { if (ManagerLocker locker = manager) { if (manager->CountJobs() == 0) break; } + snooze(50000); } + // print devices for (int32 cookie = 0; KDiskDevice *device = manager->RegisterNextDevice(&cookie); ) {