Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

#!/usr/bin/env perl
use v5.12.5;
our $VERSION = '9999.99.99_99'; # VERSION
use Test::Warnings qw(:no_end_test had_no_warnings);
$Rex::Logger::silent = 1;
Rex::Config->set_task_chaining_cmdline_args(1);
task task1 => sub { };
task task2 => sub { };
task task3 => sub { };
task task4 => sub { };
@ARGV = qw(task1 arg1 arg2 --name=thename --num=5 task2 arg task3 --hey=what);
my $run_list = Rex::RunList->instance;
$run_list->parse_opts(@ARGV);
my @tasks = $run_list->tasks;
is scalar @tasks, 3, "run list has 3 tasks";
is ref $_, 'Rex::Task', "object isa Rex::Task" for @tasks;
note "opts";
is_deeply { $tasks[0]->get_opts }, { name => 'thename', num => 5 },
"task0 opts";
is_deeply { $tasks[1]->get_opts }, {}, "task1 opts";
is_deeply { $tasks[2]->get_opts }, { hey => 'what' }, "task2 opts";
note "args";
is_deeply [ $tasks[0]->get_args ], [qw/arg1 arg2/], "task0 args";
is_deeply [ $tasks[1]->get_args ], [qw/arg/], "task1 args";
is_deeply [ $tasks[2]->get_args ], [qw//], "task2 args";
$run_list->run_tasks;
had_no_warnings;
done_testing;