2 # @(#) Test the getent command returns domain/local users and groups
7 load_lib $srcdir/lib/nsswitch-config.exp
10 # @(#) Test getent passwd returns domain users
13 set wbinfo_output [util_start "bin/wbinfo" "-u"]
14 set getent_output [util_start "getent" "passwd" ""]
16 if { ![regexp "$domain/" $getent_output] } {
17 fail "no domain users in getent passwd"
21 if { [regexp "Error" $wbinfo_output] } {
22 fail "wbinfo -u failed"
27 # @(#) Test each user in the output of wbinfo is also in the output of
31 # Test wbinfo user names are in getent user names
33 foreach { user } [split $wbinfo_output "\n"] {
35 verbose "looking for $user"
37 set test_desc "getent passwd does not contain $user"
39 if { ![regexp "$user" $getent_output] } {
46 # Test getent user names are in wbinfo user names
48 foreach { user } [split $getent_output "\n"] {
50 set user_info [split $user ":"]
51 set username [lindex $user_info 0]
53 if { [regexp {^[^/]+/} $username] } {
55 set test_desc "wbinfo -u does not contain $username"
57 if { ![regexp "$username" $wbinfo_output] } {
63 verbose "ignoring non-domain user $username"
68 # @(#) Test each group in the output of wbinfo is also in the output of
72 set wbinfo_output [util_start "bin/wbinfo" "-g"]
73 set getent_output [util_start "getent" "group" ""]
75 if { ![regexp "$domain/" $getent_output] } {
76 fail "no domain groups in getent passwd"
80 if { [regexp "Error" $wbinfo_output] } {
81 fail "wbinfo -g failed"
85 # Test wbinfo group names are in getent group names
87 foreach { group } [split $wbinfo_output "\n"] {
89 verbose "looking for $group"
91 set test_desc "getent group does not contain $group"
93 if { ![regexp "$group" $getent_output] } {
100 # Test getent group names are in wbinfo group names
102 foreach { group } [split $getent_output "\n"] {
104 set group_info [split $group ":"]
105 set groupname [lindex $group_info 0]
107 if { [regexp {^[^/]+/} $groupname] } {
109 set test_desc "wbinfo -g does not contain $groupname"
111 if { ![regexp "$groupname" $wbinfo_output] } {
117 verbose "ignoring non-domain group $groupname"
122 # @(#) Test out of order and repeat calls of pwent functions
123 # @(#) Test out of order and repeat calls of grent functions
126 set getent_tests [list \
127 { "out of order pwent operations" "getent_pwent" } \
128 { "out of order grent operations" "getent_grent" } \
131 # Compile and run each test
133 foreach { test } $getent_tests {
134 set test_desc [lindex $test 0]
135 set test_file [lindex $test 1]
137 simple_compile $test_file
138 set output [util_start "$srcdir/$subdir/$test_file" ]
140 if { [regexp "PASS" $output] } {
142 file delete "$srcdir/$subdir/$test_file" "$srcdir/$subdir/$test_file.o"