Re: [PATCH 2/3] test-conversion: convert test-blacklist to new infrastructure

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

 



Hi Dan,

On Thu, Feb 23, 2012 at 3:49 AM, Dan McGee <dan@xxxxxxxxxxxxx> wrote:
> Add a modprobe.conf with some blacklist entries in a test rootfs, and
> then ensure our blacklist function actually cuts out the two listed
> entries (and doesn't cut out the others).
>
> Signed-off-by: Dan McGee <dan@xxxxxxxxxxxxx>
> ---
>  Makefile.am                                        |    4 +-
>  test/test-blacklist.c                              |   76 -----------
>  testsuite/.gitignore                               |    1 +
>  .../test-blacklist/etc/modprobe.d/modprobe.conf    |    2 +
>  testsuite/test-blacklist.c                         |  133 ++++++++++++++++++++
>  5 files changed, 139 insertions(+), 77 deletions(-)
>  delete mode 100644 test/test-blacklist.c
>  create mode 100644 testsuite/rootfs/test-blacklist/etc/modprobe.d/modprobe.conf
>  create mode 100644 testsuite/test-blacklist.c
>
> diff --git a/Makefile.am b/Makefile.am
> index 242c574..53cbe1c 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -164,7 +164,7 @@ testsuite_libtestsuite_la_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
>
>  TESTSUITE = testsuite/test-init testsuite/test-testsuite testsuite/test-loaded \
>            testsuite/test-modinfo testsuite/test-alias testsuite/test-new-module \
> -           testsuite/test-modprobe
> +           testsuite/test-modprobe testsuite/test-blacklist
>  check_PROGRAMS = $(TESTSUITE)
>  TESTS = $(TESTSUITE)
>
> @@ -182,6 +182,8 @@ testsuite_test_new_module_LDADD = $(TESTSUITE_LDADD)
>  testsuite_test_new_module_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
>  testsuite_test_modprobe_LDADD = $(TESTSUITE_LDADD)
>  testsuite_test_modprobe_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
> +testsuite_test_blacklist_LDADD = $(TESTSUITE_LDADD)
> +testsuite_test_blacklist_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
>
>  DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
>
> diff --git a/test/test-blacklist.c b/test/test-blacklist.c
> deleted file mode 100644
> index a53c902..0000000
> --- a/test/test-blacklist.c
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -#include <stdio.h>
> -#include <stdlib.h>
> -#include <stddef.h>
> -#include <errno.h>
> -#include <unistd.h>
> -#include <inttypes.h>
> -#include <string.h>
> -#include <libkmod.h>
> -
> -
> -int main(int argc, char *argv[])
> -{
> -       const char *alias;
> -       struct kmod_ctx *ctx;
> -       struct kmod_list *list = NULL, *l;
> -       int err;
> -
> -       printf("libkmod version %s\n", VERSION);
> -
> -       if (argc < 2) {
> -               fprintf(stderr, "ERR: Provide an alias name\n");
> -               return EXIT_FAILURE;
> -       }
> -
> -       alias = argv[1];
> -
> -       ctx = kmod_new(NULL, NULL);
> -       if (ctx == NULL)
> -               exit(EXIT_FAILURE);
> -
> -       err = kmod_module_new_from_lookup(ctx, alias, &list);
> -       if (err < 0)
> -               goto fail_lookup;
> -
> -       if (list == NULL)
> -               printf("No module matches '%s'\n", alias);
> -       else
> -               printf("Alias: '%s'\nModules matching:\n", alias);
> -
> -       kmod_list_foreach(l, list) {
> -               struct kmod_module *mod = kmod_module_get_module(l);
> -               printf("\t%s\n", kmod_module_get_name(mod));
> -               kmod_module_unref(mod);
> -       }
> -
> -       if (list != NULL) {
> -               struct kmod_list *filtered;
> -               err = kmod_module_get_filtered_blacklist(ctx, list, &filtered);
> -               if (err < 0) {
> -                       printf("Could not filter: %s\n", strerror(-err));
> -                       goto fail;
> -               }
> -               if (filtered == NULL)
> -                       printf("All modules were filtered out!\n");
> -               else
> -                       printf("Modules remaining after filter:\n");
> -
> -               kmod_list_foreach(l, filtered) {
> -               struct kmod_module *mod = kmod_module_get_module(l);
> -               printf("\t%s\n", kmod_module_get_name(mod));
> -               kmod_module_unref(mod);
> -               }
> -               kmod_module_unref_list(filtered);
> -       }
> -
> -       kmod_module_unref_list(list);
> -       kmod_unref(ctx);
> -
> -       return EXIT_SUCCESS;
> -
> -fail:
> -       kmod_module_unref_list(list);
> -fail_lookup:
> -       kmod_unref(ctx);
> -       return EXIT_FAILURE;
> -}
> diff --git a/testsuite/.gitignore b/testsuite/.gitignore
> index 431b9b7..ce1c21b 100644
> --- a/testsuite/.gitignore
> +++ b/testsuite/.gitignore
> @@ -3,6 +3,7 @@
>  *.so
>  /.dirstamp
>  /test-alias
> +/test-blacklist
>  /test-init
>  /test-loaded
>  /test-modinfo
> diff --git a/testsuite/rootfs/test-blacklist/etc/modprobe.d/modprobe.conf b/testsuite/rootfs/test-blacklist/etc/modprobe.d/modprobe.conf
> new file mode 100644
> index 0000000..126612f
> --- /dev/null
> +++ b/testsuite/rootfs/test-blacklist/etc/modprobe.d/modprobe.conf
> @@ -0,0 +1,2 @@
> +blacklist floppy
> +blacklist pcspkr
> diff --git a/testsuite/test-blacklist.c b/testsuite/test-blacklist.c
> new file mode 100644
> index 0000000..90ea3d7
> --- /dev/null
> +++ b/testsuite/test-blacklist.c
> @@ -0,0 +1,133 @@
> +/*
> + * Copyright (C) 2011-2012  ProFUSION embedded systems
> + *
> + * This program is free software: you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation, either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <stddef.h>
> +#include <errno.h>
> +#include <unistd.h>
> +#include <inttypes.h>
> +#include <string.h>
> +#include <libkmod.h>
> +
> +/* good luck bulding a kmod_list outside of the library... makes this blacklist
> + * function rather pointless */
> +#include <libkmod-private.h>
> +
> +/* FIXME: hack, change name so we don't clash */
> +#undef ERR
> +#include "testsuite.h"
> +
> +static int blacklist_1(const struct test *t)
> +{
> +       struct kmod_ctx *ctx;
> +       struct kmod_list *list = NULL, *l, *filtered;
> +       struct kmod_module *mod;
> +       int err;
> +       size_t len = 0;
> +
> +       const char *names[] = { "pcspkr", "pcspkr2", "floppy", "ext4", NULL };
> +       const char **name;
> +
> +       ctx = kmod_new(NULL, NULL);
> +       if (ctx == NULL)
> +               exit(EXIT_FAILURE);
> +
> +       for(name = names; *name; name++) {
> +               err = kmod_module_new_from_name(ctx, *name, &mod);
> +               if (err < 0)
> +                       goto fail_lookup;
> +               list = kmod_list_append(list, mod);
> +       }
> +
> +       err = kmod_module_get_filtered_blacklist(ctx, list, &filtered);

Patch has been applied, changing this with kmod_module_apply_filter(),
since this other function got deprecated in the meantime.


Lucas De Marchi
--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux