aboutsummaryrefslogtreecommitdiff
path: root/testdir/T.recache
blob: aa6d02d864526d76902fa522f48977d289b08256 (plain)
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
33
echo T.recache: test re cache in b.c
	# thanks to ross ridge for this horror

awk=${awk-../a.out}

echo b >foo1
$awk '
BEGIN {
        #
        # Fill up DFA cache with run-time REs that have all been
        # used twice.
        #
        CACHE_SIZE=64
        for(i = 0; i < CACHE_SIZE; i++) {
                for(j = 0; j < 2; j++) {
                        "" ~ i "";
                }
        }
        #
        # Now evalutate an expression that uses two run-time REs
        # that have never been used before.  The second RE will
        # push the first out of the cache while the first RE is 
        # still needed.
        #
        x = "a"
        reg1 = "[Aa]"
        reg2 = "A"
        sub(reg1, x ~ reg2 ? "B" : "b", x)

        print x
}
' >foo2
diff foo1 foo2 || echo 'BAD: T.recache'