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