Avoid test failure due to indeterminate return values.
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 23 Oct 2013 19:24:21 +0000 (21:24 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 23 Oct 2013 19:24:21 +0000 (21:24 +0200)
The test "Perl read system file" has been observed to fail on some
systems due to the order of the value labels being different from
that expected.

Perl does not guarantee the order in which keys returns its values.
Therefore this change sorts the return value before using it.

tests/perl-module.at

index 81fca4a5910e8ddde4bc78918b78a18f8f854f23..eee9ac99477ee78a2dc1137a9eb491870a9467d9 100644 (file)
@@ -355,7 +355,7 @@ AT_DATA([test.pl],
        my $vl = $var->get_value_labels ();
 
        print "Value Labels:\n";
-       print "$_ => $vl->{$_}\n" for keys %$vl;
+       print "$_ => $vl->{$_}\n" for sort (keys %$vl);
     }
 
     while (my @c = $sf->get_next_case () )
@@ -370,16 +370,16 @@ AT_DATA([test.pl],
 AT_CHECK([RUN_PERL_MODULE test.pl], [0],
   [Variable 0 is "string", label is "A Short String Variable"
 Value Labels:
-3333     => threes
 1111     => ones
 2222     => twos
+3333     => threes
 Variable 1 is "longstring", label is "A Long String Variable"
 Value Labels:
 Variable 2 is "numeric", label is "A Numeric Variable"
 Value Labels:
 1 => Unity
-3 => Thripality
 2 => Duality
+3 => Thripality
 Variable 3 is "date", label is "A Date Variable"
 Value Labels:
 Variable 4 is "dollar", label is "A Dollar Variable"