1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-08 17:22:05 +03:00

Tests for module 'safe-alloc'.

This commit is contained in:
David Lutterkort
2009-02-21 11:10:01 +01:00
committed by Bruno Haible
parent 032310a691
commit b87c1f601e
3 changed files with 77 additions and 0 deletions

View File

@@ -1,5 +1,9 @@
2009-02-21 David Lutterkort <lutter@redhat.com> 2009-02-21 David Lutterkort <lutter@redhat.com>
Tests for module 'safe-alloc'.
* tests/test-safe-alloc.c: New file.
* modules/safe-alloc-tests: New file.
New module 'safe-alloc'. New module 'safe-alloc'.
* lib/safe-alloc.h: New file. * lib/safe-alloc.h: New file.
* lib/safe-alloc.c: New file. * lib/safe-alloc.c: New file.

10
modules/safe-alloc-tests Normal file
View File

@@ -0,0 +1,10 @@
Files:
tests/test-safe-alloc.c
Depends-on:
configure.ac:
Makefile.am:
TESTS += test-safe-alloc
check_PROGRAMS += test-safe-alloc

63
tests/test-safe-alloc.c Normal file
View File

@@ -0,0 +1,63 @@
/*
* Test the safe-alloc macros
*
* Copyright (C) 2009 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Author: David Lutterkort <lutter@redhat.com>
*/
#include <config.h>
#include <stdio.h>
#include <safe-alloc.h>
#define ASSERT(expr) \
do \
{ \
if (!(expr)) \
{ \
fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
fflush (stderr); \
abort (); \
} \
} \
while (0)
int main()
{
struct tst {
int a;
int b;
};
struct tst *p = NULL;
int r;
r = ALLOC(p);
ASSERT(r >= 0);
ASSERT(p->a == 0 && p->b == 0);
p->a = p->b = 42;
r = REALLOC_N(p, 5);
ASSERT(p[0].a == 42 && p[0].b == 42);
FREE(p);
ASSERT(p == NULL);
}