-if ($opt_target eq "samba4") {
- $testenv_default = "all";
- require target::Samba4;
- $target = new Samba4($bindir, $ldap, "$srcdir/setup", $exeext);
-} elsif ($opt_target eq "samba3") {
- if ($opt_socket_wrapper and `$bindir/smbd -b | grep SOCKET_WRAPPER` eq "") {
- die("You must include --enable-socket-wrapper when compiling Samba in order to execute 'make test'. Exiting....");
- }
- $testenv_default = "member";
- require target::Samba3;
- $target = new Samba3($bindir);
-} elsif ($opt_target eq "win") {
- die("Windows tests will not run with socket wrapper enabled.")
- if ($opt_socket_wrapper);
- $testenv_default = "dc";
- require target::Windows;
- $target = new Windows();
-} elsif ($opt_target eq "kvm") {
- die("Kvm tests will not run with socket wrapper enabled.")
- if ($opt_socket_wrapper);
- require target::Kvm;
- die("No image specified") unless ($opt_image);
- $target = new Kvm($opt_image, undef);
+my %binary_mapping = ();
+if ($opt_binary_mapping) {
+ my @binmapping_list = split(/,/, $opt_binary_mapping);
+ foreach my $mapping (@binmapping_list) {
+ my ($bin, $map) = split(/\:/, $mapping);
+ $binary_mapping{$bin} = $map;
+ }
+}
+
+$ENV{BINARY_MAPPING} = $opt_binary_mapping;
+
+# After this many seconds, the server will self-terminate. All tests
+# must terminate in this time, and testenv will only stay alive this
+# long
+
+my $server_maxtime = 7500;
+if (defined($ENV{SMBD_MAXTIME}) and $ENV{SMBD_MAXTIME} ne "") {
+ $server_maxtime = $ENV{SMBD_MAXTIME};
+}
+
+unless ($opt_list) {
+ if ($opt_target eq "samba") {
+ if ($opt_socket_wrapper and `$bindir/smbd -b | grep SOCKET_WRAPPER` eq "") {
+ die("You must include --enable-socket-wrapper when compiling Samba in order to execute 'make test'. Exiting....");
+ }
+ $testenv_default = "dc";
+ require target::Samba;
+ $target = new Samba($bindir, \%binary_mapping, $ldap, $srcdir, $exeext, $server_maxtime);
+ } elsif ($opt_target eq "samba3") {
+ if ($opt_socket_wrapper and `$bindir/smbd -b | grep SOCKET_WRAPPER` eq "") {
+ die("You must include --enable-socket-wrapper when compiling Samba in order to execute 'make test'. Exiting....");
+ }
+ $testenv_default = "member";
+ require target::Samba3;
+ $target = new Samba3($bindir, \%binary_mapping, $srcdir_abs, $exeext, $server_maxtime);
+ } elsif ($opt_target eq "win") {
+ die("Windows tests will not run with socket wrapper enabled.")
+ if ($opt_socket_wrapper);
+ $testenv_default = "dc";
+ require target::Windows;
+ $target = new Windows();
+ }