class TestCase::File::Find {
use File::Find;
use StringList;
use Sort;
use Array;
use Sys::IO;
static method test : int () {
{
my $dir = "lib";
my $files_list = StringList->new;
File::Find->find([has files_list : StringList = $files_list] method : void ($dir : string, $file_base_name : string) {
my $file = $dir;
if ($file_base_name) {
$file .= "/$file_base_name";
}
$self->{files_list}->push($file);
}, $dir);
my $files = $files_list->to_array;
Sort->sort_string_asc($files);
my $files_expected = [
"lib",
"lib/SPVM",
"lib/SPVM/File",
"lib/SPVM/File/Find",
"lib/SPVM/File/Find.pm",
"lib/SPVM/File/Find.spvm",
"lib/SPVM/File/Find/Handler.pm",
"lib/SPVM/File/Find/Handler.spvm"
];
unless (Array->equals_string($files, $files_expected)) {
return 0;
}
}
{
my $dir = "lib/";
my $files_list = StringList->new;
File::Find->find([has files_list : StringList = $files_list] method : void ($dir : string, $file_base_name : string) {
my $file = $dir;
if ($file_base_name) {
$file .= "/$file_base_name";
}
$self->{files_list}->push($file);
}, $dir);
my $files = $files_list->to_array;
Sort->sort_string_asc($files);
my $files_expected = [
"lib",
"lib/SPVM",
"lib/SPVM/File",
"lib/SPVM/File/Find",
"lib/SPVM/File/Find.pm",
"lib/SPVM/File/Find.spvm",
"lib/SPVM/File/Find/Handler.pm",
"lib/SPVM/File/Find/Handler.spvm"
];
unless (Array->equals_string($files, $files_expected)) {
return 0;
}
}
{
my $cwd = Cwd->getcwd;
my $dir = "$cwd/lib";
my $files_list = StringList->new;
File::Find->find([has files_list : StringList = $files_list] method : void ($dir : string, $file_base_name : string) {
my $file = $dir;
if ($file_base_name) {
$file .= "/$file_base_name";
}
$self->{files_list}->push($file);
}, $dir);
my $files = $files_list->to_array;
Sort->sort_string_asc($files);
my $files_expected = [
"$dir",
"$dir/SPVM",
"$dir/SPVM/File",
"$dir/SPVM/File/Find",
"$dir/SPVM/File/Find.pm",
"$dir/SPVM/File/Find.spvm",
"$dir/SPVM/File/Find/Handler.pm",
"$dir/SPVM/File/Find/Handler.spvm"
];
unless (Array->equals_string($files, $files_expected)) {
return 0;
}
}
{
my $cwd = Cwd->getcwd;
my $dir = "$cwd/lib/";
my $files_list = StringList->new;
File::Find->find([has files_list : StringList = $files_list] method : void ($dir : string, $file_base_name : string) {
my $file = $dir;
if ($file_base_name) {
$file .= "/$file_base_name";
}
$self->{files_list}->push($file);
}, $dir);
my $files = $files_list->to_array;
Sort->sort_string_asc($files);
my $dir_no_slash = copy $dir;
Fn->shorten((mutable string)$dir_no_slash, length $dir - 1);
my $files_expected = [
"$dir_no_slash",
"$dir_no_slash/SPVM",
"$dir_no_slash/SPVM/File",
"$dir_no_slash/SPVM/File/Find",
"$dir_no_slash/SPVM/File/Find.pm",
"$dir_no_slash/SPVM/File/Find.spvm",
"$dir_no_slash/SPVM/File/Find/Handler.pm",
"$dir_no_slash/SPVM/File/Find/Handler.spvm"
];
unless (Array->equals_string($files, $files_expected)) {
return 0;
}
}
{
Sys::IO->chdir("lib");
my $dir = ".";
my $files_list = StringList->new;
File::Find->find([has files_list : StringList = $files_list] method : void ($dir : string, $file_base_name : string) {
my $file = $dir;
if ($file_base_name) {
$file .= "/$file_base_name";
}
$self->{files_list}->push($file);
}, $dir);
my $files = $files_list->to_array;
Sort->sort_string_asc($files);
my $files_expected = [
".",
"./SPVM",
"./SPVM/File",
"./SPVM/File/Find",
"./SPVM/File/Find.pm",
"./SPVM/File/Find.spvm",
"./SPVM/File/Find/Handler.pm",
"./SPVM/File/Find/Handler.spvm"
];
unless (Array->equals_string($files, $files_expected)) {
return 0;
}
Sys::IO->chdir("..");
}
return 1;
}
}