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}