diff --git a/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp b/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp index cd7692555f..ba779d115b 100644 --- a/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp +++ b/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -374,12 +375,127 @@ private: BObjectList fDevices; }; +class MyDeviceList : public BDiskDeviceList { +public: + MyDeviceList(bool useOwnLocker) + : BDiskDeviceList(useOwnLocker) + { + } + + virtual void MountPointMoved(BPartition *partition) + { + printf("MountPointMoved()\n"); + DumpVisitor().Visit(partition); + } + + virtual void PartitionMounted(BPartition *partition) + { + printf("PartitionMounted()\n"); + DumpVisitor().Visit(partition); + } + + virtual void PartitionUnmounted(BPartition *partition) + { + printf("PartitionUnmounted()\n"); + DumpVisitor().Visit(partition); + } + + virtual void PartitionChanged(BPartition *partition) + { + printf("PartitionChanged()\n"); + DumpVisitor().Visit(partition); + } + + virtual void PartitionAdded(BPartition *partition) + { + printf("PartitionAdded()\n"); + DumpVisitor().Visit(partition); + } + + virtual void PartitionRemoved(BPartition *partition) + { + printf("PartitionRemoved()\n"); + DumpVisitor().Visit(partition); + } + + virtual void SessionAdded(BSession *session) + { + printf("SessionAdded()\n"); + DumpVisitor().Visit(session); + } + + virtual void SessionRemoved(BSession *session) + { + printf("SessionRemoved()\n"); + DumpVisitor().Visit(session); + } + + virtual void MediaChanged(BDiskDevice *device) + { + printf("MediaChanged()\n"); + DumpVisitor().Visit(device); + } + + virtual void DeviceAdded(BDiskDevice *device) + { + printf("DeviceAdded()\n"); + DumpVisitor().Visit(device); + } + + virtual void DeviceRemoved(BDiskDevice *device) + { + printf("DeviceRemoved()\n"); + DumpVisitor().Visit(device); + } +}; + + +// TestApp2 +class TestApp2 : public BApplication { +public: + TestApp2(const char *signature) + : BApplication(signature), + fDeviceList(false) + { + printf("dumping empty list...\n"); + DumpVisitor visitor; + fDeviceList.Traverse(&visitor); + printf("dumping done\n"); + printf("fetching\n"); + status_t error = fDeviceList.Fetch(); + if (error == B_OK) + fDeviceList.Traverse(&visitor); + else + printf("fetching failed: %s\n", strerror(error)); + printf("unset\n"); + fDeviceList.Unset(); + printf("dumping empty list...\n"); + fDeviceList.Traverse(&visitor); + printf("dumping done\n"); + AddHandler(&fDeviceList); + error = fDeviceList.Fetch(); + if (error != B_OK) + printf("fetching failed: %s\n", strerror(error)); + } + + ~TestApp2() + { + Lock(); + RemoveHandler(&fDeviceList); + Unlock(); + } + +private: + MyDeviceList fDeviceList; +}; + // main int main() { init_roster(); // ----------- +/* TestApp app("application/x-vnd.obos-disk-device-test"); BDiskDeviceRoster roster; DumpVisitor visitor; @@ -393,6 +509,9 @@ main() error = roster.StopWatching(BMessenger(&app)); if (error != B_OK) printf("stop watching failed: %s\n", strerror(error)); +*/ + TestApp2 app("application/x-vnd.obos-disk-device-test"); + app.Run(); return 0; } diff --git a/src/tests/kits/storage/disk_device/Jamfile b/src/tests/kits/storage/disk_device/Jamfile index 67b3665e22..88e0bd0489 100644 --- a/src/tests/kits/storage/disk_device/Jamfile +++ b/src/tests/kits/storage/disk_device/Jamfile @@ -14,6 +14,7 @@ SimpleTest DiskDeviceTest # instead, we couldn't use any GUI. At least not at this time. # DiskDevice.cpp + DiskDeviceList.cpp DiskDevicePrivate.cpp DiskDeviceRoster.cpp DiskDeviceVisitor.cpp