test-runner: Add dedicated option to start D-Bus
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Sat, 16 Apr 2022 00:17:04 +0000 (17:17 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:54 +0000 (14:55 +0530)
This adds a dedicated option to start D-Bus alone which can be useful
when testing the bluetoothd with the likes of valgrind.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
tools/test-runner.c

index d542c97..52282d8 100755 (executable)
@@ -46,6 +46,7 @@ static int test_argc;
 
 static bool run_auto = false;
 static bool start_dbus = false;
+static bool start_daemon = false;
 static bool start_emulator = false;
 static bool start_monitor = false;
 static int num_devs = 0;
@@ -248,11 +249,12 @@ static void start_qemu(void)
                                "rootflags=trans=virtio,version=9p2000.L "
                                "acpi=off pci=noacpi noapic quiet ro init=%s "
                                "bluetooth.enable_ecred=1"
-                               "TESTHOME=%s TESTDBUS=%u TESTMONITOR=%u "
-                               "TESTEMULATOR=%u TESTDEVS=%d TESTAUTO=%u "
-                               "TESTARGS=\'%s\'",
-                               initcmd, cwd, start_dbus, start_monitor,
-                               start_emulator, num_devs, run_auto, testargs);
+                               "TESTHOME=%s TESTDBUS=%u TESTDAEMON=%u "
+                               "TESTMONITOR=%u TESTEMULATOR=%u TESTDEVS=%d "
+                               "TESTAUTO=%u TESTARGS=\'%s\'",
+                               initcmd, cwd, start_dbus, start_daemon,
+                               start_monitor, start_emulator, num_devs,
+                               run_auto, testargs);
 
        argv = alloca(sizeof(qemu_argv) +
                                (sizeof(char *) * (4 + (num_devs * 4))));
@@ -686,11 +688,13 @@ static void run_command(char *cmdname, char *home)
        if (start_dbus) {
                create_dbus_system_conf();
                dbus_pid = start_dbus_daemon();
-               daemon_pid = start_bluetooth_daemon(home);
-       } else {
+       } else
                dbus_pid = -1;
+
+       if (start_daemon)
+               daemon_pid = start_bluetooth_daemon(home);
+       else
                daemon_pid = -1;
-       }
 
        if (start_monitor)
                monitor_pid = start_btmon(home);
@@ -877,6 +881,12 @@ static void run_tests(void)
                start_dbus = true;
        }
 
+       ptr = strstr(cmdline, "TESTDAEMON=1");
+       if (ptr) {
+               printf("bluetoothd requested\n");
+               start_daemon = true;
+       }
+
        ptr = strstr(cmdline, "TESTMONITOR=1");
        if (ptr) {
                printf("Monitor requested\n");
@@ -907,7 +917,8 @@ static void usage(void)
        printf("\ttest-runner [options] [--] <command> [args]\n");
        printf("Options:\n"
                "\t-a, --auto             Find tests and run them\n"
-               "\t-d, --dbus             Start D-Bus daemon\n"
+               "\t-b, --dbus             Start D-Bus daemon\n"
+               "\t-d, --daemon           Start bluetoothd\n"
                "\t-m, --monitor          Start btmon\n"
                "\t-l, --emulator         Start btvirt\n"
                "\t-u, --unix [path]      Provide serial device\n"
@@ -919,8 +930,9 @@ static void usage(void)
 static const struct option main_options[] = {
        { "all",     no_argument,       NULL, 'a' },
        { "auto",    no_argument,       NULL, 'a' },
+       { "dbus",    no_argument,       NULL, 'b' },
        { "unix",    no_argument,       NULL, 'u' },
-       { "dbus",    no_argument,       NULL, 'd' },
+       { "daemon",  no_argument,       NULL, 'd' },
        { "emulator", no_argument,      NULL, 'l' },
        { "monitor", no_argument,       NULL, 'm' },
        { "qemu",    required_argument, NULL, 'q' },
@@ -944,7 +956,7 @@ int main(int argc, char *argv[])
        for (;;) {
                int opt;
 
-               opt = getopt_long(argc, argv, "audlmq:k:vh", main_options,
+               opt = getopt_long(argc, argv, "aubdlmq:k:vh", main_options,
                                                                NULL);
                if (opt < 0)
                        break;
@@ -956,8 +968,12 @@ int main(int argc, char *argv[])
                case 'u':
                        num_devs = 1;
                        break;
+               case 'b':
+                       start_dbus = true;
+                       break;
                case 'd':
                        start_dbus = true;
+                       start_daemon = true;
                        break;
                case 'l':
                        start_emulator = true;