]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - lib/libkse/test/guard_s.pl
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / lib / libkse / test / guard_s.pl
1 #!/usr/bin/perl -w
2 #
3 # Copyright (C) 2001 Jason Evans <jasone@freebsd.org>.
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 #    notice(s), this list of conditions and the following disclaimer
11 #    unmodified other than the allowable addition of one or more
12 #    copyright notices.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 #    notice(s), this list of conditions and the following disclaimer in
15 #    the documentation and/or other materials provided with the
16 #    distribution.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
19 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
22 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25 # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28 # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #
30 # $FreeBSD$
31 #
32 # Test thread stack guard functionality.  The C test program needs to be driven
33 # by this script because it segfaults when the stack guard is hit.
34 #
35
36 print "1..30\n";
37
38 $i = 0;
39 # Iterates 10 times.
40 for ($stacksize = 65536; $stacksize < 131072; $stacksize += 7168)
41 {
42     # Iterates 3 times (1024, 4096, 7168).
43     for ($guardsize = 1024; $guardsize < 8192; $guardsize += 3072)
44     {
45         $i++;
46
47         print "stacksize: $stacksize, guardsize: $guardsize\n";
48
49         `./guard_b $stacksize $guardsize >guard_b.out 2>&1`;
50
51         if (! -f "./guard_b.out")
52         {
53             print "not ok $i\n";
54         }
55         else
56         {
57             `diff guard_b.exp guard_b.out >guard_b.diff 2>&1`;
58             if ($?)
59             {
60                 # diff returns non-zero if there is a difference.
61                 print "not ok $i\n";
62             }
63             else
64             {
65                 print "ok $i\n";
66             }
67         }
68     }
69 }