dbus: Use randomly generated string as a TestService's service name

To run tests parallelly.

BUG=571274
TEST=dbus_unittests

Review URL: https://codereview.chromium.org/1559873005

Cr-Commit-Position: refs/heads/master@{#367499}


CrOS-Libchrome-Original-Commit: 067d84f52f2ec47c2614108be6bf0e11552eb34b
diff --git a/dbus/end_to_end_async_unittest.cc b/dbus/end_to_end_async_unittest.cc
index 121c660..8f62864 100644
--- a/dbus/end_to_end_async_unittest.cc
+++ b/dbus/end_to_end_async_unittest.cc
@@ -63,7 +63,7 @@
     bus_options.dbus_task_runner = dbus_thread_->task_runner();
     bus_ = new Bus(bus_options);
     object_proxy_ = bus_->GetObjectProxy(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestObject"));
     ASSERT_TRUE(bus_->HasDBusThread());
 
@@ -97,7 +97,7 @@
     run_loop_->Run();
 
     // Create a second object proxy for the root object.
-    root_object_proxy_ = bus_->GetObjectProxy("org.chromium.TestService",
+    root_object_proxy_ = bus_->GetObjectProxy(test_service_->service_name(),
                                               ObjectPath("/"));
     ASSERT_TRUE(bus_->HasDBusThread());
 
@@ -147,7 +147,7 @@
 
     // Create new object proxy.
     object_proxy_ = bus_->GetObjectProxy(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestObject"));
   }
 
@@ -435,7 +435,7 @@
 
   // Remove the object proxy before receiving the result.
   // This results in cancelling the pending method call.
-  bus_->RemoveObjectProxy("org.chromium.TestService",
+  bus_->RemoveObjectProxy(test_service_->service_name(),
                           ObjectPath("/org/chromium/TestObject"),
                           base::Bind(&base::DoNothing));
 
@@ -517,7 +517,7 @@
   const ObjectPath invalid_object_path("/org/chromium/TestObject/");
 
   // Replace object proxy with new one.
-  object_proxy_ = bus_->GetObjectProxy("org.chromium.TestService",
+  object_proxy_ = bus_->GetObjectProxy(test_service_->service_name(),
                                        invalid_object_path);
 
   MethodCall method_call("org.chromium.TestInterface", "Echo");
diff --git a/dbus/end_to_end_sync_unittest.cc b/dbus/end_to_end_sync_unittest.cc
index 1167d96..47dc9b1 100644
--- a/dbus/end_to_end_sync_unittest.cc
+++ b/dbus/end_to_end_sync_unittest.cc
@@ -35,7 +35,7 @@
     client_bus_options.connection_type = Bus::PRIVATE;
     client_bus_ = new Bus(client_bus_options);
     object_proxy_ = client_bus_->GetObjectProxy(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestObject"));
     ASSERT_FALSE(client_bus_->HasDBusThread());
   }
@@ -112,7 +112,7 @@
   const ObjectPath invalid_object_path("/org/chromium/TestObject/");
 
   // Replace object proxy with new one.
-  object_proxy_ = client_bus_->GetObjectProxy("org.chromium.TestService",
+  object_proxy_ = client_bus_->GetObjectProxy(test_service_->service_name(),
                                               invalid_object_path);
 
   MethodCall method_call("org.chromium.TestInterface", "Echo");
diff --git a/dbus/object_manager_unittest.cc b/dbus/object_manager_unittest.cc
index fa83034..443210c 100644
--- a/dbus/object_manager_unittest.cc
+++ b/dbus/object_manager_unittest.cc
@@ -87,7 +87,7 @@
     ASSERT_TRUE(bus_->HasDBusThread());
 
     object_manager_ = bus_->GetObjectManager(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestService"));
     object_manager_->RegisterInterface("org.chromium.TestInterface", this);
 
@@ -189,7 +189,7 @@
 
   void PerformAction(const std::string& action, const ObjectPath& object_path) {
     ObjectProxy* object_proxy = bus_->GetObjectProxy(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestObject"));
 
     MethodCall method_call("org.chromium.TestInterface", "PerformAction");
@@ -288,7 +288,7 @@
 
 TEST_F(ObjectManagerTest, SameObject) {
   ObjectManager* object_manager = bus_->GetObjectManager(
-      "org.chromium.TestService",
+      test_service_->service_name(),
       ObjectPath("/org/chromium/TestService"));
   EXPECT_EQ(object_manager_, object_manager);
 }
@@ -302,7 +302,7 @@
 
 TEST_F(ObjectManagerTest, DifferentObjectForPath) {
   ObjectManager* object_manager = bus_->GetObjectManager(
-      "org.chromium.TestService",
+      test_service_->service_name(),
       ObjectPath("/org/chromium/DifferentService"));
   EXPECT_NE(object_manager_, object_manager);
 }
@@ -387,7 +387,7 @@
   object_manager_->UnregisterInterface("org.chromium.TestInterface");
   run_loop_.reset(new base::RunLoop);
   EXPECT_TRUE(bus_->RemoveObjectManager(
-      "org.chromium.TestService",
+      test_service_->service_name(),
       ObjectPath("/org/chromium/TestService"),
       run_loop_->QuitClosure()));
   run_loop_->Run();
@@ -396,7 +396,7 @@
                 ObjectPath("/org/chromium/TestService"));
 
   object_manager_ = bus_->GetObjectManager(
-      "org.chromium.TestService",
+      test_service_->service_name(),
       ObjectPath("/org/chromium/TestService"));
   object_manager_->RegisterInterface("org.chromium.TestInterface", this);
 
diff --git a/dbus/object_proxy_unittest.cc b/dbus/object_proxy_unittest.cc
index 22130b6..05c1294 100644
--- a/dbus/object_proxy_unittest.cc
+++ b/dbus/object_proxy_unittest.cc
@@ -20,16 +20,12 @@
     bus_options.bus_type = Bus::SESSION;
     bus_options.connection_type = Bus::PRIVATE;
     bus_ = new Bus(bus_options);
-
-    object_proxy_ = bus_->GetObjectProxy(
-        "org.chromium.TestService", ObjectPath("/org/chromium/TestObject"));
   }
 
   void TearDown() override { bus_->ShutdownAndBlock(); }
 
   base::MessageLoopForIO message_loop_;
   scoped_refptr<Bus> bus_;
-  ObjectProxy* object_proxy_;
 };
 
 // Used as a WaitForServiceToBeAvailableCallback.
@@ -43,14 +39,17 @@
 TEST_F(ObjectProxyTest, WaitForServiceToBeAvailable) {
   scoped_ptr<base::RunLoop> run_loop;
 
+  TestService::Options options;
+  TestService test_service(options);
+
   // Callback is not yet called because the service is not available.
-  object_proxy_->WaitForServiceToBeAvailable(
+  ObjectProxy* object_proxy = bus_->GetObjectProxy(
+      test_service.service_name(), ObjectPath("/org/chromium/TestObject"));
+  object_proxy->WaitForServiceToBeAvailable(
       base::Bind(&OnServiceIsAvailable, &run_loop));
   base::RunLoop().RunUntilIdle();
 
   // Start the service.
-  TestService::Options options;
-  TestService test_service(options);
   ASSERT_TRUE(test_service.StartService());
   ASSERT_TRUE(test_service.WaitUntilServiceIsStarted());
   ASSERT_TRUE(test_service.has_ownership());
@@ -61,7 +60,7 @@
 
   // Callback is called because the service is already available.
   run_loop.reset(new base::RunLoop);
-  object_proxy_->WaitForServiceToBeAvailable(
+  object_proxy->WaitForServiceToBeAvailable(
       base::Bind(&OnServiceIsAvailable, &run_loop));
   run_loop->Run();
 
diff --git a/dbus/property_unittest.cc b/dbus/property_unittest.cc
index b6bbb18..f159284 100644
--- a/dbus/property_unittest.cc
+++ b/dbus/property_unittest.cc
@@ -77,7 +77,7 @@
     bus_options.dbus_task_runner = dbus_thread_->task_runner();
     bus_ = new Bus(bus_options);
     object_proxy_ = bus_->GetObjectProxy(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestObject"));
     ASSERT_TRUE(bus_->HasDBusThread());
 
diff --git a/dbus/signal_sender_verification_unittest.cc b/dbus/signal_sender_verification_unittest.cc
index 0cedda7..785948a 100644
--- a/dbus/signal_sender_verification_unittest.cc
+++ b/dbus/signal_sender_verification_unittest.cc
@@ -40,6 +40,11 @@
     thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
     ASSERT_TRUE(dbus_thread_->StartWithOptions(thread_options));
 
+    // Create the test service, using the D-Bus thread.
+    TestService::Options options;
+    options.dbus_task_runner = dbus_thread_->task_runner();
+    test_service_.reset(new TestService(options));
+
     // Create the client, using the D-Bus thread.
     Bus::Options bus_options;
     bus_options.bus_type = Bus::SESSION;
@@ -47,7 +52,7 @@
     bus_options.dbus_task_runner = dbus_thread_->task_runner();
     bus_ = new Bus(bus_options);
     object_proxy_ = bus_->GetObjectProxy(
-        "org.chromium.TestService",
+        test_service_->service_name(),
         ObjectPath("/org/chromium/TestObject"));
     ASSERT_TRUE(bus_->HasDBusThread());
 
@@ -69,10 +74,7 @@
     run_loop_.reset(new base::RunLoop);
     run_loop_->Run();
 
-    // Start the test service, using the D-Bus thread.
-    TestService::Options options;
-    options.dbus_task_runner = dbus_thread_->task_runner();
-    test_service_.reset(new TestService(options));
+    // Start the test service.
     ASSERT_TRUE(test_service_->StartService());
     ASSERT_TRUE(test_service_->WaitUntilServiceIsStarted());
     ASSERT_TRUE(test_service_->HasDBusThread());
@@ -80,6 +82,7 @@
 
     // Same setup for the second TestService. This service should not have the
     // ownership of the name at this point.
+    options.service_name = test_service_->service_name();
     test_service2_.reset(new TestService(options));
     ASSERT_TRUE(test_service2_->StartService());
     ASSERT_TRUE(test_service2_->WaitUntilServiceIsStarted());
@@ -280,6 +283,7 @@
   TestService::Options options;
   options.dbus_task_runner = dbus_thread_->task_runner();
   options.request_ownership_options = Bus::REQUIRE_PRIMARY_ALLOW_REPLACEMENT;
+  options.service_name = test_service_->service_name();
   TestService stealable_test_service(options);
   ASSERT_TRUE(stealable_test_service.StartService());
   ASSERT_TRUE(stealable_test_service.WaitUntilServiceIsStarted());
@@ -331,7 +335,7 @@
   const char kMessage[] = "hello, world";
 
   ObjectProxy* object_proxy2 = bus_->GetObjectProxy(
-      "org.chromium.TestService",
+      test_service_->service_name(),
       ObjectPath("/org/chromium/DifferentObject"));
 
   bool second_name_owner_changed_called = false;