udev_watcher_unittest.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "device/udev_linux/udev_watcher.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace device {
  7. namespace {
  8. constexpr char kSubsystem[] = "subsystem";
  9. constexpr char kDevtype[] = "devtype";
  10. constexpr char kEmptyParam[] = "";
  11. TEST(UdevWatcherTest, FilterParamsReturnCorrectValues) {
  12. UdevWatcher::Filter subsystem_devtype_filter(kSubsystem, kDevtype);
  13. EXPECT_TRUE(subsystem_devtype_filter.subsystem());
  14. EXPECT_TRUE(subsystem_devtype_filter.devtype());
  15. base::StringPiece filter_subsystem = subsystem_devtype_filter.subsystem();
  16. base::StringPiece filter_devtype = subsystem_devtype_filter.devtype();
  17. EXPECT_EQ(kSubsystem, filter_subsystem);
  18. EXPECT_EQ(kDevtype, filter_devtype);
  19. }
  20. TEST(UdevWatcherTest, FilterTreatsEmptyStringAsDontCare) {
  21. // If an empty string is provided for |subsystem_in| or |devtype_in|,
  22. // the subsystem or devtype method should return nullptr instead of a
  23. // zero-length C string. nullptr indicates "don't care" when passed
  24. // to udev.
  25. UdevWatcher::Filter subsystem_filter(kSubsystem, kEmptyParam);
  26. EXPECT_TRUE(subsystem_filter.subsystem());
  27. EXPECT_FALSE(subsystem_filter.devtype());
  28. UdevWatcher::Filter devtype_filter(kEmptyParam, kDevtype);
  29. EXPECT_FALSE(devtype_filter.subsystem());
  30. EXPECT_TRUE(devtype_filter.devtype());
  31. }
  32. } // namespace
  33. } // namespace device