analysis: Move plugins to their own sub-directory
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / stubs / org / eclipse / tracecompass / tmf / tests / stubs / CreateTestFiles.java
CommitLineData
d18dd09b 1/*******************************************************************************
ed902a2b 2 * Copyright (c) 2009, 2014 Ericsson
0283f7ff 3 *
d18dd09b
ASL
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
0283f7ff 8 *
d18dd09b 9 * Contributors:
165c977c 10 * Francois Chouinard - Initial API and implementation
d18dd09b
ASL
11 *******************************************************************************/
12
2bdf0193 13package org.eclipse.tracecompass.tmf.tests.stubs;
d18dd09b
ASL
14
15import java.io.BufferedOutputStream;
16import java.io.DataOutputStream;
165c977c 17import java.io.File;
d18dd09b
ASL
18import java.io.FileNotFoundException;
19import java.io.FileOutputStream;
20import java.io.IOException;
165c977c 21import java.util.Random;
d18dd09b
ASL
22
23/**
24 * <b><u>CreateTestFiles</u></b>
25 * <p>
26 * Create a number of event test files of various lengths.
27 * <p>
28 * Events have the following format:
29 * <ul>
30 * <li> [timestamp] [source] [type] [ref] [field]*
31 * <li> There are NB_SOURCES sources and NB_TYPES types.
32 * <li> The number of fields (0 .. NB_TYPES-1) depends on the event type.
33 * </ul>
34 */
35public class CreateTestFiles {
36
37 // ========================================================================
38 // Constants
39 // ========================================================================
40
085d898f 41 private static final String DIRECTORY = "testfiles";
d5efe032 42 // private static final String FILE_NAMES[] = { "Test-10", "Test-1K", "Test-10K", "Test-100K" };
085d898f
FC
43 // private static final int FILE_SIZES[] = { 10 , 1000 , 10000 , 100000 };
44 private static final String FILE_NAMES[] = { "Test-10K" };
85fb0e54 45 private static final int FILE_SIZES[] = { 10000 };
d18dd09b 46
085d898f
FC
47 private static final int NB_SOURCES = 15;
48 private static final int NB_TYPES = 7;
d18dd09b
ASL
49
50 // ========================================================================
51 // Constructors
52 // ========================================================================
53
085d898f 54 /**
0283f7ff 55 * @param args unused
d18dd09b 56 */
085d898f
FC
57 public static void main(final String[] args) {
58
165c977c 59 try {
50adc88e 60 System.out.println("Creating test files in directory: " + new File(".").getCanonicalPath() + File.separator + DIRECTORY);
085d898f 61 } catch (final IOException e) {
165c977c
FC
62 e.printStackTrace();
63 }
64
0283f7ff 65 for (int i = 0; i < FILE_SIZES.length; i++) {
d18dd09b 66 try {
085d898f
FC
67 createTestFile("testfiles" + File.separator + "O-" + FILE_NAMES[i], FILE_SIZES[i], true, true);
68 createTestFile("testfiles" + File.separator + "E-" + FILE_NAMES[i], FILE_SIZES[i], true, false);
85fb0e54 69 createTestFile("testfiles" + File.separator + "R-" + FILE_NAMES[i], FILE_SIZES[i], false, false);
085d898f
FC
70 } catch (final FileNotFoundException e) {
71 } catch (final IOException e) {
d18dd09b 72 }
0283f7ff 73 }
165c977c 74
085d898f 75 System.out.println("Done.");
d18dd09b
ASL
76 }
77
78 // ========================================================================
79 // Operators
80 // ========================================================================
81
82 /**
83 * @param file
84 * @param size
165c977c 85 * @param monotonic
d18dd09b
ASL
86 * @throws FileNotFoundException
87 * @throws IOException
88 */
ccf2bbb4
AM
89 private static void createTestFile(final String file, final int size,
90 final boolean monotonic, final boolean odd)
91 throws IOException {
d18dd09b 92 System.out.println("Creating " + file);
ccf2bbb4 93 try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));) {
d18dd09b 94
ccf2bbb4
AM
95 final Random generator = new Random(19580427 + size);
96 long ts = (monotonic && odd) ? -1 : 0;
97 for (int i = 0; i < size; i++) {
98 ts += monotonic ? 2 : generator.nextInt(10);
99 final int sourceIndex = i % NB_SOURCES;
100 final int typeIndex = i % NB_TYPES;
101 out.writeLong(ts); // Timestamp
102 out.writeUTF("Source-" + sourceIndex); // Source
103 out.writeUTF("Type-" + typeIndex); // Type
104 out.writeInt(i + 1); // Reference (event #)
105 for (int j = 0; j < typeIndex; j++) {
106 out.writeUTF("Field-" + sourceIndex + "-" + j);
107 }
0283f7ff 108 }
ccf2bbb4 109 out.flush();
d18dd09b 110 }
d18dd09b 111 }
165c977c 112
d18dd09b 113}
This page took 0.089786 seconds and 5 git commands to generate.