0.67.305
by Bernt M. Johnsen
Copyright headres and license added |
1 |
# Copyright (C) 2008-2009 Sun Microsystems, Inc. All rights reserved.
|
2 |
# Use is subject to license terms.
|
|
3 |
#
|
|
4 |
# This program is free software; you can redistribute it and/or modify
|
|
5 |
# it under the terms of the GNU General Public License as published by
|
|
6 |
# the Free Software Foundation; version 2 of the License.
|
|
7 |
#
|
|
8 |
# This program is distributed in the hope that it will be useful, but
|
|
9 |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
11 |
# General Public License for more details.
|
|
12 |
#
|
|
13 |
# You should have received a copy of the GNU General Public License
|
|
14 |
# along with this program; if not, write to the Free Software
|
|
15 |
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
|
16 |
# USA
|
|
17 |
||
0.67.1
by Philip Stoev
initial import from internal tree |
18 |
package GenTest::Generator; |
0.67.736
by eve
First fixes towards making RQG indepentent of a particular Generator, in particular random query generation from grammars |
19 |
|
20 |
# For the sake of simplicity, all GENERATOR_* properties are defined here
|
|
21 |
# even though most of them would pertain only to GenTest::Generator::FromGrammar
|
|
22 |
||
23 |
require Exporter; |
|
24 |
||
25 |
@ISA = qw(Exporter GenTest); |
|
26 |
||
27 |
@EXPORT = qw( |
|
28 |
GENERATOR_GRAMMAR_FILE
|
|
29 |
GENERATOR_GRAMMAR_STRING
|
|
30 |
GENERATOR_GRAMMAR
|
|
31 |
GENERATOR_SEED
|
|
32 |
GENERATOR_PRNG
|
|
33 |
GENERATOR_TMPNAM
|
|
34 |
GENERATOR_THREAD_ID
|
|
35 |
GENERATOR_SEQ_ID
|
|
36 |
GENERATOR_MASK
|
|
37 |
GENERATOR_MASK_LEVEL
|
|
38 |
GENERATOR_VARCHAR_LENGTH
|
|
39 |
GENERATOR_MASKED_GRAMMAR
|
|
40 |
GENERATOR_GLOBAL_FRAME
|
|
41 |
GENERATOR_PARTICIPATING_RULES
|
|
42 |
); |
|
43 |
||
0.67.1
by Philip Stoev
initial import from internal tree |
44 |
use strict; |
45 |
||
0.67.736
by eve
First fixes towards making RQG indepentent of a particular Generator, in particular random query generation from grammars |
46 |
use constant GENERATOR_GRAMMAR_FILE => 0; |
47 |
use constant GENERATOR_GRAMMAR_STRING => 1; |
|
48 |
use constant GENERATOR_GRAMMAR => 2; |
|
49 |
use constant GENERATOR_SEED => 3; |
|
50 |
use constant GENERATOR_PRNG => 4; |
|
51 |
use constant GENERATOR_TMPNAM => 5; |
|
52 |
use constant GENERATOR_THREAD_ID => 6; |
|
53 |
use constant GENERATOR_SEQ_ID => 7; |
|
54 |
use constant GENERATOR_MASK => 8; |
|
55 |
use constant GENERATOR_MASK_LEVEL => 9; |
|
56 |
use constant GENERATOR_VARCHAR_LENGTH => 10; |
|
57 |
use constant GENERATOR_MASKED_GRAMMAR => 11; |
|
58 |
use constant GENERATOR_GLOBAL_FRAME => 12; |
|
59 |
use constant GENERATOR_PARTICIPATING_RULES => 13; # Stores the list of rules used in the last generated query |
|
60 |
||
61 |
sub new { |
|
62 |
my $class = shift; |
|
63 |
my $generator = $class->SUPER::new({ |
|
64 |
'grammar_file' => GENERATOR_GRAMMAR_FILE, |
|
65 |
'grammar_string' => GENERATOR_GRAMMAR_STRING, |
|
66 |
'grammar' => GENERATOR_GRAMMAR, |
|
67 |
'seed' => GENERATOR_SEED, |
|
68 |
'prng' => GENERATOR_PRNG, |
|
69 |
'thread_id' => GENERATOR_THREAD_ID, |
|
70 |
'mask' => GENERATOR_MASK, |
|
71 |
'mask_level' => GENERATOR_MASK_LEVEL, |
|
72 |
'varchar_length' => GENERATOR_VARCHAR_LENGTH |
|
73 |
}, @_); |
|
74 |
||
75 |
return $generator; |
|
76 |
}
|
|
77 |
||
78 |
sub prng { |
|
79 |
return $_[0]->[GENERATOR_PRNG]; |
|
80 |
}
|
|
81 |
||
82 |
sub grammar { |
|
83 |
return $_[0]->[GENERATOR_GRAMMAR]; |
|
84 |
}
|
|
85 |
||
86 |
sub grammarFile { |
|
87 |
return $_[0]->[GENERATOR_GRAMMAR_FILE]; |
|
88 |
}
|
|
89 |
||
90 |
sub grammarString { |
|
91 |
return $_[0]->[GENERATOR_GRAMMAR_STRING]; |
|
92 |
}
|
|
93 |
||
94 |
sub threadId { |
|
95 |
return $_[0]->[GENERATOR_THREAD_ID]; |
|
96 |
}
|
|
97 |
||
98 |
sub seqId { |
|
99 |
return $_[0]->[GENERATOR_SEQ_ID]; |
|
100 |
}
|
|
101 |
||
102 |
sub mask { |
|
103 |
return $_[0]->[GENERATOR_MASK]; |
|
104 |
}
|
|
105 |
||
106 |
sub maskLevel { |
|
107 |
return $_[0]->[GENERATOR_MASK_LEVEL]; |
|
108 |
}
|
|
109 |
||
110 |
sub maskedGrammar { |
|
111 |
return $_[0]->[GENERATOR_MASKED_GRAMMAR]; |
|
112 |
}
|
|
113 |
||
0.67.1
by Philip Stoev
initial import from internal tree |
114 |
1; |