diff options
| author | Kotresh HR <khiremat@redhat.com> | 2019-05-22 12:23:07 +0530 | 
|---|---|---|
| committer | Amar Tumballi <amarts@redhat.com> | 2019-05-27 14:36:08 +0000 | 
| commit | a9d76758454bf7d9a8a3f70fc47b732bb9f97d9e (patch) | |
| tree | 9b0213ce2d750339071459a8680b7549e472431e /tests | |
| parent | e1cc4275583dfd8ae8d0433587f39854c1851794 (diff) | |
tests: Add changelog api tests
updates: bz#1193929
Change-Id: Iee9aab8140882069165621189741f189fb2cc884
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/basic/changelog/changelog-api.t | 37 | ||||
| -rw-r--r-- | tests/utils/changelog/test-changelog-api.c | 98 | 
2 files changed, 135 insertions, 0 deletions
diff --git a/tests/basic/changelog/changelog-api.t b/tests/basic/changelog/changelog-api.t new file mode 100644 index 00000000000..516c2f2f60d --- /dev/null +++ b/tests/basic/changelog/changelog-api.t @@ -0,0 +1,37 @@ +#!/bin/bash +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../env.rc + +cleanup; + +CHANGELOG_BIN_PATH=$(dirname $0)/../../utils/changelog +build_tester $CHANGELOG_BIN_PATH/test-changelog-api.c -lgfchangelog + +CHANGELOG_PATH_0="$B0/${V0}0/.glusterfs/changelogs" +ROLLOVER_TIME=2 + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/${V0}0 +TEST $CLI volume set $V0 changelog.changelog on +TEST $CLI volume set $V0 changelog.rollover-time $ROLLOVER_TIME +TEST $CLI volume start $V0 + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; + +sleep 3; + +#Listen to changelog journal notifcations +$CHANGELOG_BIN_PATH/test-changelog-api & +for i in {1..12};do echo "data" > $M0/file$i 2>/dev/null; sleep 1;done & + +#Wait for changelogs to be in .processed directory +sleep 12 + +EXPECT "Y" processed_changelogs "/tmp/scratch_v1/.processed" +TEST rm $CHANGELOG_BIN_PATH/test-changelog-api +rm -rf /tmp/scratch_v1 + +cleanup; diff --git a/tests/utils/changelog/test-changelog-api.c b/tests/utils/changelog/test-changelog-api.c new file mode 100644 index 00000000000..f4eb066b630 --- /dev/null +++ b/tests/utils/changelog/test-changelog-api.c @@ -0,0 +1,98 @@ +/* +   Copyright (c) 2019 Red Hat, Inc. <http://www.redhat.com> +   This file is part of GlusterFS. + +   This file is licensed to you under your choice of the GNU Lesser +   General Public License, version 3 or any later version (LGPLv3 or +   later), or the GNU General Public License, version 2 (GPLv2), in all +   cases as published by the Free Software Foundation. +*/ + +/** + * get set of new changes every 5 seconds (just print the file names) + * + * Compile it using: + *  gcc -o getchanges `pkg-config --cflags libgfchangelog` get-changes.c \ + *  `pkg-config --libs libgfchangelog` + */ + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/un.h> +#include <limits.h> +#include <sys/socket.h> +#include <sys/types.h> +#include <errno.h> + +#include "changelog.h" + +int +main(int argc, char **argv) +{ +    int i = 0; +    int ret = 0; +    ssize_t nr_changes = 0; +    ssize_t changes = 0; +    char fbuf[PATH_MAX] = { +        0, +    }; + +    ret = gf_changelog_init(NULL); +    if (ret) { +        printf("-1"); +        fflush(stdout); +        return -1; +    } + +    /* get changes for brick "/d/backends/patchy0" */ +    ret = gf_changelog_register("/d/backends/patchy0", "/tmp/scratch_v1", +                                "/var/log/glusterfs/changes.log", 9, 5); +    if (ret) { +        printf("-2"); +        fflush(stdout); +        return -1; +    } + +    while (1) { +        i = 0; +        nr_changes = gf_changelog_scan(); +        if (nr_changes < 0) { +            printf("-4"); +            fflush(stdout); +            return -1; +        } + +        if (nr_changes == 0) +            goto next; + +        while ((changes = gf_changelog_next_change(fbuf, PATH_MAX)) > 0) { +            /* process changelog */ +            /* ... */ +            /* ... */ +            /* ... */ +            /* done processing */ + +            ret = gf_changelog_done(fbuf); +            if (ret) { +                printf("-5"); +                fflush(stdout); +                return -1; +            } +        } + +        if (changes == -1) { +            printf("-6"); +            fflush(stdout); +            return -1; +        } + +    next: +        sleep(2); +    } + +out: +    printf("0"); +    fflush(stdout); +    return ret; +}  | 
