summaryrefslogtreecommitdiffstats
path: root/testsuite/nsswitch
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-10-11 21:53:48 +0000
committerJeremy Allison <jra@samba.org>2001-10-11 21:53:48 +0000
commit906da151a5180d9107d85f339a6edbd8c325a32a (patch)
tree6caeba36bde07a74af5197fda3ce1cb07526d41f /testsuite/nsswitch
parenta569d5a581065d3ccafdf145c79ba7b622951329 (diff)
downloadsamba-906da151a5180d9107d85f339a6edbd8c325a32a.tar.gz
samba-906da151a5180d9107d85f339a6edbd8c325a32a.tar.xz
samba-906da151a5180d9107d85f339a6edbd8c325a32a.zip
Sync testsuite.
Jeremy.
Diffstat (limited to 'testsuite/nsswitch')
-rw-r--r--testsuite/nsswitch/bigfd.exp5
-rw-r--r--testsuite/nsswitch/finger.exp28
-rw-r--r--testsuite/nsswitch/getent.exp141
-rw-r--r--testsuite/nsswitch/getgrent_r.exp3
-rw-r--r--testsuite/nsswitch/getgrgid.exp22
-rw-r--r--testsuite/nsswitch/getgrnam.exp25
-rw-r--r--testsuite/nsswitch/getpwent_r.exp3
-rw-r--r--testsuite/nsswitch/getpwnam.exp23
-rw-r--r--testsuite/nsswitch/getpwuid.exp15
-rw-r--r--testsuite/nsswitch/nss_winbind_syms.c1
-rw-r--r--testsuite/nsswitch/nss_winbind_syms.exp21
11 files changed, 201 insertions, 86 deletions
diff --git a/testsuite/nsswitch/bigfd.exp b/testsuite/nsswitch/bigfd.exp
index bda1a6db6cf..62fc9ea7f35 100644
--- a/testsuite/nsswitch/bigfd.exp
+++ b/testsuite/nsswitch/bigfd.exp
@@ -3,9 +3,10 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-pass "bigfd"
+# Unimplemented - eek!
+
+untested "bigfd"
return
# Compile bigfd.c
diff --git a/testsuite/nsswitch/finger.exp b/testsuite/nsswitch/finger.exp
index 8a57f1c8096..ab3b28f58fc 100644
--- a/testsuite/nsswitch/finger.exp
+++ b/testsuite/nsswitch/finger.exp
@@ -3,23 +3,37 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
-# Look up domain users using finger. This should test getpwnam()
+set output [util_start "bin/wbinfo" "-u"]
+if { [regexp "Error" $output] } {
+ fail "error running wbinfo"
+ return
+}
+
+set user_list [split $output "\n"]
+
+# Look up all users using finger. This should test getpwnam()
-foreach { user } $domain_users {
- if {[util_test "finger" "-m $user" "" "no such user"] < 1} {
+foreach { user } $user_list {
+ set output [util_start "finger" "-m $user" "" "no such user"]
+ verbose $output
+
+ if { [regexp "no such user" $output] } {
fail "finger -m $user"
} else {
pass "finger -m $user"
}
}
+verbose "testing finger -m"
+
# Run finger without the -m to also test set/get/endpwent()
-foreach { user } $domain_users {
- if {[util_test "finger" "$user" "" "no such user"] < 1} {
+foreach { user } $user_list {
+ set output [util_start "finger" "-m $user"]
+ verbose $output
+
+ if { [regexp "no such user" $output] } {
fail "finger $user"
} else {
pass "finger $user"
diff --git a/testsuite/nsswitch/getent.exp b/testsuite/nsswitch/getent.exp
index fcd98670b83..72bf2ea1ebe 100644
--- a/testsuite/nsswitch/getent.exp
+++ b/testsuite/nsswitch/getent.exp
@@ -3,35 +3,146 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
+load_lib compile.exp
+load_lib $srcdir/lib/nsswitch-config.exp
#
-# Test getent passwd
+# @(#) Test getent passwd returns domain users
#
-set output [util_start "getent" "passwd" ""]
+set wbinfo_output [util_start "bin/wbinfo" "-u"]
+set getent_output [util_start "getent" "passwd" ""]
-# Test output for domain users
+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]
-foreach {user} $domain_users {
- if {![regexp "$user" $output]} {
- fail "getent passwd $user"
+ 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 {
- pass "getent passwd $user"
+ verbose "ignoring non-domain group $groupname"
}
}
#
-# Test getent group
+# @(#) Test out of order and repeat calls of pwent functions
+# @(#) Test out of order and repeat calls of grent functions
#
-set output [util_start "getent" "group" ""]
+set getent_tests [list \
+ { "out of order pwent operations" "getent_pwent" } \
+ { "out of order grent operations" "getent_grent" } \
+ ]
+
+# Compile and run each test
-foreach {group} $domain_groups {
- if {![regexp "$group" $output]} {
- fail "getent group $group"
+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 {
- pass "getent group $group"
+ fail $test_desc
+ puts $output
}
+
}
diff --git a/testsuite/nsswitch/getgrent_r.exp b/testsuite/nsswitch/getgrent_r.exp
index d2dc47e252b..c03237c2ad1 100644
--- a/testsuite/nsswitch/getgrent_r.exp
+++ b/testsuite/nsswitch/getgrent_r.exp
@@ -3,8 +3,7 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
+load_lib "$srcdir/lib/nsswitch-config.exp"
# Compile getgrent_r.c
diff --git a/testsuite/nsswitch/getgrgid.exp b/testsuite/nsswitch/getgrgid.exp
index a6508b3cd52..c53749f2629 100644
--- a/testsuite/nsswitch/getgrgid.exp
+++ b/testsuite/nsswitch/getgrgid.exp
@@ -3,25 +3,19 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
+load_lib compile.exp
-# Compile getpwuid.c
+# Compile getgruid.c
-set output [target_compile "$srcdir/$subdir/getgrgid.c" \
- "$srcdir/$subdir/getgrgid" executable {additional_flags="-g"}]
+simple_compile "getgrgid"
-if {$output != ""} {
- perror "compile getgrgid"
- puts $output
- return
-}
-
-# Get list of uids using getent
+# Get list of gids using getent
set output [util_start "getent" "group" ""]
set got_entries 0
+verbose $output
+
foreach {line} [split $output "\n"] {
# Process user
@@ -29,7 +23,7 @@ foreach {line} [split $output "\n"] {
set grp_entry [split $line ":"]
set group [lindex $grp_entry 0]
- if {[regexp "^($domain)/" $group]} {
+ if {[regexp {^[^/]+/} $group]} {
set got_entries 1
@@ -40,6 +34,8 @@ foreach {line} [split $output "\n"] {
# Test lookup of gid succeeds
set output [util_start "$srcdir/$subdir/getgrgid" "$gid" ""]
+ verbose $output
+
if {[regexp "PASS:" $output]} {
pass "getgrgid $gid ($group)"
} else {
diff --git a/testsuite/nsswitch/getgrnam.exp b/testsuite/nsswitch/getgrnam.exp
index 2ba6ba0281b..92c5b76742e 100644
--- a/testsuite/nsswitch/getgrnam.exp
+++ b/testsuite/nsswitch/getgrnam.exp
@@ -1,26 +1,25 @@
#
-# @(#) Test domain/local groups resolve using getgrnam()
+# @(#) Test domain groups resolve using getgrnam()
#
-load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
+load_lib "util-defs.exp"
+load_lib "compile.exp"
# Compile getgrnam.c
-set output [target_compile "$srcdir/$subdir/getgrnam.c" \
- "$srcdir/$subdir/getgrnam" executable {additional_flags="-g"}]
-
-if {$output != ""} {
- perror "compile getgrnam"
- puts $output
- return
-}
+simple_compile "getgrnam"
# Test domain groups
-foreach {group} $domain_groups {
+set group_list [split [util_start "bin/wbinfo" "-g"] "\n"]
+
+verbose $group_list
+
+foreach {group} $group_list {
set output [util_start "$srcdir/$subdir/getgrnam" "\"$group\"" ""]
+
+ verbose $output
+
if {[regexp "PASS:" $output]} {
pass "getgrnam $group"
} else {
diff --git a/testsuite/nsswitch/getpwent_r.exp b/testsuite/nsswitch/getpwent_r.exp
index 9e6f9151135..95c155d78cc 100644
--- a/testsuite/nsswitch/getpwent_r.exp
+++ b/testsuite/nsswitch/getpwent_r.exp
@@ -3,8 +3,7 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
+load_lib "$srcdir/lib/nsswitch-config.exp"
# Compile getpwent_r.c
diff --git a/testsuite/nsswitch/getpwnam.exp b/testsuite/nsswitch/getpwnam.exp
index 49f61f1a5cc..5f6b2343392 100644
--- a/testsuite/nsswitch/getpwnam.exp
+++ b/testsuite/nsswitch/getpwnam.exp
@@ -1,26 +1,25 @@
#
-# @(#) Test default domain users resolve using getpwnam()
+# @(#) Test domain users resolve using getpwnam()
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
+load_lib "compile.exp"
# Compile getpwnam.c
-set output [target_compile "$srcdir/$subdir/getpwnam.c" \
- "$srcdir/$subdir/getpwnam" executable {additional_flags="-g"}]
-
-if {$output != ""} {
- perror "compile getpwnam"
- puts $output
- return
-}
+simple_compile "getpwnam"
# Test domain users
-foreach {user} $domain_users {
+set user_list [split [util_start "bin/wbinfo" "-u"] "\n"]
+
+verbose $user_list
+
+foreach { user } $user_list {
set output [util_start "$srcdir/$subdir/getpwnam" "\"$user\"" ""]
+
+ verbose $output
+
if {[regexp "PASS:" $output]} {
pass "getpwnam $user"
} else {
diff --git a/testsuite/nsswitch/getpwuid.exp b/testsuite/nsswitch/getpwuid.exp
index 48e7dcb2be7..be6a01cb9e1 100644
--- a/testsuite/nsswitch/getpwuid.exp
+++ b/testsuite/nsswitch/getpwuid.exp
@@ -3,8 +3,6 @@
#
load_lib util-defs.exp
-load_lib "$srcdir/config/env.exp"
-load_lib "$srcdir/config/default-nt-names.exp"
# Compile getpwuid.c
@@ -22,6 +20,8 @@ if {$output != ""} {
set output [util_start "getent" "passwd" ""]
set got_entries 0
+verbose $output
+
foreach {line} [split $output "\n"] {
# Process user
@@ -29,7 +29,7 @@ foreach {line} [split $output "\n"] {
set pwd_entry [split $line ":"]
set user [lindex $pwd_entry 0]
- if {[regexp "^($domain)/" $user]} {
+ if {[regexp {^[^/]+/} $user]} {
set got_entries 1
@@ -41,10 +41,15 @@ foreach {line} [split $output "\n"] {
# Test lookup of uid succeeds
set output [util_start "$srcdir/$subdir/getpwuid" "$uid" ""]
+
+ verbose $output
+
+ set test_desc "getpwuid $uid ($user)"
+
if {[regexp "PASS:" $output]} {
- pass "getpwuid $uid ($user)"
+ pass $test_desc
} else {
- fail "getpwuid $uid ($user)"
+ fail $test_desc
}
}
}
diff --git a/testsuite/nsswitch/nss_winbind_syms.c b/testsuite/nsswitch/nss_winbind_syms.c
index 3df471ed990..29d1da9d499 100644
--- a/testsuite/nsswitch/nss_winbind_syms.c
+++ b/testsuite/nsswitch/nss_winbind_syms.c
@@ -18,6 +18,7 @@ static char *symlist[] = {
"_nss_winbind_getpwuid_r",
"_nss_winbind_setgrent",
"_nss_winbind_setpwent",
+ "_nss_winbind_initgroups",
NULL
};
diff --git a/testsuite/nsswitch/nss_winbind_syms.exp b/testsuite/nsswitch/nss_winbind_syms.exp
index a0cf4cf7fc1..ab84cc5c757 100644
--- a/testsuite/nsswitch/nss_winbind_syms.exp
+++ b/testsuite/nsswitch/nss_winbind_syms.exp
@@ -14,33 +14,24 @@
# _nss_winbind_getpwuid_r
# _nss_winbind_setgrent
# _nss_winbind_setpwent
+# _nss_winbind_initgroups
#
# This test also has the nice side-effect of showing any unresolved symbols
# in the library.
#
load_lib util-defs.exp
+load_lib compile.exp
-# Compile nss_winbind_syms.c
-
-set output [target_compile "$srcdir/$subdir/nss_winbind_syms.c" \
- "$srcdir/$subdir/nss_winbind_syms" executable \
- {"libs=-ldl" "additional_flags=-g"}]
-
-if {$output != ""} {
- perror "compile nss_winbind_syms.c"
- puts $output
- return
-}
-
-# Run load-dl.c
+simple_compile "nss_winbind_syms" "-ldl"
set output [util_start "$srcdir/$subdir/nss_winbind_syms" \
"nsswitch/libnss_winbind.so"]
-if {[regexp "FAIL:" $output]} {
+verbose $output
+
+if { [regexp "FAIL:" $output] } {
fail "run nss_winbind_syms"
- puts $output
return
}