0.67.1
by Philip Stoev
initial import from internal tree |
1 |
use strict; |
2 |
use lib 'lib'; |
|
3 |
use lib '../lib'; |
|
4 |
use DBI; |
|
5 |
||
6 |
use GenTest; |
|
7 |
use GenTest::Constants; |
|
8 |
use GenTest::Simplifier::Grammar; |
|
9 |
use GenTest::Generator::FromGrammar; |
|
10 |
||
11 |
use Test::More tests => 1; |
|
12 |
||
13 |
my $initial_grammar_file = 't/simplify-empty.yy'; |
|
14 |
||
15 |
open(INITIAL_GRAMMAR, $initial_grammar_file) or die $!; |
|
16 |
read(INITIAL_GRAMMAR, my $initial_grammar_string , -s $initial_grammar_file); |
|
17 |
close(INITIAL_GRAMMAR); |
|
18 |
||
19 |
my $simplifier = GenTest::Simplifier::Grammar->new( |
|
20 |
oracle => sub { |
|
21 |
my $oracle_grammar_string = shift; |
|
22 |
||
23 |
my $tmpfile = tmpdir().time().'.yy'; |
|
24 |
||
25 |
open (GRAMMAR, ">$tmpfile") or die "unable to create $tmpfile: $!"; |
|
26 |
print GRAMMAR $oracle_grammar_string; |
|
27 |
my $rqg_status = system("perl gensql.pl --grammar=$tmpfile"); |
|
28 |
$rqg_status = $rqg_status >> 8; |
|
29 |
||
30 |
unlink($tmpfile); |
|
31 |
||
32 |
if ($rqg_status == STATUS_ENVIRONMENT_FAILURE) { |
|
33 |
return 1; |
|
34 |
} else { |
|
35 |
return 0; |
|
36 |
}
|
|
37 |
}
|
|
38 |
);
|
|
39 |
||
40 |
my $simplified_grammar_string = $simplifier->simplify($initial_grammar_string); |
|
41 |
print "Simplified grammar:\n\n$simplified_grammar_string;\n\n"; |
|
42 |
||
43 |
ok(defined $simplified_grammar_string, "simplify-grammar"); |
|
44 |