Annotation of embedaddon/curl/tests/directories.pm, revision 1.1
1.1 ! misho 1: #***************************************************************************
! 2: # _ _ ____ _
! 3: # Project ___| | | | _ \| |
! 4: # / __| | | | |_) | |
! 5: # | (__| |_| | _ <| |___
! 6: # \___|\___/|_| \_\_____|
! 7: #
! 8: # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
! 9: #
! 10: # This software is licensed as described in the file COPYING, which
! 11: # you should have received as part of this distribution. The terms
! 12: # are also available at https://curl.haxx.se/docs/copyright.html.
! 13: #
! 14: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
! 15: # copies of the Software, and permit persons to whom the Software is
! 16: # furnished to do so, under the terms of the COPYING file.
! 17: #
! 18: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
! 19: # KIND, either express or implied.
! 20: #
! 21: ###########################################################################
! 22: %file_chmod1 = (
! 23: 'name' => 'chmod1',
! 24: 'content' => "This file should have permissions 444\n",
! 25: 'perm' => 'r--r--r--',
! 26: 'time' => 'Jan 11 10:00',
! 27: 'dostime' => '01-11-10 10:00AM',
! 28: );
! 29:
! 30: %file_chmod2 = (
! 31: 'name' => 'chmod2',
! 32: 'content' => "This file should have permissions 666\n",
! 33: 'perm' => 'rw-rw-rw-',
! 34: 'time' => 'Feb 1 8:00',
! 35: 'dostime' => '02-01-10 08:00AM',
! 36: );
! 37:
! 38: %file_chmod3 = (
! 39: 'name' => 'chmod3',
! 40: 'content' => "This file should have permissions 777\n",
! 41: 'perm' => 'rwxrwxrwx',
! 42: 'time' => 'Feb 1 8:00',
! 43: 'dostime' => '02-01-10 08:00AM',
! 44: );
! 45:
! 46: %file_chmod4 = (
! 47: 'type' => 'd',
! 48: 'name' => 'chmod4',
! 49: 'content' => "This file should have permissions 001\n",
! 50: 'perm' => '--S--S--t',
! 51: 'time' => 'May 4 4:31',
! 52: 'dostime' => '05-04-10 04:31AM'
! 53: );
! 54:
! 55: %file_chmod5 = (
! 56: 'type' => 'd',
! 57: 'name' => 'chmod5',
! 58: 'content' => "This file should have permissions 110\n",
! 59: 'perm' => '--s--s--T',
! 60: 'time' => 'May 4 4:31',
! 61: 'dostime' => '05-04-10 04:31AM'
! 62: );
! 63:
! 64: %link_link = (
! 65: 'type' => 'l',
! 66: 'name' => 'link -> file.txt',
! 67: 'size' => '8',
! 68: 'perm' => 'rwxrwxrwx',
! 69: 'time' => 'Jan 6 4:42'
! 70: );
! 71:
! 72: %link_link_absolute = (
! 73: 'type' => 'l',
! 74: 'name' => 'link_absolute -> /data/ftp/file.txt',
! 75: 'size' => '15',
! 76: 'perm' => 'rwxrwxrwx',
! 77: 'time' => 'Jan 6 4:45'
! 78: );
! 79:
! 80: %dir_dot = (
! 81: 'type' => "d",
! 82: 'name' => ".",
! 83: 'hlink' => "4",
! 84: 'time' => "Apr 27 5:12",
! 85: 'size' => "20480",
! 86: 'dostime' => "04-27-10 05:12AM",
! 87: 'perm' => "rwxrwxrwx"
! 88: );
! 89:
! 90: %dir_ddot = (
! 91: 'type' => "d",
! 92: 'name' => "..",
! 93: 'hlink' => "4",
! 94: 'size' => "20480",
! 95: 'time' => "Apr 23 3:12",
! 96: 'dostime' => "04-23-10 03:12AM",
! 97: 'perm' => "rwxrwxrwx"
! 98: );
! 99:
! 100: %dir_weirddir_txt = (
! 101: 'type' => "d",
! 102: 'name' => "weirddir.txt",
! 103: 'hlink' => "2",
! 104: 'size' => "4096",
! 105: 'time' => "Apr 23 3:12",
! 106: 'dostime' => "04-23-10 03:12AM",
! 107: 'perm' => "rwxr-xrwx"
! 108: );
! 109:
! 110: %dir_UNIX = (
! 111: 'type' => "d",
! 112: 'name' => "UNIX",
! 113: 'hlink' => "11",
! 114: 'size' => "4096",
! 115: 'time' => "Nov 01 2008",
! 116: 'dostime' => "11-01-08 11:11AM",
! 117: 'perm' => "rwx--x--x"
! 118: );
! 119:
! 120: %dir_DOS = (
! 121: 'type' => "d",
! 122: 'name' => "DOS",
! 123: 'hlink' => "11",
! 124: 'size' => "4096",
! 125: 'time' => "Nov 01 2008",
! 126: 'dostime' => "11-01-08 11:11AM",
! 127: 'perm' => "rwx--x--x"
! 128: );
! 129:
! 130: %dir_dot_NeXT = (
! 131: 'type' => "d",
! 132: 'name' => ".NeXT",
! 133: 'hlink' => "4",
! 134: 'size' => "4096",
! 135: 'time' => "Jan 23 2:05",
! 136: 'dostime' => "01-23-05 02:05AM",
! 137: 'perm' => "rwxrwxrwx"
! 138: );
! 139:
! 140: %file_empty_file_dat = (
! 141: 'name' => "empty_file.dat",
! 142: 'content' => "",
! 143: 'perm' => "rw-r--r--",
! 144: 'time' => "Apr 27 11:01",
! 145: 'dostime' => "04-27-10 11:01AM"
! 146: );
! 147:
! 148: %file_file_txt = (
! 149: 'name' => "file.txt",
! 150: 'content' => "This is content of file \"file.txt\"\n",
! 151: 'time' => "Apr 27 11:01",
! 152: 'dostime' => "04-27-10 11:01AM",
! 153: 'perm' => "rw-r--r--"
! 154: );
! 155:
! 156: %file_someothertext_txt = (
! 157: 'name' => "someothertext.txt",
! 158: 'content' => "Some junk ;-) This file does not really exist.\n",
! 159: 'time' => "Apr 27 11:01",
! 160: 'dostime' => "04-27-10 11:01AM",
! 161: 'perm' => "rw-r--r--"
! 162: );
! 163:
! 164: %lists = (
! 165: '/fully_simulated/' => {
! 166: 'files' => [ \%dir_dot, \%dir_ddot, \%dir_DOS, \%dir_UNIX ],
! 167: 'eol' => "\r\n",
! 168: 'type' => "unix"
! 169: },
! 170: '/fully_simulated/UNIX/' => {
! 171: 'files' => [ \%dir_dot, \%dir_ddot,
! 172: \%file_chmod1, \%file_chmod2, \%file_chmod3, \%file_chmod4, \%file_chmod5,
! 173: \%file_empty_file_dat, \%file_file_txt,
! 174: \%link_link, \%link_link_absolute, \%dir_dot_NeXT,
! 175: \%file_someothertext_txt, \%dir_weirddir_txt ],
! 176: 'eol' => "\r\n",
! 177: 'type' => 'unix'
! 178: },
! 179: '/fully_simulated/DOS/' => {
! 180: 'files' => [ \%dir_dot, \%dir_ddot,
! 181: \%file_chmod1, \%file_chmod2, \%file_chmod3, \%file_chmod4, \%file_chmod5,
! 182: \%file_empty_file_dat, \%file_file_txt,
! 183: \%dir_dot_NeXT, \%file_someothertext_txt, \%dir_weirddir_txt ],
! 184: 'eol' => "\r\n",
! 185: 'type' => 'dos'
! 186: }
! 187: );
! 188:
! 189: sub ftp_createcontent($) {
! 190: my (%list) = @_;
! 191:
! 192: $type = $$list{'type'};
! 193: $eol = $$list{'eol'};
! 194: $list_ref = $$list{'files'};
! 195:
! 196: my @diroutput;
! 197: my @contentlist;
! 198: if($type eq "unix") {
! 199: for(@$list_ref) {
! 200: my %file = %$_;
! 201: my $line = "";
! 202: my $ftype = $file{'type'} ? $file{'type'} : "-";
! 203: my $fperm = $file{'perm'} ? $file{'perm'} : "rwxr-xr-x";
! 204: my $fuser = $file{'user'} ? sprintf("%15s", $file{'user'}) : "ftp-default";
! 205: my $fgroup = $file{'group'} ? sprintf("%15s", $file{'group'}) : "ftp-default";
! 206: my $fsize = "";
! 207: if($file{'type'} eq "d") {
! 208: $fsize = $file{'size'} ? sprintf("%7s", $file{'size'}) : sprintf("%7d", 4096);
! 209: }
! 210: else {
! 211: $fsize = sprintf("%7d", length $file{'content'});
! 212: }
! 213: my $fhlink = $file{'hlink'} ? sprintf("%4d", $file{'hlink'}) : " 1";
! 214: my $ftime = $file{'time'} ? sprintf("%10s", $file{'time'}) : "Jan 9 1933";
! 215: push(@contentlist, "$ftype$fperm $fhlink $fuser $fgroup $fsize $ftime $file{'name'}$eol");
! 216: }
! 217:
! 218: return @contentlist;
! 219: }
! 220: elsif($type =~ /^dos$/) {
! 221: for(@$list_ref) {
! 222: my %file = %$_;
! 223: my $line = "";
! 224: my $time = $file{'dostime'} ? $file{'dostime'} : "06-25-97 09:12AM";
! 225: my $size_or_dir;
! 226: if($file{'type'} =~ /^d$/) {
! 227: $size_or_dir = " <DIR> ";
! 228: }
! 229: else {
! 230: $size_or_dir = sprintf("%20d", length $file{'content'});
! 231: }
! 232: push(@contentlist, "$time $size_or_dir $file{'name'}$eol");
! 233: }
! 234: return @contentlist;
! 235: }
! 236: }
! 237:
! 238: sub wildcard_filesize($$) {
! 239: my ($list_type, $file) = @_;
! 240: $list = $lists{$list_type};
! 241: if($list) {
! 242: my $files = $list->{'files'};
! 243: for(@$files) {
! 244: my %f = %$_;
! 245: if ($f{'name'} eq $file) {
! 246: if($f{'content'}) {
! 247: return length $f{'content'};
! 248: }
! 249: elsif ($f{'type'} ne "d"){
! 250: return 0;
! 251: }
! 252: else {
! 253: return -1;
! 254: }
! 255: }
! 256: }
! 257: }
! 258: return -1;
! 259: }
! 260: sub wildcard_getfile($$) {
! 261: my ($list_type, $file) = @_;
! 262: $list = $lists{$list_type};
! 263: if($list) {
! 264: my $files = $list->{'files'};
! 265: for(@$files) {
! 266: my %f = %$_;
! 267: if ($f{'name'} eq $file) {
! 268: if($f{'content'}) {
! 269: return (length $f{'content'}, $f{'content'});
! 270: }
! 271: elsif ($f{'type'} ne "d"){
! 272: return (0, "");
! 273: }
! 274: else {
! 275: return (-1, 0);
! 276: }
! 277: }
! 278: }
! 279: }
! 280: return (-1, 0);
! 281: }
! 282:
! 283: sub ftp_contentlist {
! 284: my $listname = $_[0];
! 285: $list = $lists{$listname};
! 286: return ftp_createcontent(\$list);
! 287: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>