LCOV - GNU Libidn - lib/gltests/test-alloca-opt.c

LCOV - code coverage report
Current view: top level - lib/gltests - test-alloca-opt.c (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 16 16 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 optional 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>, 2007. */
 18  : 
 19  : #include <config.h>
 20  : 
 21  : #include <alloca.h>
 22  : 
 23  : #if HAVE_ALLOCA
 24  : 
 25  : static void
 26  1000000 : do_allocation (int n)
 27  : {
 28  1000000 : void *ptr = alloca (n);
 29  : (void) ptr;
 30  1000000 : }
 31  : 
 32  : void (*func) (int) = do_allocation;
 33  : 
 34  : #endif
 35  : 
 36  : int
 37  1 : main ()
 38  : {
 39  : #if HAVE_ALLOCA
 40  : int i;
 41  : 
 42  : /* Repeat a lot of times, to make sure there's no memory leak. */
 43  100001 : for (i = 0; i < 100000; i++)
 44  : {
 45  : /* Try various values.
 46  : n = 0 gave a crash on Alpha with gcc-2.5.8.
 47  : Some versions of Mac OS X have a stack size limit of 512 KB. */
 48  100000 : func (34);
 49  100000 : func (134);
 50  100000 : func (399);
 51  100000 : func (510823);
 52  100000 : func (129321);
 53  100000 : func (0);
 54  100000 : func (4070);
 55  100000 : func (4095);
 56  100000 : func (1);
 57  100000 : func (16582);
 58  : }
 59  : #endif
 60  : 
 61  1 : return 0;
 62  : }

Generated by: LCOV version 1.13

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