All of lore.kernel.org
 help / color / mirror / Atom feed
From: Darren Kenny <darren.kenny@oracle.com>
To: Alexander Bulekov <alxndr@bu.edu>, qemu-devel@nongnu.org
Cc: Laurent Vivier <lvivier@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	f4bug@amsat.org, Alexander Bulekov <alxndr@bu.edu>,
	bsd@redhat.com, stefanha@redhat.com, pbonzini@redhat.com,
	dimastep@yandex-team.ru
Subject: Re: [PATCH v6 15/16] fuzz: register predefined generic-fuzz configs
Date: Thu, 22 Oct 2020 10:18:18 +0100	[thread overview]
Message-ID: <m2r1pq7h5x.fsf@oracle.com> (raw)
In-Reply-To: <20201021210922.572955-16-alxndr@bu.edu>

On Wednesday, 2020-10-21 at 17:09:21 -04, Alexander Bulekov wrote:
> We call get_generic_fuzz_configs, which fills an array with
> predefined {name, args, objects} triples. For each of these, we add a
> new FuzzTarget, that uses a small wrapper to set
> QEMU_FUZZ_{ARGS,OBJECTS} to the corresponding predefined values.
>
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>

Reviewed-by: Darren Kenny <darren.kenny@oracle.com>

> ---
>  tests/qtest/fuzz/generic_fuzz.c | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
>
> diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c
> index f739937827..bff98fe3c8 100644
> --- a/tests/qtest/fuzz/generic_fuzz.c
> +++ b/tests/qtest/fuzz/generic_fuzz.c
> @@ -26,6 +26,7 @@
>  #include "hw/qdev-core.h"
>  #include "hw/pci/pci.h"
>  #include "hw/boards.h"
> +#include "generic_fuzz_configs.h"
>  
>  /*
>   * SEPARATOR is used to separate "operations" in the fuzz input
> @@ -901,6 +902,17 @@ static GString *generic_fuzz_cmdline(FuzzTarget *t)
>      return cmd_line;
>  }
>  
> +static GString *generic_fuzz_predefined_config_cmdline(FuzzTarget *t)
> +{
> +    const generic_fuzz_config *config;
> +    g_assert(t->opaque);
> +
> +    config = t->opaque;
> +    setenv("QEMU_FUZZ_ARGS", config->args, 1);
> +    setenv("QEMU_FUZZ_OBJECTS", config->objects, 1);
> +    return generic_fuzz_cmdline(t);
> +}
> +
>  static void register_generic_fuzz_targets(void)
>  {
>      fuzz_add_target(&(FuzzTarget){
> @@ -911,6 +923,26 @@ static void register_generic_fuzz_targets(void)
>              .fuzz = generic_fuzz,
>              .crossover = generic_fuzz_crossover
>      });
> +
> +    GString *name;
> +    const generic_fuzz_config *config;
> +
> +    for (int i = 0;
> +         i < sizeof(predefined_configs) / sizeof(generic_fuzz_config);
> +         i++) {
> +        config = predefined_configs + i;
> +        name = g_string_new("generic-fuzz");
> +        g_string_append_printf(name, "-%s", config->name);
> +        fuzz_add_target(&(FuzzTarget){
> +                .name = name->str,
> +                .description = "Predefined generic-fuzz config.",
> +                .get_init_cmdline = generic_fuzz_predefined_config_cmdline,
> +                .pre_fuzz = generic_pre_fuzz,
> +                .fuzz = generic_fuzz,
> +                .crossover = generic_fuzz_crossover,
> +                .opaque = (void *)config
> +        });
> +    }
>  }
>  
>  fuzz_target_init(register_generic_fuzz_targets);
> -- 
> 2.28.0


  reply	other threads:[~2020-10-22  9:19 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-21 21:09 [PATCH v6 00/16] Add a Generic Virtual Device Fuzzer Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 01/16] memory: Add FlatView foreach function Alexander Bulekov
2020-10-22  8:09   ` Darren Kenny
2020-10-21 21:09 ` [PATCH v6 02/16] fuzz: Add generic virtual-device fuzzer Alexander Bulekov
2020-10-22  9:12   ` Darren Kenny
2020-10-21 21:09 ` [PATCH v6 03/16] fuzz: Add PCI features to the generic fuzzer Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 04/16] fuzz: Add DMA support to the generic-fuzzer Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 05/16] fuzz: Declare DMA Read callback function Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 06/16] fuzz: Add fuzzer callbacks to DMA-read functions Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 07/16] fuzz: Add support for custom crossover functions Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 08/16] fuzz: add a DISABLE_PCI op to generic-fuzzer Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 09/16] fuzz: add a crossover function " Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 10/16] scripts/oss-fuzz: Add script to reorder a generic-fuzzer trace Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 11/16] scripts/oss-fuzz: Add crash trace minimization script Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 12/16] fuzz: Add instructions for using generic-fuzz Alexander Bulekov
2020-10-21 21:09 ` [PATCH v6 13/16] fuzz: add an "opaque" to the FuzzTarget struct Alexander Bulekov
2020-10-22  9:14   ` Darren Kenny
2020-10-21 21:09 ` [PATCH v6 14/16] fuzz: add generic-fuzz configs for oss-fuzz Alexander Bulekov
2020-10-22  9:15   ` Darren Kenny
2020-10-21 21:09 ` [PATCH v6 15/16] fuzz: register predefined generic-fuzz configs Alexander Bulekov
2020-10-22  9:18   ` Darren Kenny [this message]
2020-10-21 21:09 ` [PATCH v6 16/16] scripts/oss-fuzz: remove the generic-fuzz target Alexander Bulekov
2020-10-22  9:32   ` Darren Kenny
2020-10-22 13:01     ` Alexander Bulekov
2020-10-22 13:13       ` Darren Kenny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2r1pq7h5x.fsf@oracle.com \
    --to=darren.kenny@oracle.com \
    --cc=alxndr@bu.edu \
    --cc=bsd@redhat.com \
    --cc=dimastep@yandex-team.ru \
    --cc=f4bug@amsat.org \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.