# # @(#) 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 } }