lkml.org 
[lkml]   [2009]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] x86: Instruction decoder test should generate build warning
    Commit-ID:  ce64c62074d945fe5f8a7f01bdc30125f994ea67
    Gitweb: http://git.kernel.org/tip/ce64c62074d945fe5f8a7f01bdc30125f994ea67
    Author: Masami Hiramatsu <mhiramat@redhat.com>
    AuthorDate: Mon, 16 Nov 2009 18:06:31 -0500
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Thu, 19 Nov 2009 21:40:13 +0100

    x86: Instruction decoder test should generate build warning

    Since some instructions are not decoded correctly by older
    versions of objdump, it may cause false positive error in insn
    decoder posttest.

    This changes build error of insn decoder test to build warning.

    Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
    Cc: systemtap <systemtap@sources.redhat.com>
    Cc: DLE <dle-develop@lists.sourceforge.net>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Randy Dunlap <rdunlap@xenotime.net>
    Cc: Jim Keniston <jkenisto@us.ibm.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    LKML-Reference: <20091116230631.5250.41579.stgit@harusame>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    ---
    arch/x86/tools/test_get_len.c | 17 +++++++++++------
    1 files changed, 11 insertions(+), 6 deletions(-)

    diff --git a/arch/x86/tools/test_get_len.c b/arch/x86/tools/test_get_len.c
    index af75e07..d8214dc 100644
    --- a/arch/x86/tools/test_get_len.c
    +++ b/arch/x86/tools/test_get_len.c
    @@ -114,6 +114,7 @@ int main(int argc, char **argv)
    unsigned char insn_buf[16];
    struct insn insn;
    int insns = 0, c;
    + int warnings = 0;

    parse_args(argc, argv);

    @@ -151,18 +152,22 @@ int main(int argc, char **argv)
    insn_init(&insn, insn_buf, x86_64);
    insn_get_length(&insn);
    if (insn.length != nb) {
    - fprintf(stderr, "Error: %s found a difference at %s\n",
    + warnings++;
    + fprintf(stderr, "Warning: %s found difference at %s\n",
    prog, sym);
    - fprintf(stderr, "Error: %s", line);
    - fprintf(stderr, "Error: objdump says %d bytes, but "
    + fprintf(stderr, "Warning: %s", line);
    + fprintf(stderr, "Warning: objdump says %d bytes, but "
    "insn_get_length() says %d\n", nb,
    insn.length);
    if (verbose)
    dump_insn(stderr, &insn);
    - exit(2);
    }
    }
    - fprintf(stderr, "Succeed: decoded and checked %d instructions\n",
    - insns);
    + if (warnings)
    + fprintf(stderr, "Warning: decoded and checked %d"
    + " instructions with %d warnings\n", insns, warnings);
    + else
    + fprintf(stderr, "Succeed: decoded and checked %d"
    + " instructions\n", insns);
    return 0;
    }

    \
     
     \ /
      Last update: 2009-11-20 06:47    [W:0.046 / U:58.928 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site