selftest: Add setup_fileserver()
authorRobin Hack <rhack@redhat.com>
Fri, 15 May 2015 07:43:29 +0000 (09:43 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 1 Jul 2015 21:05:55 +0000 (23:05 +0200)
Pair-Programmed-With: Andreas Schneider <asn@samba.org>
Signed-off-by: Robin Hack <rhack@redhat.com>
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
selftest/target/Samba.pm
selftest/target/Samba3.pm

index 494908668c03440c596359e4ddd8239c6bb9a93d..e128fd3c77e2b2749e2a22df0a6a1c518418f8bb 100644 (file)
@@ -177,6 +177,7 @@ sub get_interface($)
     $interfaces{"chgdcpass"} = 32;
     $interfaces{"promotedvdc"} = 33;
     $interfaces{"rfc2307member"} = 34;
+    $interfaces{"fileserver"} = 35;
 
     # update lib/socket_wrapper/socket_wrapper.c
     #  #define MAX_WRAPPED_INTERFACES 32
index a380e7a3950934dad76ffa88af8cacb57df14dfd..03c78f254b3fd58596c7d6c3a003e9dd652a89f5 100755 (executable)
@@ -178,6 +178,8 @@ sub setup_env($$$)
                return $self->setup_nt4_dc_schannel("$path/nt4_dc_schannel");
        } elsif ($envname eq "simpleserver") {
                return $self->setup_simpleserver("$path/simpleserver");
+       } elsif ($envname eq "fileserver") {
+               return $self->setup_fileserver("$path/fileserver");
        } elsif ($envname eq "maptoguest") {
                return $self->setup_maptoguest("$path/maptoguest");
        } elsif ($envname eq "ktest") {
@@ -526,7 +528,7 @@ sub setup_simpleserver($$)
 {
        my ($self, $path) = @_;
 
-       print "PROVISIONING server with security=share...";
+       print "PROVISIONING simple server...";
 
        my $prefix_abs = abs_path($path);
 
@@ -557,6 +559,98 @@ sub setup_simpleserver($$)
        return $vars;
 }
 
+sub setup_fileserver($$)
+{
+       my ($self, $path) = @_;
+       my $prefix_abs = abs_path($path);
+
+       print "PROVISIONING file server ...\n";
+
+       my @dirs = ();
+
+       mkdir($prefix_abs, 0777);
+
+       my $share_dir="$prefix_abs/share";
+
+       # Create share directory structure
+       my $lower_case_share_dir="$share_dir/lower-case";
+       push(@dirs, $lower_case_share_dir);
+
+       my $lower_case_share_dir_30000="$share_dir/lower-case-30000";
+       push(@dirs, $lower_case_share_dir_30000);
+
+       my $fileserver_options = "
+[lowercase]
+       path = $lower_case_share_dir
+       comment = smb username is [%U]
+       case sensitive = True
+       default case = lower
+       preserve case = no
+       short preserve case = no
+[lowercase-30000]
+       path = $lower_case_share_dir_30000
+       comment = smb username is [%U]
+       case sensitive = True
+       default case = lower
+       preserve case = no
+       short preserve case = no
+       ";
+
+       my $vars = $self->provision($path,
+                                   "FILESERVER",
+                                   "fileserver_secret",
+                                   $fileserver_options,
+                                   undef,
+                                   undef,
+                                   1);
+
+       $vars or return undef;
+
+       if (not $self->check_or_start($vars, "yes", "no", "yes")) {
+              return undef;
+       }
+
+       $self->{vars}->{fileserver} = $vars;
+
+       mkdir($_, 0777) foreach(@dirs);
+
+       ## Create case sensitive lower case share dir
+       foreach my $file ('a'..'z') {
+               my $full_path = $lower_case_share_dir . '/' . $file;
+               open my $fh, '>', $full_path;
+               # Add some content to file
+               print $fh $full_path;
+               close $fh;
+       }
+
+       for (my $file = 1; $file < 51; ++$file) {
+               my $full_path = $lower_case_share_dir . '/' . $file;
+               open my $fh, '>', $full_path;
+               # Add some content to file
+               print $fh $full_path;
+               close $fh;
+       }
+
+       # Create content for 30000 share
+       foreach my $file ('a'..'z') {
+               my $full_path = $lower_case_share_dir_30000 . '/' . $file;
+               open my $fh, '>', $full_path;
+               # Add some content to file
+               print $fh $full_path;
+               close $fh;
+       }
+
+       for (my $file = 1; $file < 30001; ++$file) {
+               my $full_path = $lower_case_share_dir_30000 . '/' . $file;
+               open my $fh, '>', $full_path;
+               # Add some content to file
+               print $fh $full_path;
+               close $fh;
+       }
+
+       return $vars;
+}
+
 sub setup_ktest($$$)
 {
        my ($self, $prefix) = @_;