1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// When we cull and compute the new minimum time between snapshots, we want
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// to ignore any gap between two uncullable snapshots, because it is not
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// representative.  This program tests that.
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h>
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(void)
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int i;
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // The peak is from the first allocation.
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int* x = malloc(1024);
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(x);
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // Now do an allocation to provide the post-peak baseline.
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   malloc(512);
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // Now we do lots of allocations below the peak.  With the proper
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // handling, the allocations should still be smoothly distributed.
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // Without it, the snapshots in the second half of the graph would be
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   // clustered much more closely than those in the first half.
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   //
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   for (i = 0; i < 350; i++) {
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      int* y = malloc(256);
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      free(y);
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   }
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return 0;
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
32