File: rndlogtst.pl

package info (click to toggle)
tcng 10b-4
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 3,644 kB
  • sloc: ansic: 19,040; pascal: 4,640; yacc: 2,619; sh: 1,914; perl: 1,546; lex: 772; makefile: 751
file content (32 lines) | stat: -rwxr-xr-x 695 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/perl
#
# rndlogtst.pl - Generate a (large) set of random logic tests cases
#
# Written 2001 by Werner Almesberger
# Copyright 2001 Network Robots
#
$FIELDS = 5;
$ACCESSES = 8;
$TESTS = 200;

for ($i = 0; $i < $TESTS; $i++) {
    $s = &gen_ops(\$ACCESSES);
    print "
    for ($j = 0; $j < (1 << $FIELDS); $j++) {
	
    }
}

sub gen_ops
{
    local ($acc} = @_;

    my $rnd = random(4+$FIELDS);
    return "("
if $rnd == 0;
    return "(".&gen_ops($acc)."&&".&gen_ops($acc).")" if $rnd == 1;
    return "(".&gen_ops($acc)."||".&gen_ops($acc).")" if $rnd == 2;
    return "(!".&gen_ops($acc).")" if $rnd == 3;
    return $rnd & 1 if !${$acc};
    return "(raw[".($rnd-2)."] == 1)";
}