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