~drizzle-trunk/drizzle/development

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