1#!/bin/sh
2# Benchmark sort on randomly generated data.
3
4# Copyright (C) 2010-2023 Free Software Foundation, Inc.
5
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program.  If not, see <https://www.gnu.org/licenses/>.
18
19# Written by Glen Lenker.
20
21. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
22print_ver_ sort
23require_perl_
24
25very_expensive_
26
27$PERL -e '
28my $num_lines = 500000;
29my $length = 100;
30
31for (my $i=0; $i < $num_lines; $i++)
32{
33    for (my $j=0; $j < $length; $j++)
34    {
35      printf "%c", 32 + rand(94);
36    }
37    print "\n";
38}' > in || framework_failure_
39
40# We need to generate a lot of data for sort to show a noticeable
41# improvement in performance. Sorting it in PERL may take awhile.
42
43$PERL -e '
44open (FILE, "<in");
45my @list = <FILE>;
46print sort(@list);
47close (FILE);
48' > exp || framework_failure_
49
50time sort in > out || fail=1
51
52compare exp out || fail=1
53
54Exit $fail
55