LCOV - GNU Libidn - lib/gltests/test-malloca.c

LCOV - code coverage report
Current view: top level - lib/gltests - test-malloca.c (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 19 19 100.0 %
Date: 2020年07月22日 17:53:13 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

 Line data Source code
 1  : /* Test of safe automatic memory allocation.
 2  : Copyright (C) 2005, 2007, 2009-2020 Free Software Foundation, Inc.
 3  : 
 4  : This program is free software: you can redistribute it and/or modify
 5  : it under the terms of the GNU General Public License as published by
 6  : the Free Software Foundation; either version 3 of the License, or
 7  : (at your option) any later version.
 8  : 
 9  : This program is distributed in the hope that it will be useful,
 10  : but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 12  : GNU General Public License for more details.
 13  : 
 14  : You should have received a copy of the GNU General Public License
 15  : along with this program. If not, see <https://www.gnu.org/licenses/>. */
 16  : 
 17  : /* Written by Bruno Haible <bruno@clisp.org>, 2005. */
 18  : 
 19  : #include <config.h>
 20  : 
 21  : #include "malloca.h"
 22  : 
 23  : #include <stdlib.h>
 24  : 
 25  : static void
 26  500000 : do_allocation (int n)
 27  : {
 28  500000 : void *ptr = malloca (n);
 29  500000 : freea (ptr);
 30  500000 : safe_alloca (n);
 31  500000 : }
 32  : 
 33  : void (*func) (int) = do_allocation;
 34  : 
 35  : int
 36  1 : main ()
 37  : {
 38  : int i;
 39  : 
 40  : /* This slows down malloc a lot. */
 41  1 : unsetenv ("MALLOC_PERTURB_");
 42  : 
 43  : /* Repeat a lot of times, to make sure there's no memory leak. */
 44  50001 : for (i = 0; i < 50000; i++)
 45  : {
 46  : /* Try various values.
 47  : n = 0 gave a crash on Alpha with gcc-2.5.8.
 48  : Some versions of Mac OS X have a stack size limit of 512 KB. */
 49  50000 : func (34);
 50  50000 : func (134);
 51  50000 : func (399);
 52  50000 : func (510823);
 53  50000 : func (129321);
 54  50000 : func (0);
 55  50000 : func (4070);
 56  50000 : func (4095);
 57  50000 : func (1);
 58  50000 : func (16582);
 59  : }
 60  : 
 61  1 : return 0;
 62  : }

Generated by: LCOV version 1.13

AltStyle によって変換されたページ (->オリジナル) /