| #!/usr/bin/env perl |
| #*************************************************************************** |
| # _ _ ____ _ |
| # Project ___| | | | _ \| | |
| # / __| | | | |_) | | |
| # | (__| |_| | _ <| |___ |
| # \___|\___/|_| \_\_____| |
| # |
| # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. |
| # |
| # This software is licensed as described in the file COPYING, which |
| # you should have received as part of this distribution. The terms |
| # are also available at https://curl.se/docs/copyright.html. |
| # |
| # You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| # copies of the Software, and permit persons to whom the Software is |
| # furnished to do so, under the terms of the COPYING file. |
| # |
| # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| # KIND, either express or implied. |
| # |
| # SPDX-License-Identifier: curl |
| # |
| ########################################################################### |
| use strict; |
| use warnings; |
| |
| my $num = 10; # provide (at least) this many proposals |
| |
| my @all; |
| my $expect = 0; |
| |
| open(F, "<tests/data/Makefile.am"); |
| while(<F>) { |
| if(/^TESTCASES/) { |
| $expect = 1; |
| } |
| elsif($expect) { |
| if(/^ test(\d+)/) { |
| my $f = $1; |
| if($f == $expect) { |
| $expect = $f + 1; |
| } |
| else { |
| if(($f - 1) != $expect) { |
| # a range |
| for my $t ($expect .. ($f - 1)) { |
| push @all, $t; |
| } |
| } |
| else { |
| # single value |
| push @all, $expect; |
| } |
| } |
| $expect = $f + 1; |
| } |
| } |
| } |
| |
| use List::Util qw(shuffle); |
| |
| for my $t (shuffle @all) { |
| print "test$t\n"; |
| if(!--$num) { |
| last; |
| } |
| } |