Blob Blame History Raw
# -*- Autotest -*-

AT_BANNER([osrelease - 730887])

## ---------------------- ##
## parse_release_for_bz ##
## ---------------------- ##

AT_TESTFUN([parse_release_for_bz],
[[
#include "internal_libreport.h"
#include <assert.h>

/* Test parsing different release strings */
int test(char ***input)
{
    char * release_string = **input;
    int retcode = 1;
    log_warning("release: >>%s<<\n", release_string);
    char *product = NULL;
    char *version = NULL;
    parse_release_for_bz(release_string, &product, &version);
    log_warning("version: >>%s<<\n", version);
    log_warning("product: >>%s<<\n", product);

    if(version == NULL || (strlen(version) == 0))
    {
        printf("version == NULL\n");
        goto ret;
    }

    (*input)++; //expected product is +1 in the array
    log_warning("'%s' == '%s'", product, **input);
    if (strcmp(product, **input) != 0)
        goto ret;

    (*input)++; //expected version is +2 in the array
    log_warning("'%s' == '%s'", version, **input);
    if (strcmp(version, **input) == 0)
        retcode = 0;

ret:
    log_warning("retcode %i\n", retcode);
    return retcode;
}

int main(void)
{
    char *releases_good[][3] =
    {
        //"Fedora release 15.a (Lovelock)", //should fail
        {"Fedora release 16 (Rawhide)", "Fedora", "rawhide"},
        {"Fedora release 16 (Verne)", "Fedora", "16"},
        {"Fedora 16-Alpha", "Fedora", "16"},// rhbz#730887
        {"Fedora release 17 (Rawhide)", "Fedora", "rawhide"},
        {"Red Hat Enterprise Linux Server release 6.2 Beta (Santiago)", "Red Hat Enterprise Linux 6", "6.2"},
        {"Red Hat Enterprise Linux 6.2", "Red Hat Enterprise Linux 6", "6.2"},
        {"Red Hat Enterprise Linux 123.456asd", "Red Hat Enterprise Linux 123", "123.456"},
        {"openSUSE 12.2 (x86_64)", "openSUSE", "12.2"},
        {}
    };

    char **tmp = (char **)releases_good;
    while(*tmp)
    {
        assert(test(&tmp) == 0);
        tmp++;
    }
}
]])

## --------------------- ##
## parse_release_for_rhts##
## --------------------- ##

AT_TESTFUN([parse_release_for_rhts],
[[
#include "internal_libreport.h"
#include <assert.h>

/* Test parsing different release strings */
/* Test parsing different release strings */
int test(char ***input)
{
    char * release_string = **input;
    int retcode = 1;
    log_warning("release: >>%s<<\n", release_string);
    char *product = NULL;
    char *version = NULL;
    parse_release_for_rhts(release_string, &product, &version);
    log_warning("version: >>%s<<\n", version);
    log_warning("product: >>%s<<\n", product);

    if(version == NULL || (strlen(version) == 0))
    {
        printf("version == NULL\n");
        goto ret;
    }

    (*input)++; //expected product is +1 in the array
    log_warning("'%s' == '%s'", product, **input);
    if (strcmp(product, **input) != 0)
        goto ret;

    (*input)++; //expected version is +2 in the array
    log_warning("'%s' == '%s'", version, **input);
    if (strcmp(version, **input) == 0)
        retcode = 0;

ret:
    log_warning("retcode %i\n", retcode);
    return retcode;
}

int main(void)
{
    char *releases_good[][3] =
    {
        {"Red Hat Enterprise Linux Server release 6.2 Beta (Santiago)", "Red Hat Enterprise Linux", "6.2 Beta"},
        {"Red Hat Enterprise Linux Server release 6.2 (Santiago)", "Red Hat Enterprise Linux", "6.2"},
        {"Red Hat Enterprise Linux 6.2", "Red Hat Enterprise Linux", "6.2"},
        {"openSUSE 11.4 (i586)", "openSUSE", "11.4"},
        {}
    };

    char **tmp = (char **)releases_good;
    while(*tmp)
    {
        assert(test(&tmp) == 0);
        tmp++;
    }
}
]])