Commit 9737383b authored by Stefan Hajnoczi's avatar Stefan Hajnoczi Committed by Luiz Capitulino
Browse files

qerror: add check-qerror.sh to verify alphabetical order



We're supposed to keep qerror definitions and table entries in
alphabetical order.  In practice this is not checked.

I haven't found a nice way to integrate this into the makefile yet but
we can at least have this script which verifies that qerrors are in
alphabetical order.

Signed-off-by: default avatarStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent aba2107a
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -40,8 +40,7 @@ static const QType qerror_type = {
 * "running out of foo: %(foo)%%"
 *
 * Please keep the entries in alphabetical order.
 * Use "sed -n '/^static.*qerror_table\[\]/,/^};/s/QERR_/&/gp' qerror.c | sort -c"
 * to check.
 * Use scripts/check-qerror.sh to check.
 */
static const QErrorStringTable qerror_table[] = {
    {
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ QError *qobject_to_qerror(const QObject *obj);
/*
 * QError class list
 * Please keep the definitions in alphabetical order.
 * Use "grep '^#define QERR_' qerror.h | sort -c" to check.
 * Use scripts/check-qerror.sh to check.
 */
#define QERR_BAD_BUS_FOR_DEVICE \
    "{ 'class': 'BadBusForDevice', 'data': { 'device': %s, 'bad_bus_type': %s } }"
+22 −0
Original line number Diff line number Diff line
#!/bin/sh
# This script verifies that qerror definitions and table entries are
# alphabetically ordered.

check_order() {
  errmsg=$1
  shift

  # sort -C verifies order but does not print a message.  sort -c does print a
  # message.  These options are both in POSIX.
  if ! "$@" | sort -C; then
    echo "$errmsg"
    "$@" | sort -c
    exit 1
  fi
  return 0
}

check_order 'Definitions in qerror.h must be in alphabetical order:' \
            grep '^#define QERR_' qerror.h
check_order 'Entries in qerror.c:qerror_table must be in alphabetical order:' \
            sed -n '/^static.*qerror_table\[\]/,/^};/s/QERR_/&/gp' qerror.c