From 262c91b4867b23f50e683eacbc8163d3b75d752c Mon Sep 17 00:00:00 2001 From: Freddy Vulto Date: Fri, 10 Jul 2009 23:08:11 +0200 Subject: [PATCH] [testsuite] Improved `match_items()' sorting `match_items()' now uses bash sort instead of tcl lsort. The difference in sorting happens because bash and tcl use a different sorting order: * bash sort uses the current locale's collating sequence and character set * tcl lsort uses a C-like sort order where each character is sorted according to its numeric value See also: http://fvue.nl/wiki/Tcl:_Lsort_output_differs_from_bash_sort This fix allows the `dpkg -L' test to compare all packages. To run the test: ./runCompletion dpkg.exp --- test/lib/completions/dpkg.exp | 14 ++++++-------- test/lib/library.exp | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/test/lib/completions/dpkg.exp b/test/lib/completions/dpkg.exp index fe6d1c1c..ff4c5274 100644 --- a/test/lib/completions/dpkg.exp +++ b/test/lib/completions/dpkg.exp @@ -21,14 +21,12 @@ sync_after_int # NOTE: If an argument is passed to `--get-selections', `dpkg' also returns # packages with status "purged". Be sure to add `| grep install$' to # pipeline before 'cut' in that case. -- FVu, Sun Feb 22 10:08:34 CET 2009 - # TODO: Fix sorting in `match_items' in lib/library.exp. Sorting in tcl appears - # to be different from sorting in bash. -#if {[assert_exec {dpkg --get-selections | cut -f1 | sort} packages]} { -# assert_complete $packages "dpkg -L " -#}; # if -# -# -#sync_after_int +if {[assert_exec {dpkg --get-selections | cut -f1} packages]} { + assert_complete $packages "dpkg -L " +}; # if + + +sync_after_int teardown diff --git a/test/lib/library.exp b/test/lib/library.exp index 7147980e..352d892a 100644 --- a/test/lib/library.exp +++ b/test/lib/library.exp @@ -231,7 +231,7 @@ proc get_hosts {} { # @param integer $size Chunk size # @result boolean True if successful, False if not proc match_items {items test {size 20}} { - set items [lsort -ascii $items] + set items [exec sort << [join $items "\n"]] set result false for {set i 0} {$i < [llength $items]} {set i [expr {$i + $size}]} { set expected ""