From: Tim Beale Date: Thu, 23 May 2019 04:58:20 +0000 (+1200) Subject: selftest: Use scalar variable for new daemon_ctx hashmap X-Git-Tag: ldb-2.0.5~643 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=163897f12538ae12dbc2bd556adcc1abc4f0f438;p=thirdparty%2Fsamba.git selftest: Use scalar variable for new daemon_ctx hashmap The selftest code typically stores hashmaps as scalar variables (i.e. it only ever uses references to hashmaps). So much so that using a regular hashmap (and passing it by reference via \%daemon_ctx) looks out of place. Using the hashmap directly made more sense when it was only being used locally, but now the hashmap is being passed by reference into a function anyway, so storing it as a scalar doesn't make much difference. Signed-off-by: Tim Beale Reviewed-by: Andrew Bartlett --- diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 4abd5177cba..5e28253dc4e 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -1276,17 +1276,17 @@ sub check_or_start($$$$$) { delete $nmbd_envs->{RESOLV_WRAPPER_HOSTS}; # fork and exec() nmbd in the child process - my %daemon_ctx = ( + my $daemon_ctx = { NAME => "nmbd", BINARY_PATH => $binary, FULL_CMD => [ @full_cmd ], LOG_FILE => $env_vars->{NMBD_TEST_LOG}, ENV_VARS => $nmbd_envs, - ); + }; if ($nmbd ne "yes") { - $daemon_ctx{SKIP_DAEMON} = 1; + $daemon_ctx->{SKIP_DAEMON} = 1; } - my $pid = Samba::fork_and_exec($self, $env_vars, \%daemon_ctx, $STDIN_READER); + my $pid = Samba::fork_and_exec($self, $env_vars, $daemon_ctx, $STDIN_READER); $env_vars->{NMBD_TL_PID} = $pid; write_pid($env_vars, "nmbd", $pid); @@ -1300,16 +1300,16 @@ sub check_or_start($$$$$) { } # fork and exec() winbindd in the child process - %daemon_ctx = ( + $daemon_ctx = { NAME => "winbindd", BINARY_PATH => $binary, FULL_CMD => [ @full_cmd ], LOG_FILE => $env_vars->{WINBINDD_TEST_LOG}, - ); + }; if ($winbindd ne "yes") { - $daemon_ctx{SKIP_DAEMON} = 1; + $daemon_ctx->{SKIP_DAEMON} = 1; } - my $pid = Samba::fork_and_exec($self, $env_vars, \%daemon_ctx, $STDIN_READER); + my $pid = Samba::fork_and_exec($self, $env_vars, $daemon_ctx, $STDIN_READER); $env_vars->{WINBINDD_TL_PID} = $pid; write_pid($env_vars, "winbindd", $pid); @@ -1320,17 +1320,17 @@ sub check_or_start($$$$$) { $ENV{SMBD_DONT_LOG_STDOUT}); # fork and exec() smbd in the child process - %daemon_ctx = ( + $daemon_ctx = { NAME => "smbd", BINARY_PATH => $binary, FULL_CMD => [ @full_cmd ], LOG_FILE => $env_vars->{SMBD_TEST_LOG}, - ); + }; if ($smbd ne "yes") { - $daemon_ctx{SKIP_DAEMON} = 1; + $daemon_ctx->{SKIP_DAEMON} = 1; } - my $pid = Samba::fork_and_exec($self, $env_vars, \%daemon_ctx, $STDIN_READER); + my $pid = Samba::fork_and_exec($self, $env_vars, $daemon_ctx, $STDIN_READER); $env_vars->{SMBD_TL_PID} = $pid; write_pid($env_vars, "smbd", $pid); diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 0593a21c353..56ca8bdd809 100755 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -142,15 +142,15 @@ sub check_or_start($$$) } # fork a child process and exec() samba - my %daemon_ctx = ( + my $daemon_ctx = { NAME => "samba", BINARY_PATH => $binary, FULL_CMD => [ @full_cmd ], LOG_FILE => $env_vars->{SAMBA_TEST_LOG}, TEE_STDOUT => 1, ENV_VARS => $samba_envs, - ); - my $pid = Samba::fork_and_exec($self, $env_vars, \%daemon_ctx, $STDIN_READER); + }; + my $pid = Samba::fork_and_exec($self, $env_vars, $daemon_ctx, $STDIN_READER); $env_vars->{SAMBA_PID} = $pid; @@ -398,7 +398,7 @@ sub setup_dns_hub_internal($$$) push (@args, Samba::realm_to_ip_mappings()); my @full_cmd = (@preargs, $binary, @args); - my %daemon_ctx = ( + my $daemon_ctx = { NAME => "dnshub", BINARY_PATH => $binary, FULL_CMD => [ @full_cmd ], @@ -406,14 +406,14 @@ sub setup_dns_hub_internal($$$) TEE_STDOUT => 1, PCAP_FILE => "$ENV{SOCKET_WRAPPER_PCAP_DIR}/env-$hostname$.pcap", ENV_VARS => {}, - ); + }; # use a pipe for stdin in the child processes. This allows # those processes to monitor the pipe for EOF to ensure they # exit when the test script exits pipe($STDIN_READER, $env->{STDIN_PIPE}); - my $pid = Samba::fork_and_exec($self, $env, \%daemon_ctx, $STDIN_READER); + my $pid = Samba::fork_and_exec($self, $env, $daemon_ctx, $STDIN_READER); $env->{SAMBA_PID} = $pid; $env->{KRB5_CONFIG} = "$prefix_abs/no_krb5.conf";