diff options
author | Jeremy Allison <jra@samba.org> | 2001-10-11 21:53:48 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-10-11 21:53:48 +0000 |
commit | 906da151a5180d9107d85f339a6edbd8c325a32a (patch) | |
tree | 6caeba36bde07a74af5197fda3ce1cb07526d41f /testsuite/nsswitch | |
parent | a569d5a581065d3ccafdf145c79ba7b622951329 (diff) | |
download | samba-906da151a5180d9107d85f339a6edbd8c325a32a.tar.gz samba-906da151a5180d9107d85f339a6edbd8c325a32a.tar.xz samba-906da151a5180d9107d85f339a6edbd8c325a32a.zip |
Sync testsuite.
Jeremy.
Diffstat (limited to 'testsuite/nsswitch')
-rw-r--r-- | testsuite/nsswitch/bigfd.exp | 5 | ||||
-rw-r--r-- | testsuite/nsswitch/finger.exp | 28 | ||||
-rw-r--r-- | testsuite/nsswitch/getent.exp | 141 | ||||
-rw-r--r-- | testsuite/nsswitch/getgrent_r.exp | 3 | ||||
-rw-r--r-- | testsuite/nsswitch/getgrgid.exp | 22 | ||||
-rw-r--r-- | testsuite/nsswitch/getgrnam.exp | 25 | ||||
-rw-r--r-- | testsuite/nsswitch/getpwent_r.exp | 3 | ||||
-rw-r--r-- | testsuite/nsswitch/getpwnam.exp | 23 | ||||
-rw-r--r-- | testsuite/nsswitch/getpwuid.exp | 15 | ||||
-rw-r--r-- | testsuite/nsswitch/nss_winbind_syms.c | 1 | ||||
-rw-r--r-- | testsuite/nsswitch/nss_winbind_syms.exp | 21 |
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 } |