/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* * (C) 2011 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. */ #include #include #include #include #include "mpl.h" int main(void) { char *orig; char *str; char *next; str = NULL; next = MPL_strsep(&str, "|"); assert(next == NULL); assert(str == NULL); orig = strdup(""); str = orig; next = MPL_strsep(&str, "|"); assert(str == NULL); assert(next == orig); free(orig); orig = strdup("a|b|c"); str = orig; next = MPL_strsep(&str, "|"); assert(next == orig); assert(0 == strcmp(next, "a")); next = MPL_strsep(&str, "|"); assert(0 == strcmp(next, "b")); next = MPL_strsep(&str, "|"); assert(0 == strcmp(next, "c")); next = MPL_strsep(&str, "|"); assert(next == NULL); assert(str == NULL); free(orig); orig = strdup("a|b:c"); str = orig; next = MPL_strsep(&str, ":|"); assert(next == orig); assert(0 == strcmp(next, "a")); next = MPL_strsep(&str, ":|"); assert(0 == strcmp(next, "b")); next = MPL_strsep(&str, ":|"); assert(0 == strcmp(next, "c")); next = MPL_strsep(&str, ":|"); assert(next == NULL); assert(str == NULL); free(orig); orig = strdup("a|:b:c"); str = orig; next = MPL_strsep(&str, ":|"); assert(next == orig); assert(0 == strcmp(next, "a")); next = MPL_strsep(&str, ":|"); assert(0 == strcmp(next, "")); next = MPL_strsep(&str, ":|"); assert(0 == strcmp(next, "b")); next = MPL_strsep(&str, ":|"); assert(0 == strcmp(next, "c")); next = MPL_strsep(&str, ":|"); assert(next == NULL); assert(str == NULL); free(orig); return 0; }