[systemd-devel] [PATCH] tests: add test-compress

Tom Gundersen teg at jklm.no
Tue Jun 24 17:07:17 PDT 2014


Applied. Thanks!

-t

On Tue, Jun 24, 2014 at 8:42 PM, Ronny Chevalier
<chevalier.ronny at gmail.com> wrote:
> ---
>  .gitignore                  |  1 +
>  Makefile.am                 | 13 ++++++++
>  src/journal/test-compress.c | 76 +++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 90 insertions(+)
>  create mode 100644 src/journal/test-compress.c
>
> diff --git a/.gitignore b/.gitignore
> index 36c67e2..d2e81a2 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -140,6 +140,7 @@
>  /test-cgroup
>  /test-cgroup-mask
>  /test-cgroup-util
> +/test-compress
>  /test-conf-files
>  /test-daemon
>  /test-date
> diff --git a/Makefile.am b/Makefile.am
> index bc56d75..4b292b2 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -3509,6 +3509,15 @@ test_catalog_CPPFLAGS = \
>  test_catalog_LDADD = \
>         libsystemd-journal-core.la
>
> +if HAVE_XZ
> +test_compress_SOURCES = \
> +       src/journal/test-compress.c
> +
> +test_compress_LDADD = \
> +       libsystemd-journal-internal.la \
> +       libsystemd-shared.la
> +endif
> +
>  libsystemd_journal_core_la_SOURCES = \
>         src/journal/journald-kmsg.c \
>         src/journal/journald-kmsg.h \
> @@ -3591,6 +3600,10 @@ tests += \
>         test-mmap-cache \
>         test-catalog
>
> +if HAVE_XZ
> +tests += test-compress
> +endif
> +
>  pkginclude_HEADERS += \
>         src/systemd/sd-journal.h \
>         src/systemd/sd-messages.h \
> diff --git a/src/journal/test-compress.c b/src/journal/test-compress.c
> new file mode 100644
> index 0000000..15b3f9a
> --- /dev/null
> +++ b/src/journal/test-compress.c
> @@ -0,0 +1,76 @@
> +/***
> +  This file is part of systemd
> +
> +  Copyright 2014 Ronny Chevalier
> +
> +  systemd is free software; you can redistribute it and/or modify it
> +  under the terms of the GNU Lesser General Public License as published by
> +  the Free Software Foundation; either version 2.1 of the License, or
> +  (at your option) any later version.
> +
> +  systemd 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
> +  Lesser General Public License for more details.
> +
> +  You should have received a copy of the GNU Lesser General Public License
> +  along with systemd; If not, see <http://www.gnu.org/licenses/>.
> +***/
> +
> +#include "compress.h"
> +#include "util.h"
> +#include "macro.h"
> +
> +static void test_compress_uncompress(void) {
> +        char text[] = "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF"
> +                      "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF";
> +        char compressed[512];
> +        uint64_t csize = 512;
> +        uint64_t usize = 0;
> +        _cleanup_free_ char *uncompressed = NULL;
> +
> +        assert_se(compress_blob(text, sizeof(text), compressed, &csize));
> +        assert_se(uncompress_blob(compressed,
> +                                  csize,
> +                                  (void **) &uncompressed,
> +                                  &usize, &csize, 0));
> +        assert_se(uncompressed);
> +        assert_se(streq(uncompressed, text));
> +        assert_se(!uncompress_blob("garbage",
> +                                   7,
> +                                   (void **) &uncompressed,
> +                                   &usize, &csize, 0));
> +}
> +
> +static void test_uncompress_startswith(void) {
> +        char text[] = "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF"
> +                      "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF";
> +        char compressed[512];
> +        uint64_t csize = 512;
> +        uint64_t usize = 0;
> +        _cleanup_free_ char *uncompressed = NULL;
> +
> +        assert_se(compress_blob(text, sizeof(text), compressed, &csize));
> +        assert_se(uncompress_startswith(compressed,
> +                                        csize,
> +                                        (void **) &uncompressed,
> +                                        &usize,
> +                                        "foofoofoofoo", 12, ' '));
> +        assert_se(!uncompress_startswith(compressed,
> +                                         csize,
> +                                        (void **) &uncompressed,
> +                                        &usize,
> +                                        "foofoofoofoo", 12, 'w'));
> +        assert_se(!uncompress_startswith(compressed,
> +                                         csize,
> +                                        (void **) &uncompressed,
> +                                        &usize,
> +                                        "barbarbar", 9, ' '));
> +}
> +
> +int main(int argc, char *argv[]) {
> +        test_compress_uncompress();
> +        test_uncompress_startswith();
> +
> +        return 0;
> +}
> --
> 2.0.0
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


More information about the systemd-devel mailing list