11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/*
21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Copyright (c) 2005 Darren Tucker
31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood *
41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Permission to use, copy, modify, and distribute this software for any
51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * purpose with or without fee is hereby granted, provided that the above
61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * copyright notice and this permission notice appear in all copies.
71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood *
81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */
161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <stdlib.h>
181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <string.h>
191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstatic int fail = 0;
211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodvoid
231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtest(const char *a)
241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{
251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	char *b;
261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	b = strdup(a);
281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	if (b == 0) {
291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fail = 1;
301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		return;
311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	}
321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	if (strcmp(a, b) != 0)
331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fail = 1;
341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	free(b);
351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}
361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint
381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodmain(void)
391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{
401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	test("");
411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	test("a");
421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	test("\0");
431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	test("abcdefghijklmnopqrstuvwxyz");
441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	return fail;
451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}
46