1 /* This file is part of the YAZ toolkit.
2 * Copyright (C) 1995-2011 Index Data
3 * See the file LICENSE for details.
17 void tst_nmem_malloc(void)
26 for (j = 1; j<500; j++)
28 cp = (char *) nmem_malloc(n, j);
30 if ((int) sizeof(long) >= j)
33 if ((int) sizeof(long long) >= j)
34 *(long long*) cp = 123L;
36 if ((int) sizeof(double) >= j)
40 for (j = 2000; j<20000; j+= 2000)
42 cp = (char *) nmem_malloc(n, j);
48 void tst_nmem_strsplit(void)
50 NMEM nmem = nmem_create();
54 nmem_strsplit(nmem, ",", "", &array, &num);
57 nmem_strsplitx(nmem, ",", "", &array, &num, 0);
59 YAZ_CHECK(num > 0 && !strcmp(array[0], ""));
61 nmem_strsplit(nmem, ",", ",,", &array, &num);
64 nmem_strsplitx(nmem, ",", ",,", &array, &num, 0);
66 YAZ_CHECK(num > 0 && !strcmp(array[0], ""));
67 YAZ_CHECK(num > 1 && !strcmp(array[1], ""));
68 YAZ_CHECK(num > 2 && !strcmp(array[2], ""));
70 nmem_strsplit(nmem, ",", ",a,b,,cd", &array, &num);
72 YAZ_CHECK(num > 0 && !strcmp(array[0], "a"));
73 YAZ_CHECK(num > 1 && !strcmp(array[1], "b"));
74 YAZ_CHECK(num > 2 && !strcmp(array[2], "cd"));
76 nmem_strsplitx(nmem, ",", ",a,b,,cd", &array, &num, 0);
78 YAZ_CHECK(num > 0 && !strcmp(array[0], ""));
79 YAZ_CHECK(num > 1 && !strcmp(array[1], "a"));
80 YAZ_CHECK(num > 2 && !strcmp(array[2], "b"));
81 YAZ_CHECK(num > 3 && !strcmp(array[3], ""));
82 YAZ_CHECK(num > 4 && !strcmp(array[4], "cd"));
84 nmem_strsplit_escape(nmem, ",", ",a,b,,cd", &array, &num, 0, '\\');
86 YAZ_CHECK(num > 0 && !strcmp(array[0], ""));
87 YAZ_CHECK(num > 1 && !strcmp(array[1], "a"));
88 YAZ_CHECK(num > 2 && !strcmp(array[2], "b"));
89 YAZ_CHECK(num > 3 && !strcmp(array[3], ""));
90 YAZ_CHECK(num > 4 && !strcmp(array[4], "cd"));
92 nmem_strsplit_escape(nmem, ",", ",a,b\\,,cd", &array, &num, 0, '\\');
94 YAZ_CHECK(num > 0 && !strcmp(array[0], ""));
95 YAZ_CHECK(num > 1 && !strcmp(array[1], "a"));
96 YAZ_CHECK(num > 2 && !strcmp(array[2], "b,"));
97 YAZ_CHECK(num > 3 && !strcmp(array[3], "cd"));
99 nmem_strsplit_escape(nmem, ",", "\\,a,b\\,,cd", &array, &num, 0, '\\');
101 YAZ_CHECK(num > 0 && !strcmp(array[0], ",a"));
102 YAZ_CHECK(num > 1 && !strcmp(array[1], "b,"));
103 YAZ_CHECK(num > 2 && !strcmp(array[2], "cd"));
105 nmem_strsplit_escape(nmem, ",", "\\,a,b\\,\\,cd", &array, &num, 0, '\\');
107 YAZ_CHECK(num > 0 && !strcmp(array[0], ",a"));
108 YAZ_CHECK(num > 1 && !strcmp(array[1], "b,,cd"));
113 int main (int argc, char **argv)
115 YAZ_CHECK_INIT(argc, argv);
123 * c-file-style: "Stroustrup"
124 * indent-tabs-mode: nil
126 * vim: shiftwidth=4 tabstop=8 expandtab