diff options
author | dotdotisdead <dotdotisdead@a3eca27d-f21b-0410-9b4a-6511e771f64e> | 2007-01-11 07:51:58 +0000 |
---|---|---|
committer | dotdotisdead <dotdotisdead@a3eca27d-f21b-0410-9b4a-6511e771f64e> | 2007-01-11 07:51:58 +0000 |
commit | d0e3d3e2b35bf442277d2e1b9901df6ce4bdcee9 (patch) | |
tree | 1041138eb5a5175b5fffd7ecc8c89819be9f4943 | |
parent | dd34abf7bac54838473e24d2f8c7eec62646a8cd (diff) |
Testing random configurations to update xdelta3-cfgs.h, preliminary.
-rwxr-xr-x | xdelta3/xdelta3-regtest.py | 59 | ||||
-rwxr-xr-x | xdelta3/xdelta3.c | 2 | ||||
-rwxr-xr-x | xdelta3/xdelta3.h | 1 |
3 files changed, 40 insertions, 22 deletions
diff --git a/xdelta3/xdelta3-regtest.py b/xdelta3/xdelta3-regtest.py index bf1693d..fdebffe 100755 --- a/xdelta3/xdelta3-regtest.py +++ b/xdelta3/xdelta3-regtest.py | |||
@@ -593,14 +593,15 @@ def BigFileRun(f1, f2): | |||
593 | testcases = [ | 593 | testcases = [ |
594 | # large_look large_step small_look small_chain small_lchain | 594 | # large_look large_step small_look small_chain small_lchain |
595 | # ssmatch try_lazy max_lazy long_enough promote | 595 | # ssmatch try_lazy max_lazy long_enough promote |
596 | ['-DC', '16,32,4,2,2,1,0,0,64,0'], | 596 | ['-DC', '9,7,4,8,1,1,1,16,114,0'], |
597 | ['-DC', '24,32,4,2,2,1,0,0,64,0'], | 597 | ['-DC', '9,6,4,8,1,1,1,16,114,0'], |
598 | ['-DC', '32,32,4,2,2,1,0,0,64,0'], | 598 | ['-DC', '9,5,4,8,1,1,1,16,114,0'], |
599 | ['-DC', '9,4,4,8,1,1,1,16,114,0'], | ||
599 | ] | 600 | ] |
600 | 601 | ||
601 | for test in testcases: | 602 | for test in testcases: |
602 | runner = Xdelta3Pair() | 603 | runner = Xdelta3Pair() |
603 | runner.extra = ['-DC', test] | 604 | runner.extra = test |
604 | result = TimeRun(runner.Runner(f1, 1, f2, 2)) | 605 | result = TimeRun(runner.Runner(f1, 1, f2, 2)) |
605 | 606 | ||
606 | print 'test %s dsize %d: time %.7f: in %u/%u trials' % \ | 607 | print 'test %s dsize %d: time %.7f: in %u/%u trials' % \ |
@@ -615,34 +616,45 @@ def BigFileRun(f1, f2): | |||
615 | def RandomBigRun(f1, f2): | 616 | def RandomBigRun(f1, f2): |
616 | 617 | ||
617 | input_ranges = [ | 618 | input_ranges = [ |
618 | (8, 32, 4), | 619 | (7, 13, 'large_look'), |
619 | (8, 64, 8), | 620 | (1, 50, 'large_step'), |
620 | (4, 6, 1), | 621 | (4, 6, 'small_look'), |
621 | (1, 8, 1), | 622 | (1, 10, 'small_chain'), |
622 | (1, 4, 1), | 623 | (1, 5, 'small_lchain'), |
623 | (0, 1, 1), | 624 | (0, 0, 'ssmatch'), |
624 | (0, 1, 1), | 625 | (0, 1, 'trylazy'), |
625 | (8, 128, 32), | 626 | (1, 32, 'max_lazy'), |
626 | (8, 128, 32), | 627 | (1, 64, 'long_enough'), |
627 | (0, 1, 1), | 628 | (0, 1, 'promote'), |
628 | ] | 629 | ] |
629 | 630 | ||
630 | config = [] | 631 | config = [] |
631 | rand = random.Random() | 632 | rand = random.Random() |
633 | map = {} | ||
632 | 634 | ||
633 | for input in input_ranges: | 635 | for input in input_ranges: |
634 | config.append(str(rand.randrange(input[0], input[1] + 1, input[2]))) | 636 | x = rand.randrange(input[0], input[1] + 1) |
637 | config.append(x) | ||
638 | map[input[2]] = x | ||
639 | #end | ||
640 | |||
641 | if map['small_chain'] < map['small_lchain']: | ||
642 | return | ||
643 | |||
644 | if map['large_look'] < map['small_look']: | ||
645 | return | ||
646 | |||
647 | strs = [str(x) for x in config] | ||
635 | 648 | ||
636 | runner = Xdelta3Pair() | 649 | runner = Xdelta3Pair() |
637 | runner.extra = ['-DC', ','.join(config)] | 650 | runner.extra = ['-DC', ','.join(strs)] |
638 | result = TimeRun(runner.Runner(f1, 1, f2, 2)) | 651 | result = TimeRun(runner.Runner(f1, 1, f2, 2)) |
639 | 652 | ||
640 | print 'test %s dsize %d: time %.7f: in %u/%u trials' % \ | 653 | print 'config %s dsize %d time %.7f in %u trials' % \ |
641 | (','.join(config), | 654 | (' '.join(strs), |
642 | result.r1.dsize, | 655 | result.r1.dsize, |
643 | result.time.mean, | 656 | result.time.mean, |
644 | result.trials, | 657 | result.trials) |
645 | result.reps) | ||
646 | 658 | ||
647 | def RunSpeed(): | 659 | def RunSpeed(): |
648 | for L in Decimals(MAX_RUN): | 660 | for L in Decimals(MAX_RUN): |
@@ -661,7 +673,12 @@ if __name__ == "__main__": | |||
661 | #BigFileRuns(rcsf) | 673 | #BigFileRuns(rcsf) |
662 | #BigFileRun("/tmp/big.1", "/tmp/big.2") | 674 | #BigFileRun("/tmp/big.1", "/tmp/big.2") |
663 | while 1: | 675 | while 1: |
664 | RandomBigRun("/tmp/big.1", "/tmp/big.2") | 676 | try: |
677 | RandomBigRun("/tmp/big.1", "/tmp/big.2") | ||
678 | except CommandError, e: | ||
679 | pass | ||
680 | #end | ||
681 | #end | ||
665 | except CommandError: | 682 | except CommandError: |
666 | pass | 683 | pass |
667 | else: | 684 | else: |
diff --git a/xdelta3/xdelta3.c b/xdelta3/xdelta3.c index 146fc37..9d6c3b6 100755 --- a/xdelta3/xdelta3.c +++ b/xdelta3/xdelta3.c | |||
@@ -2533,7 +2533,7 @@ xd3_config_stream(xd3_stream *stream, | |||
2533 | (smatcher->small_lchain == 0 && smatcher->try_lazy)) | 2533 | (smatcher->small_lchain == 0 && smatcher->try_lazy)) |
2534 | { | 2534 | { |
2535 | stream->msg = "invalid soft string-match config"; | 2535 | stream->msg = "invalid soft string-match config"; |
2536 | return XD3_INTERNAL; | 2536 | return XD3_INVALID; |
2537 | } | 2537 | } |
2538 | break; | 2538 | break; |
2539 | }) | 2539 | }) |
diff --git a/xdelta3/xdelta3.h b/xdelta3/xdelta3.h index e06a927..2ae1273 100755 --- a/xdelta3/xdelta3.h +++ b/xdelta3/xdelta3.h | |||
@@ -285,6 +285,7 @@ typedef enum { | |||
285 | XD3_WINFINISH = -17708, /* notification: returned after encode/decode & output for a window */ | 285 | XD3_WINFINISH = -17708, /* notification: returned after encode/decode & output for a window */ |
286 | XD3_TOOFARBACK = -17709, /* (encoder only) may be returned by getblk() if the block is too old */ | 286 | XD3_TOOFARBACK = -17709, /* (encoder only) may be returned by getblk() if the block is too old */ |
287 | XD3_INTERNAL = -17710, /* internal error */ | 287 | XD3_INTERNAL = -17710, /* internal error */ |
288 | XD3_INVALID = -17711, /* invalid config */ | ||
288 | 289 | ||
289 | } xd3_rvalues; | 290 | } xd3_rvalues; |
290 | 291 | ||