[gnumeric] fuzzxml: also permute tags sometimes.



commit d29aab12dbff8b21bed1e51e58d8b76f05d1b863
Author: Morten Welinder <terra gnome org>
Date:   Wed Apr 8 09:53:31 2015 -0400

    fuzzxml: also permute tags sometimes.

 test/fuzzxml |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/test/fuzzxml b/test/fuzzxml
index d77cfc0..e25159f 100755
--- a/test/fuzzxml
+++ b/test/fuzzxml
@@ -41,6 +41,7 @@ my $remove_attr_prob = 0.1 * $base_prob;
 my $change_int_prob = $base_prob;
 my $copy_attr_value_prob = $base_prob;
 my $permute_attrs_prob = $base_prob;
+my $permute_tags_prob = 5 * $base_prob;
 
 my %attr_range;
 
@@ -80,6 +81,15 @@ foreach my $key (sort keys %attr_range) {
 sub fuzz_tags {
     my ($pl) = @_;
 
+    if (@$pl > 2 && &doit ($permute_tags_prob)) {
+       my @p = &random_permutation (@$pl / 2);
+       my @l2 = ();
+       foreach my $i (@p) {
+           push @l2, $pl->[$i * 2], $pl->[$i * 2 + 1];
+       }
+       @$pl = @l2;
+    }
+
     for (my $i = 0; $i + 1 < @$pl; $i += 2) {
        my $tag = $pl->[$i];
        my $cont = $pl->[$i + 1];


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]