add stp*cpy() tests

This commit is contained in:
christos 2014-04-06 19:28:59 +00:00
parent 6d9f89fe00
commit 658a209ca6
4 changed files with 132 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.6 2012/09/23 17:22:25 joerg Exp $
# $NetBSD: Makefile,v 1.7 2014/04/06 19:28:59 christos Exp $
NOMAN= # defined
@ -39,6 +39,8 @@ PROGS+= h_read
PROGS+= h_readlink
PROGS+= h_snprintf
PROGS+= h_sprintf
PROGS+= h_stpcpy
PROGS+= h_stpncpy
PROGS+= h_strcat
PROGS+= h_strcpy
PROGS+= h_strncat

View File

@ -0,0 +1,49 @@
/* $NetBSD: h_stpcpy.c,v 1.1 2014/04/06 19:28:59 christos Exp $ */
/*
* Copyright (c) 2014 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__COPYRIGHT("@(#) Copyright (c) 2008\
The NetBSD Foundation, inc. All rights reserved.");
__RCSID("$NetBSD: h_stpcpy.c,v 1.1 2014/04/06 19:28:59 christos Exp $");
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(int argc, char *argv[])
{
char b[10];
char *q = stpcpy(b, argv[1]);
if ((size_t)(q - b) != strlen(argv[1]))
abort();
(void)printf("%s\n", b);
return 0;
}

View File

@ -0,0 +1,51 @@
/* $NetBSD: h_stpncpy.c,v 1.1 2014/04/06 19:28:59 christos Exp $ */
/*
* Copyright (c) 2014 The NetBSD Foundation, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__COPYRIGHT("@(#) Copyright (c) 2008\
The NetBSD Foundation, inc. All rights reserved.");
__RCSID("$NetBSD: h_stpncpy.c,v 1.1 2014/04/06 19:28:59 christos Exp $");
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
char b[10];
int len = atoi(argv[1]);
char *q = stpncpy(b, "1020202020202", len);
if (q - b != len)
abort();
(void)printf("%*.*s\n", len, len, b);
return 0;
}

View File

@ -1,4 +1,4 @@
# $NetBSD: t_ssp.sh,v 1.6 2014/01/10 10:45:34 martin Exp $
# $NetBSD: t_ssp.sh,v 1.7 2014/04/06 19:28:59 christos Exp $
#
# Copyright (c) 2008 The NetBSD Foundation, Inc.
# All rights reserved.
@ -167,6 +167,19 @@ strcpy_body()
h_fail "$prog 0123456789"
}
atf_test_case stpcpy
stpcpy_head()
{
atf_set "descr" "Checks stpcpy(3)"
}
stpcpy_body()
{
prog="$(atf_get_srcdir)/h_stpcpy"
h_pass "$prog 0123456"
h_fail "$prog 0123456789"
}
atf_test_case strcat
strcat_head()
{
@ -193,6 +206,19 @@ strncpy_body()
h_fail "$prog 11"
}
atf_test_case stpncpy
stpncpy_head()
{
atf_set "descr" "Checks stpncpy(3)"
}
stpncpy_body()
{
prog="$(atf_get_srcdir)/h_stpncpy"
h_pass "$prog 10"
h_fail "$prog 11"
}
atf_test_case strncat
strncat_head()
{
@ -269,6 +295,8 @@ atf_init_test_cases()
atf_add_test_case memcpy
atf_add_test_case memmove
atf_add_test_case memset
atf_add_test_case stpcpy
atf_add_test_case stpncpy
atf_add_test_case strcat
atf_add_test_case strcpy
atf_add_test_case strncat