2020
2121import java .io .File ;
2222import java .io .IOException ;
23+ import java .util .Arrays ;
24+ import java .util .List ;
2325import java .util .logging .Level ;
2426import java .util .logging .Logger ;
2527import net .sf .jsqlparser .JSQLParserException ;
@@ -46,6 +48,157 @@ public class SpecialOracleTest {
4648 private static final File SQLS_DIR = new File ("target/test-classes/net/sf/jsqlparser/statement/oracle-tests" );
4749 private static final Logger LOG = Logger .getLogger (SpecialOracleTest .class .getName ());
4850
51+ private List <String > successes = Arrays .asList ("aggregate01.sql" ,
52+ "analytic_query06.sql" ,
53+ "analytic_query08.sql" ,
54+ "analytic_query09.sql" ,
55+ "analytic_query10.sql" ,
56+ "bindvar01.sql" ,
57+ "bindvar02.sql" ,
58+ "case_when01.sql" ,
59+ "case_when02.sql" ,
60+ "case_when03.sql" ,
61+ "case_when04.sql" ,
62+ "case_when05.sql" ,
63+ "cast_multiset01.sql" ,
64+ "cast_multiset02.sql" ,
65+ "cast_multiset03.sql" ,
66+ "cast_multiset04.sql" ,
67+ "cast_multiset05.sql" ,
68+ "cast_multiset06.sql" ,
69+ "cast_multiset08.sql" ,
70+ "cast_multiset10.sql" ,
71+ "cast_multiset11.sql" ,
72+ "cast_multiset12.sql" ,
73+ "cast_multiset16.sql" ,
74+ "cast_multiset17.sql" ,
75+ "cast_multiset20.sql" ,
76+ "cast_multiset21.sql" ,
77+ "cast_multiset23.sql" ,
78+ "cast_multiset25.sql" ,
79+ "cast_multiset28.sql" ,
80+ "cast_multiset29.sql" ,
81+ "cast_multiset30.sql" ,
82+ "cast_multiset31.sql" ,
83+ "cast_multiset32.sql" ,
84+ "cast_multiset33.sql" ,
85+ "cast_multiset35.sql" ,
86+ "cast_multiset36.sql" ,
87+ "cast_multiset40.sql" ,
88+ "cast_multiset41.sql" ,
89+ "cast_multiset42.sql" ,
90+ "cast_multiset43.sql" ,
91+ "columns01.sql" ,
92+ "condition01.sql" ,
93+ "condition02.sql" ,
94+ "condition03.sql" ,
95+ "condition04.sql" ,
96+ "condition05.sql" ,
97+ "condition07.sql" ,
98+ "condition09.sql" ,
99+ "condition10.sql" ,
100+ "condition12.sql" ,
101+ "condition14.sql" ,
102+ "condition20.sql" ,
103+ "connect_by02.sql" ,
104+ "connect_by03.sql" ,
105+ "connect_by04.sql" ,
106+ "connect_by05.sql" ,
107+ "connect_by07.sql" ,
108+ "datetime02.sql" ,
109+ "datetime04.sql" ,
110+ "datetime05.sql" ,
111+ "datetime06.sql" ,
112+ "dblink01.sql" ,
113+ "for_update01.sql" ,
114+ "for_update02.sql" ,
115+ "for_update03.sql" ,
116+ "for_update05.sql" ,
117+ "function01.sql" ,
118+ "function02.sql" ,
119+ "groupby08.sql" ,
120+ "groupby09.sql" ,
121+ "groupby12.sql" ,
122+ "groupby14.sql" ,
123+ "groupby19.sql" ,
124+ "groupby20.sql" ,
125+ "groupby21.sql" ,
126+ "groupby22.sql" ,
127+ "groupby23.sql" ,
128+ "interval02.sql" ,
129+ "interval04.sql" ,
130+ "join01.sql" ,
131+ "join02.sql" ,
132+ "join03.sql" ,
133+ "join04.sql" ,
134+ "join06.sql" ,
135+ "join07.sql" ,
136+ "join08.sql" ,
137+ "join09.sql" ,
138+ "join10.sql" ,
139+ "join11.sql" ,
140+ "join12.sql" ,
141+ "join14.sql" ,
142+ "join15.sql" ,
143+ "join16.sql" ,
144+ "join18.sql" ,
145+ "join19.sql" ,
146+ "join20.sql" ,
147+ "join21.sql" ,
148+ "keywordasidentifier01.sql" ,
149+ "keywordasidentifier02.sql" ,
150+ "keywordasidentifier03.sql" ,
151+ "keywordasidentifier05.sql" ,
152+ "lexer02.sql" ,
153+ "lexer03.sql" ,
154+ "lexer04.sql" ,
155+ "lexer05.sql" ,
156+ "like01.sql" ,
157+ "order_by01.sql" ,
158+ "order_by02.sql" ,
159+ "order_by03.sql" ,
160+ "order_by04.sql" ,
161+ "order_by05.sql" ,
162+ "order_by06.sql" ,
163+ "pivot02.sql" ,
164+ "pivot03.sql" ,
165+ "pivot05.sql" ,
166+ "pivot06.sql" ,
167+ "pivot07.sql" ,
168+ "pivot08.sql" ,
169+ "pivot09.sql" ,
170+ "pivot11.sql" ,
171+ "query_factoring01.sql" ,
172+ "query_factoring02.sql" ,
173+ "query_factoring03.sql" ,
174+ "query_factoring06.sql" ,
175+ "query_factoring08.sql" ,
176+ "query_factoring09.sql" ,
177+ "query_factoring11.sql" ,
178+ "query_factoring12.sql" ,
179+ "set01.sql" ,
180+ "set02.sql" ,
181+ "simple02.sql" ,
182+ "simple03.sql" ,
183+ "simple06.sql" ,
184+ "simple07.sql" ,
185+ "simple08.sql" ,
186+ "simple09.sql" ,
187+ "simple10.sql" ,
188+ "simple11.sql" ,
189+ "simple12.sql" ,
190+ "simple13.sql" ,
191+ "union01.sql" ,
192+ "union02.sql" ,
193+ "union03.sql" ,
194+ "union04.sql" ,
195+ "union05.sql" ,
196+ "union06.sql" ,
197+ "union07.sql" ,
198+ "union08.sql" ,
199+ "union09.sql" ,
200+ "union10.sql" );
201+
49202 @ Test
50203 public void testAllSqlsParseDeparse () throws IOException {
51204 int count = 0 ;
@@ -57,9 +210,11 @@ public void testAllSqlsParseDeparse() throws IOException {
57210 count ++;
58211 LOG .log (Level .INFO , "testing {0}" , file .getName ());
59212 String sql = FileUtils .readFileToString (file );
213+ boolean parsed = false ;
60214 try {
61215 assertSqlCanBeParsedAndDeparsed (sql , true );
62216 success ++;
217+ parsed = true ;
63218 LOG .info (" -> SUCCESS" );
64219 } catch (JSQLParserException ex ) {
65220 ex .printStackTrace ();
@@ -70,6 +225,10 @@ public void testAllSqlsParseDeparse() throws IOException {
70225 } catch (ComparisonFailure ex ) {
71226 LOG .log (Level .INFO , " -> PROBLEM {0}" , ex .toString ());
72227 }
228+
229+ if (!parsed && successes .contains (file .getName ())) {
230+ LOG .log (Level .WARNING , " -> regression on file {0}" , file .getName ());
231+ }
73232 }
74233 }
75234
0 commit comments