strduptest.c revision 180751
1218887Sdim/*
2218887Sdim * Copyright (c) 2005 Darren Tucker
3218887Sdim *
4218887Sdim * Permission to use, copy, modify, and distribute this software for any
5218887Sdim * purpose with or without fee is hereby granted, provided that the above
6218887Sdim * copyright notice and this permission notice appear in all copies.
7218887Sdim *
8218887Sdim * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9218887Sdim * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10218887Sdim * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11218887Sdim * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12218887Sdim * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13226633Sdim * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14221345Sdim * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15221345Sdim */
16243830Sdim
17221345Sdim#include <stdlib.h>
18218887Sdim#include <string.h>
19221345Sdim
20221345Sdimstatic int fail = 0;
21243830Sdim
22218887Sdimvoid
23221345Sdimtest(const char *a)
24243830Sdim{
25218887Sdim	char *b;
26221345Sdim
27243830Sdim	b = strdup(a);
28218887Sdim	if (b == 0) {
29221345Sdim		fail = 1;
30234353Sdim		return;
31243830Sdim	}
32243830Sdim	if (strcmp(a, b) != 0)
33218887Sdim		fail = 1;
34221345Sdim	free(b);
35243830Sdim}
36234353Sdim
37243830Sdimint
38221345Sdimmain(void)
39221345Sdim{
40243830Sdim	test("");
41221345Sdim	test("a");
42243830Sdim	test("\0");
43221345Sdim	test("abcdefghijklmnopqrstuvwxyz");
44234353Sdim	return fail;
45221345Sdim}
46218887Sdim