mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
dcc39ea439
branch.
(This used to be commit acef477383
)
149 lines
3.1 KiB
Plaintext
149 lines
3.1 KiB
Plaintext
#
|
|
# @(#) Test the getent command returns domain/local users and groups
|
|
#
|
|
|
|
load_lib util-defs.exp
|
|
load_lib compile.exp
|
|
load_lib $srcdir/lib/nsswitch-config.exp
|
|
|
|
#
|
|
# @(#) Test getent passwd returns domain users
|
|
#
|
|
|
|
set wbinfo_output [util_start "bin/wbinfo" "-u"]
|
|
set getent_output [util_start "getent" "passwd" ""]
|
|
|
|
if { ![regexp "$domain/" $getent_output] } {
|
|
fail "no domain users in getent passwd"
|
|
return
|
|
}
|
|
|
|
if { [regexp "Error" $wbinfo_output] } {
|
|
fail "wbinfo -u failed"
|
|
return
|
|
}
|
|
|
|
#
|
|
# @(#) Test each user in the output of wbinfo is also in the output of
|
|
# @(#) getent.
|
|
#
|
|
|
|
# Test wbinfo user names are in getent user names
|
|
|
|
foreach { user } [split $wbinfo_output "\n"] {
|
|
|
|
verbose "looking for $user"
|
|
|
|
set test_desc "getent passwd does not contain $user"
|
|
|
|
if { ![regexp "$user" $getent_output] } {
|
|
fail $test_desc
|
|
} else {
|
|
pass $test_desc
|
|
}
|
|
}
|
|
|
|
# Test getent user names are in wbinfo user names
|
|
|
|
foreach { user } [split $getent_output "\n"] {
|
|
|
|
set user_info [split $user ":"]
|
|
set username [lindex $user_info 0]
|
|
|
|
if { [regexp {^[^/]+/} $username] } {
|
|
|
|
set test_desc "wbinfo -u does not contain $username"
|
|
|
|
if { ![regexp "$username" $wbinfo_output] } {
|
|
fail $test_desc
|
|
} else {
|
|
pass $test_desc
|
|
}
|
|
} else {
|
|
verbose "ignoring non-domain user $username"
|
|
}
|
|
}
|
|
|
|
#
|
|
# @(#) Test each group in the output of wbinfo is also in the output of
|
|
# @(#) getent.
|
|
#
|
|
|
|
set wbinfo_output [util_start "bin/wbinfo" "-g"]
|
|
set getent_output [util_start "getent" "group" ""]
|
|
|
|
if { ![regexp "$domain/" $getent_output] } {
|
|
fail "no domain groups in getent passwd"
|
|
return
|
|
}
|
|
|
|
if { [regexp "Error" $wbinfo_output] } {
|
|
fail "wbinfo -g failed"
|
|
return
|
|
}
|
|
|
|
# Test wbinfo group names are in getent group names
|
|
|
|
foreach { group } [split $wbinfo_output "\n"] {
|
|
|
|
verbose "looking for $group"
|
|
|
|
set test_desc "getent group does not contain $group"
|
|
|
|
if { ![regexp "$group" $getent_output] } {
|
|
fail $test_desc
|
|
} else {
|
|
pass $test_desc
|
|
}
|
|
}
|
|
|
|
# Test getent group names are in wbinfo group names
|
|
|
|
foreach { group } [split $getent_output "\n"] {
|
|
|
|
set group_info [split $group ":"]
|
|
set groupname [lindex $group_info 0]
|
|
|
|
if { [regexp {^[^/]+/} $groupname] } {
|
|
|
|
set test_desc "wbinfo -g does not contain $groupname"
|
|
|
|
if { ![regexp "$groupname" $wbinfo_output] } {
|
|
fail $test_desc
|
|
} else {
|
|
pass $test_desc
|
|
}
|
|
} else {
|
|
verbose "ignoring non-domain group $groupname"
|
|
}
|
|
}
|
|
|
|
#
|
|
# @(#) Test out of order and repeat calls of pwent functions
|
|
# @(#) Test out of order and repeat calls of grent functions
|
|
#
|
|
|
|
set getent_tests [list \
|
|
{ "out of order pwent operations" "getent_pwent" } \
|
|
{ "out of order grent operations" "getent_grent" } \
|
|
]
|
|
|
|
# Compile and run each test
|
|
|
|
foreach { test } $getent_tests {
|
|
set test_desc [lindex $test 0]
|
|
set test_file [lindex $test 1]
|
|
|
|
simple_compile $test_file
|
|
set output [util_start "$srcdir/$subdir/$test_file" ]
|
|
|
|
if { [regexp "PASS" $output] } {
|
|
pass $test_desc
|
|
file delete "$srcdir/$subdir/$test_file" "$srcdir/$subdir/$test_file.o"
|
|
} else {
|
|
fail $test_desc
|
|
puts $output
|
|
}
|
|
|
|
}
|