qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] vl: Abort if multiple machines are registered as default


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH] vl: Abort if multiple machines are registered as default
Date: Fri, 7 Feb 2020 12:25:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1

On 2/7/20 12:08 PM, Laurent Vivier wrote:
Le 07/02/2020 à 12:02, Philippe Mathieu-Daudé a écrit :
It would be confusing to have multiple default machines.
Abort if this ever occurs.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
  vl.c | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/vl.c b/vl.c
index 7dcb0879c4..da828188eb 100644
--- a/vl.c
+++ b/vl.c
@@ -2354,6 +2354,8 @@ static MachineClass *machine_parse(const char *name, 
GSList *machines)
      GSList *el;
if (is_help_option(name)) {
+        int default_count = 0;
+
          printf("Supported machines are:\n");
          machines = g_slist_sort(machines, machine_class_cmp);
          for (el = machines; el; el = el->next) {
@@ -2364,6 +2366,11 @@ static MachineClass *machine_parse(const char *name, 
GSList *machines)
              printf("%-20s %s%s%s\n", mc->name, mc->desc,
                     mc->is_default ? " (default)" : "",
                     mc->deprecation_reason ? " (deprecated)" : "");
+            default_count += !!mc->is_default;
+        }
+        if (default_count > 1) {
+            error_printf("Multiple default machines available\n");
+            abort();
          }
          exit(0);
      }


Does it really deserve an abort?
Ideal solution would be to be able to check this at build or in the unit
tests.

This is for developers, not for users. I'll use Marc-André suggestion and use an assertion.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]