1 package org.kit.furia;
2
3 import static org.junit.Assert.*;
4
5 import java.io.File;
6 import java.io.IOException;
7 import java.util.Properties;
8
9 import org.ajmm.obsearch.index.utils.Directory;
10 import org.apache.log4j.Logger;
11 import org.apache.log4j.PropertyConfigurator;
12 import org.junit.Before;
13
14 import org.junit.After;
15 import org.junit.BeforeClass;
16 import org.junit.Test;
17 import org.kit.furia.fragment.FragmentBuilderClient;
18 import org.kit.furia.misc.FuriaProperties;
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 public class OverallTest {
46 private static final Logger logger = Logger.getLogger("OverallTest");
47
48
49
50
51 @Before
52 public void setUp() throws Exception {
53 }
54
55
56 FuriaChanEngine engine = null;
57 @Test
58 public void testAll() throws IOException, Exception{
59
60 try {
61 PropertyConfigurator.configure(FuriaProperties.getProperty("log4j.file"));
62 } catch (Exception e) {
63 System.err.print("Make sure log4j is configured properly"
64 + e.getMessage());
65 e.printStackTrace();
66 assertTrue(false);
67 }
68
69
70 String output = FuriaProperties.getProperty("test.db.output");
71 File outputDir = new File(output);
72
73 Directory.deleteDirectory(outputDir);
74 assertTrue(outputDir.mkdirs());
75 fragmentDataSet("JPackageClass");
76 fragmentDataSet("JPackageClassObfuscatedSandMarkNoClassEnc");
77 fragmentDataSet("JPackageClassObfuscatedZelix");
78
79
80
81
82
83 File furiaChanDBDir = new File(outputDir, "FuriaChanDB");
84 Directory.deleteDirectory(furiaChanDBDir);
85 engine = new FuriaChanEngine(furiaChanDBDir);
86
87 engine.insert(new File(outputDir, "JPackageClass"));
88 engine.freeze();
89 engine.close();
90
91 engine = new FuriaChanEngine(furiaChanDBDir);
92 engine.setValidate(true);
93 engine.setN((short)10);
94 engine.setR((short) 3);
95 logger.info("*** Matching base ***");
96
97 assertEquals(engine.search(new File(outputDir, "JPackageClass")), 1f);
98 logger.info("*** Matching zelix ***");
99 assertEquals(engine.search(new File(outputDir, "JPackageClassObfuscatedZelix")), 1f);
100
101 assertEquals(engine.search(new File(outputDir, "JPackageClassObfuscatedSandMarkNoClassEnc")), 1f);
102 }
103
104 @After
105 public void closeEngine() throws Exception{
106 if(engine != null){
107 engine.close();
108 }
109 }
110
111
112
113
114
115
116 private void fragmentDataSet(String dataset) throws Exception{
117 String input = FuriaProperties.getProperty("test.db.input") + File.separator + dataset;
118 String output = FuriaProperties.getProperty("test.db.output")+ File.separator + dataset ;
119
120 File outputFile = new File(output);
121 Directory.deleteDirectory(outputFile);
122 FragmentBuilderClient c = new FragmentBuilderClient(true,
123 new File(input), Runtime.getRuntime().availableProcessors(), outputFile, true,"asm");
124
125 }
126
127 }