1#
2# @(#) Test multiple threads can enumerate users correctly
3#
4
5load_lib util-defs.exp
6load_lib "$srcdir/lib/nsswitch-config.exp"
7
8# Compile getpwent_r.c
9
10set output [target_compile "$srcdir/$subdir/getpwent_r.c" \
11        "$srcdir/$subdir/getpwent_r" executable {additional_flags="-g"}]
12
13if {$output != ""} {
14    perror "compile getpwent_r"
15    puts $output
16    fail ""
17}
18
19# Clean up output from previous tests
20
21set pid [pid]
22file delete [glob -nocomplain "/tmp/getpwent_r-$pid.out-*"]
23
24# Run test proggy
25
26set output [util_start "$srcdir/$subdir/getpwent_r" "$pid" ""]
27if {![regexp "^PASS:" $output]} {
28    perror "run getpwent_r"
29    puts $output
30    return -1
31}
32
33# Sort and compare output
34
35set output [util_start "$srcdir/$subdir/getent_r.sh" "getpwent $pid" ""]
36if {$output == ""} {
37    pass "getpwent_r"
38} else {
39    fail "getpwent_r"
40    puts $output
41}
42