1cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
2cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project/* spew out a thoroughly gigantic file designed so that bzip2
3cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   can compress it reasonably rapidly.  This is to help test
4cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   support for large files (> 2GB) in a reasonable amount of time.
5cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   I suggest you use the undocumented --exponential option to
6cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   bzip2 when compressing the resulting file; this saves a bit of
7cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   time.  Note: *don't* bother with --exponential when compressing
8cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   Real Files; it'll just waste a lot of CPU time :-)
9cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   (but is otherwise harmless).
10cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project*/
11cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
12cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project/* ------------------------------------------------------------------
13cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   This file is part of bzip2/libbzip2, a program and library for
14cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   lossless, block-sorting data compression.
15cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
16172b266ed7845eac2edc7e7f8a72371356a9a277Nick Kralevich   bzip2/libbzip2 version 1.0.6 of 6 September 2010
17172b266ed7845eac2edc7e7f8a72371356a9a277Nick Kralevich   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
18cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
19cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   Please read the WARNING, DISCLAIMER and PATENTS sections in the
20cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   README file.
21cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
22cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   This program is released under the terms of the license contained
23cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   in the file LICENSE.
24cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project	 ------------------------------------------------------------------ */
25cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
26cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
27cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project#define _FILE_OFFSET_BITS 64
28cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
29cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project#include <stdio.h>
30cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project#include <stdlib.h>
31cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
32cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project/* The number of megabytes of junk to spew out (roughly) */
33cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project#define MEGABYTES 5000
34cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
35cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project#define N_BUF 1000000
36cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Projectchar buf[N_BUF];
37cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project
38cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Projectint main ( int argc, char** argv )
39cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project{
40cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   int ii, kk, p;
41cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   srandom(1);
42cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   setbuffer ( stdout, buf, N_BUF );
43cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   for (kk = 0; kk < MEGABYTES * 515; kk+=3) {
44cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project      p = 25+random()%50;
45cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project      for (ii = 0; ii < p; ii++)
46cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project         printf ( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" );
47cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project      for (ii = 0; ii < p-1; ii++)
48cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project         printf ( "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
49cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project      for (ii = 0; ii < p+1; ii++)
50cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project         printf ( "ccccccccccccccccccccccccccccccccccccc" );
51cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   }
52cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   fflush(stdout);
53cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project   return 0;
54cfb3b2780016b4e9ab4849e22d9c3acbaf535248The Android Open Source Project}
55