[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