001// ***** This file is automatically generated by SplitterFactoryTestUpdater.java
002
003package daikon.test.split;
004
005import daikon.*;
006import daikon.split.*;
007import gnu.getopt.*;
008import java.io.*;
009import java.util.*;
010import junit.framework.*;
011import org.junit.Test;
012import org.plumelib.util.FilesPlume;
013import org.plumelib.util.StringsPlume;
014import org.plumelib.util.UtilPlume;
015import static org.junit.Assert.fail;
016
017import org.checkerframework.checker.nullness.qual.*;
018
019/**
020 * THIS CLASS WAS GENERATED BY SplitterFactoryTestUpdater. Therefore, it is a bad idea
021 * to directly edit this class's code for all but temporary reasons. Any permanent
022 * changes should be made through SplitterFactoryUpdater.
023 *
024 * <p>This class contains regression tests for the SplitterFactory class. The tests
025 * directly test the Java files produced by the load_splitters method by comparing them
026 * against goal files. Note that it is normal for some classes not to compile during
027 * this test.
028 *
029 * <p>These tests assume that the goal files are contained in the directory:
030 * "daikon/test/split/targets/"
031 *
032 * <p>These tests ignore extra white spaces.
033 */
034public class SplitterFactoryTest {
035  // Because the SplitterFactory sequentially numbers the
036  // java files it produces, changing the order that the setUpTests
037  // commands are run will cause the tests to fail.
038
039  private static String targetDir = "daikon/test/split/targets/";
040
041  private static @Nullable String tempDir = null;
042
043  private static boolean saveFiles = false;
044
045  private static String usage =
046    StringsPlume.joinLines(
047      "Usage:  java daikon.tools.CreateSpinfo FILE.java ...",
048      "  -s       Save (do not delete) the splitter java files in the temp directory",
049      "  -h       Display this usage message");
050
051  public static void main(String[] args) {
052    Getopt g = new Getopt("daikon.test.split.SplitterFactoryTest", args, "hs");
053    int c;
054    while ((c = g.getopt()) != -1) {
055      switch (c) {
056        case 's':
057          saveFiles = true;
058          break;
059        case 'h':
060          System.out.println(usage);
061          System.exit(1);
062          break;
063        case '?':
064          break;
065        default:
066          System.out.println("getopt() returned " + c);
067          break;
068      }
069    }
070  }
071
072  private static void setUpTests() {
073    List<String> spinfoFiles;
074    List<String> declsFiles;
075    createSplitterFiles(
076        "daikon/test/split/targets/StreetNumberSet.spinfo", "daikon/test/split/targets/StreetNumberSet.decls");
077    createSplitterFiles(
078        "daikon/test/split/targets/Fib.spinfo", "daikon/test/split/targets/Fib.decls");
079    createSplitterFiles(
080        "daikon/test/split/targets/QueueAr.spinfo", "daikon/test/split/targets/QueueAr.decls");
081    createSplitterFiles(
082        "daikon/test/split/targets/BigFloat.spinfo", "daikon/test/split/targets/BigFloat.decls");
083  }
084
085  /** Sets up the test by generating the needed splitter java files. */
086  private static void createSplitterFiles(String spinfo, String decl) {
087    List<String> spinfoFiles = new ArrayList<>();
088    spinfoFiles.add(spinfo);
089    List<String> declsFiles = Collections.singletonList(decl);
090    createSplitterFiles(spinfoFiles, declsFiles);
091  }
092
093  /** Sets up the test by generating the needed splitter java files. */
094  private static void createSplitterFiles(List<String> spinfos, List<String> decls) {
095    Set<File> spFiles = new HashSet<>();
096    PptMap allPpts = new PptMap();
097    for (String spinfo : spinfos) {
098      spFiles.add(new File(spinfo));
099    }
100    try {
101      if (saveFiles) {
102        SplitterFactory.dkconfig_delete_splitters_on_exit = false;
103      }
104      PptSplitter.dkconfig_suppressSplitterErrors = true;
105      Daikon.create_splitters(spFiles);
106      for (String declsFile : decls) {
107        FileIO.resetNewDeclFormat();
108        FileIO.read_data_trace_file(declsFile, allPpts);
109      }
110      tempDir = SplitterFactory.getTempDir();
111    } catch (IOException e) {
112      throw new RuntimeException(e);
113    }
114  }
115
116  /** Returns true iff files are the same (ignoring extra white space). */
117  public static void assertEqualFiles(String f1, String f2) {
118    if (!FilesPlume.equalFiles(f1, f2)) {
119      fail("Files " + f1 + " and " + f2 + " differ.");
120    }
121  }
122
123  public static void assertEqualFiles(String f1) {
124    assertEqualFiles(tempDir + f1, targetDir + f1 + ".goal");
125  }
126
127  @Test
128  public static void testMapQuick1_StreetNumberSet_StreetNumberSet_0() {
129    assertEqualFiles("MapQuick1_StreetNumberSet_StreetNumberSet_0.java");
130  }
131
132  @Test
133  public static void testMapQuick1_StreetNumberSet_StreetNumberSet_1() {
134    assertEqualFiles("MapQuick1_StreetNumberSet_StreetNumberSet_1.java");
135  }
136
137  @Test
138  public static void testMapQuick1_StreetNumberSet_StreetNumberSet_2() {
139    assertEqualFiles("MapQuick1_StreetNumberSet_StreetNumberSet_2.java");
140  }
141
142  @Test
143  public static void testMapQuick1_StreetNumberSet_StreetNumberSet_3() {
144    assertEqualFiles("MapQuick1_StreetNumberSet_StreetNumberSet_3.java");
145  }
146
147  @Test
148  public static void testMapQuick1_StreetNumberSet_checkRep_4() {
149    assertEqualFiles("MapQuick1_StreetNumberSet_checkRep_4.java");
150  }
151
152  @Test
153  public static void testMapQuick1_StreetNumberSet_checkRep_5() {
154    assertEqualFiles("MapQuick1_StreetNumberSet_checkRep_5.java");
155  }
156
157  @Test
158  public static void testMapQuick1_StreetNumberSet_contains_6() {
159    assertEqualFiles("MapQuick1_StreetNumberSet_contains_6.java");
160  }
161
162  @Test
163  public static void testMapQuick1_StreetNumberSet_contains_7() {
164    assertEqualFiles("MapQuick1_StreetNumberSet_contains_7.java");
165  }
166
167  @Test
168  public static void testMapQuick1_StreetNumberSet_contains_8() {
169    assertEqualFiles("MapQuick1_StreetNumberSet_contains_8.java");
170  }
171
172  @Test
173  public static void testMapQuick1_StreetNumberSet_contains_9() {
174    assertEqualFiles("MapQuick1_StreetNumberSet_contains_9.java");
175  }
176
177  @Test
178  public static void testMapQuick1_StreetNumberSet_contains_10() {
179    assertEqualFiles("MapQuick1_StreetNumberSet_contains_10.java");
180  }
181
182  @Test
183  public static void testMapQuick1_StreetNumberSet_contains_11() {
184    assertEqualFiles("MapQuick1_StreetNumberSet_contains_11.java");
185  }
186
187  @Test
188  public static void testMapQuick1_StreetNumberSet_contains_12() {
189    assertEqualFiles("MapQuick1_StreetNumberSet_contains_12.java");
190  }
191
192  @Test
193  public static void testMapQuick1_StreetNumberSet_contains_13() {
194    assertEqualFiles("MapQuick1_StreetNumberSet_contains_13.java");
195  }
196
197  @Test
198  public static void testMapQuick1_StreetNumberSet_orderStatistic_14() {
199    assertEqualFiles("MapQuick1_StreetNumberSet_orderStatistic_14.java");
200  }
201
202  @Test
203  public static void testMapQuick1_StreetNumberSet_orderStatistic_15() {
204    assertEqualFiles("MapQuick1_StreetNumberSet_orderStatistic_15.java");
205  }
206
207  @Test
208  public static void testMapQuick1_StreetNumberSet_size_16() {
209    assertEqualFiles("MapQuick1_StreetNumberSet_size_16.java");
210  }
211
212  @Test
213  public static void testMapQuick1_StreetNumberSet_size_17() {
214    assertEqualFiles("MapQuick1_StreetNumberSet_size_17.java");
215  }
216
217  @Test
218  public static void testmisc_Fib_main_18() {
219    assertEqualFiles("misc_Fib_main_18.java");
220  }
221
222  @Test
223  public static void testDataStructures_QueueAr_isEmpty_19() {
224    assertEqualFiles("DataStructures_QueueAr_isEmpty_19.java");
225  }
226
227  @Test
228  public static void testDataStructures_QueueAr_isEmpty_20() {
229    assertEqualFiles("DataStructures_QueueAr_isEmpty_20.java");
230  }
231
232  @Test
233  public static void testDataStructures_QueueAr_isFull_21() {
234    assertEqualFiles("DataStructures_QueueAr_isFull_21.java");
235  }
236
237  @Test
238  public static void testDataStructures_QueueAr_isFull_22() {
239    assertEqualFiles("DataStructures_QueueAr_isFull_22.java");
240  }
241
242  @Test
243  public static void testDataStructures_QueueAr_getFront_23() {
244    assertEqualFiles("DataStructures_QueueAr_getFront_23.java");
245  }
246
247  @Test
248  public static void testDataStructures_QueueAr_getFront_24() {
249    assertEqualFiles("DataStructures_QueueAr_getFront_24.java");
250  }
251
252  @Test
253  public static void testDataStructures_QueueAr_dequeue_25() {
254    assertEqualFiles("DataStructures_QueueAr_dequeue_25.java");
255  }
256
257  @Test
258  public static void testDataStructures_QueueAr_dequeue_26() {
259    assertEqualFiles("DataStructures_QueueAr_dequeue_26.java");
260  }
261
262  @Test
263  public static void testDataStructures_QueueAr_dequeue_27() {
264    assertEqualFiles("DataStructures_QueueAr_dequeue_27.java");
265  }
266
267  @Test
268  public static void testDataStructures_QueueAr_dequeue_28() {
269    assertEqualFiles("DataStructures_QueueAr_dequeue_28.java");
270  }
271
272  @Test
273  public static void testDataStructures_QueueAr_enqueue_29() {
274    assertEqualFiles("DataStructures_QueueAr_enqueue_29.java");
275  }
276
277  @Test
278  public static void testDataStructures_QueueAr_enqueue_30() {
279    assertEqualFiles("DataStructures_QueueAr_enqueue_30.java");
280  }
281
282  @Test
283  public static void testDataStructures_QueueAr_enqueue_31() {
284    assertEqualFiles("DataStructures_QueueAr_enqueue_31.java");
285  }
286
287  @Test
288  public static void testDataStructures_QueueAr_enqueue_32() {
289    assertEqualFiles("DataStructures_QueueAr_enqueue_32.java");
290  }
291
292  @Test
293  public static void testMath__BigFloat_bdiv__33() {
294    assertEqualFiles("Math__BigFloat_bdiv__33.java");
295  }
296
297  @Test
298  public static void testMath__BigFloat_bdiv__34() {
299    assertEqualFiles("Math__BigFloat_bdiv__34.java");
300  }
301
302  @Test
303  public static void testMath__BigFloat_bdiv__35() {
304    assertEqualFiles("Math__BigFloat_bdiv__35.java");
305  }
306
307  @Test
308  public static void testMath__BigFloat_bdiv__36() {
309    assertEqualFiles("Math__BigFloat_bdiv__36.java");
310  }
311
312  @Test
313  public static void testMath__BigFloat_bdiv__37() {
314    assertEqualFiles("Math__BigFloat_bdiv__37.java");
315  }
316
317  @Test
318  public static void testMath__BigFloat_bdiv__38() {
319    assertEqualFiles("Math__BigFloat_bdiv__38.java");
320  }
321
322  @Test
323  public static void testMath__BigFloat_bdiv__39() {
324    assertEqualFiles("Math__BigFloat_bdiv__39.java");
325  }
326
327  @Test
328  public static void testMath__BigFloat_bmul__40() {
329    assertEqualFiles("Math__BigFloat_bmul__40.java");
330  }
331
332  @Test
333  public static void testMath__BigFloat_bmul__41() {
334    assertEqualFiles("Math__BigFloat_bmul__41.java");
335  }
336
337  @Test
338  public static void testMath__BigFloat_bmul__42() {
339    assertEqualFiles("Math__BigFloat_bmul__42.java");
340  }
341
342  @Test
343  public static void testMath__BigFloat_bmul__43() {
344    assertEqualFiles("Math__BigFloat_bmul__43.java");
345  }
346
347}