xref: /freebsd/contrib/bzip2/spewG.c (revision 51f61fc0c7ece7a30c737341e65455841bc3f04e)
1df9de0ebSDavid E. O'Brien 
2df9de0ebSDavid E. O'Brien /* spew out a thoroughly gigantic file designed so that bzip2
3df9de0ebSDavid E. O'Brien    can compress it reasonably rapidly.  This is to help test
4df9de0ebSDavid E. O'Brien    support for large files (> 2GB) in a reasonable amount of time.
5df9de0ebSDavid E. O'Brien    I suggest you use the undocumented --exponential option to
6df9de0ebSDavid E. O'Brien    bzip2 when compressing the resulting file; this saves a bit of
7df9de0ebSDavid E. O'Brien    time.  Note: *don't* bother with --exponential when compressing
8df9de0ebSDavid E. O'Brien    Real Files; it'll just waste a lot of CPU time :-)
9df9de0ebSDavid E. O'Brien    (but is otherwise harmless).
10df9de0ebSDavid E. O'Brien */
11df9de0ebSDavid E. O'Brien 
121b79bae0SXin LI /* ------------------------------------------------------------------
131b79bae0SXin LI    This file is part of bzip2/libbzip2, a program and library for
141b79bae0SXin LI    lossless, block-sorting data compression.
151b79bae0SXin LI 
16*51f61fc0SXin LI    bzip2/libbzip2 version 1.0.8 of 13 July 2019
17*51f61fc0SXin LI    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
181b79bae0SXin LI 
191b79bae0SXin LI    Please read the WARNING, DISCLAIMER and PATENTS sections in the
201b79bae0SXin LI    README file.
211b79bae0SXin LI 
221b79bae0SXin LI    This program is released under the terms of the license contained
231b79bae0SXin LI    in the file LICENSE.
241b79bae0SXin LI 	 ------------------------------------------------------------------ */
251b79bae0SXin LI 
261b79bae0SXin LI 
27df9de0ebSDavid E. O'Brien #define _FILE_OFFSET_BITS 64
28df9de0ebSDavid E. O'Brien 
29df9de0ebSDavid E. O'Brien #include <stdio.h>
30df9de0ebSDavid E. O'Brien #include <stdlib.h>
31df9de0ebSDavid E. O'Brien 
32df9de0ebSDavid E. O'Brien /* The number of megabytes of junk to spew out (roughly) */
33df9de0ebSDavid E. O'Brien #define MEGABYTES 5000
34df9de0ebSDavid E. O'Brien 
35df9de0ebSDavid E. O'Brien #define N_BUF 1000000
36df9de0ebSDavid E. O'Brien char buf[N_BUF];
37df9de0ebSDavid E. O'Brien 
main(int argc,char ** argv)38df9de0ebSDavid E. O'Brien int main ( int argc, char** argv )
39df9de0ebSDavid E. O'Brien {
40df9de0ebSDavid E. O'Brien    int ii, kk, p;
41df9de0ebSDavid E. O'Brien    srandom(1);
42df9de0ebSDavid E. O'Brien    setbuffer ( stdout, buf, N_BUF );
43df9de0ebSDavid E. O'Brien    for (kk = 0; kk < MEGABYTES * 515; kk+=3) {
44df9de0ebSDavid E. O'Brien       p = 25+random()%50;
45df9de0ebSDavid E. O'Brien       for (ii = 0; ii < p; ii++)
46df9de0ebSDavid E. O'Brien          printf ( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" );
47df9de0ebSDavid E. O'Brien       for (ii = 0; ii < p-1; ii++)
48df9de0ebSDavid E. O'Brien          printf ( "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
49df9de0ebSDavid E. O'Brien       for (ii = 0; ii < p+1; ii++)
50df9de0ebSDavid E. O'Brien          printf ( "ccccccccccccccccccccccccccccccccccccc" );
51df9de0ebSDavid E. O'Brien    }
52df9de0ebSDavid E. O'Brien    fflush(stdout);
53df9de0ebSDavid E. O'Brien    return 0;
54df9de0ebSDavid E. O'Brien }
55