~ubuntu-branches/ubuntu/utopic/libuser/utopic-proposed

« back to all changes in this revision

Viewing changes to tests/utils_test

  • Committer: Bazaar Package Importer
  • Author(s): Ghe Rivero
  • Date: 2005-09-30 16:22:04 UTC
  • Revision ID: james.westby@ubuntu.com-20050930162204-qubxaa7e2lbovdgh
Tags: upstream-0.54.dfsg.1
ImportĀ upstreamĀ versionĀ 0.54.dfsg.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
# Automated libuser utilities regression tester
 
3
#
 
4
# Copyright (c) 2004, 2005 Red Hat, Inc. All rights reserved.
 
5
#
 
6
# This is free software; you can redistribute it and/or modify it under
 
7
# the terms of the GNU Library General Public License as published by
 
8
# the Free Software Foundation; either version 2 of the License, or
 
9
# (at your option) any later version.
 
10
#
 
11
# This program is distributed in the hope that it will be useful, but
 
12
# WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
14
# General Public License for more details.
 
15
#
 
16
# You should have received a copy of the GNU Library General Public
 
17
# License along with this program; if not, write to the Free Software
 
18
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
19
#
 
20
# Author: Miloslav Trmac <mitr@redhat.com>
 
21
 
 
22
srcdir=$srcdir/tests
 
23
 
 
24
workdir=$(pwd)/test_files
 
25
 
 
26
trap 'status=$?; rm -rf "$workdir"; exit $status' 0
 
27
trap '(exit 1); exit 1' 1 2 13 15
 
28
 
 
29
rm -rf "$workdir"
 
30
mkdir "$workdir"
 
31
 
 
32
# Set up an the environment
 
33
mkdir "$workdir"/files
 
34
> "$workdir"/files/passwd
 
35
> "$workdir"/files/shadow
 
36
> "$workdir"/files/group
 
37
> "$workdir"/files/gshadow
 
38
 
 
39
# Set up the client
 
40
LIBUSER_CONF=$workdir/libuser.conf
 
41
export LIBUSER_CONF
 
42
sed "s|@WORKDIR@|$workdir|g; s|@TOP_BUILDDIR@|$(pwd)|g" \
 
43
    < "$srcdir"/utils.conf.in > "$LIBUSER_CONF"
 
44
PATH=$(pwd)/apps:$PATH
 
45
 
 
46
LARGE_ID=2147483648
 
47
(
 
48
set -e
 
49
# lgroupadd:
 
50
lgroupadd -g "$(expr $LARGE_ID + 110)" group1_1
 
51
#  untested: -r
 
52
 
 
53
# lgroupdel:
 
54
lgroupadd group2_1
 
55
lgroupdel group2_1
 
56
 
 
57
# lgroupmod:
 
58
lgroupadd -g "$(expr $LARGE_ID + 310)" group3_1
 
59
lgroupmod -A user3_1,user3_2 -g "$(expr $LARGE_ID + 311)" -L \
 
60
    -M user3_3,user3_4 -n group3_2 -p '01vokOibos3pg' group3_1
 
61
lgroupmod -a user3_1,user3_1notexist -m user3_3,user3_2notexist -L group3_2
 
62
lgroupadd -g "$(expr $LARGE_ID + 330)" group3_3
 
63
lgroupmod -p '!!02yd6IWnPes66' group3_3
 
64
lgroupmod -U group3_3
 
65
#  Handling of GID change for primary and secondary groups
 
66
lgroupadd -g "$(expr $LARGE_ID + 340)" group3_4
 
67
luseradd -M -g group3_4 -u "$(expr $LARGE_ID + 350)" user3_5
 
68
lgroupadd -g "$(expr $LARGE_ID + 350)" group3_5
 
69
luseradd -M -g group3_5 -u "$(expr $LARGE_ID + 360)" user3_6
 
70
lgroupmod -M user3_6 group3_4
 
71
lgroupmod -g "$(expr $LARGE_ID + 341)" group3_4
 
72
#  untested: -P
 
73
 
 
74
# lchage:
 
75
lgroupadd -g "$(expr $LARGE_ID + 410)" user4_1
 
76
luseradd -M -u "$(expr $LARGE_ID + 410)" user4_1
 
77
lchage -d 400 -E 410 -I 420 -m 430 -M 440 -W 450 user4_1
 
78
LC_ALL=C lchage -l user4_1 > "$workdir"/lchage_output
 
79
diff - "$workdir"/lchage_output <<\EOF
 
80
Account is locked.
 
81
Minimum:        430
 
82
Maximum:        440
 
83
Warning:        450
 
84
Inactive:       420
 
85
Last Change:    02/05/71
 
86
Password Expires:       04/20/72
 
87
Password Inactive:      06/14/73
 
88
Account Expires:        02/15/71
 
89
EOF
 
90
 
 
91
# lchfn: untested (requires system account)
 
92
# lchsh: untested (requires system account)
 
93
 
 
94
# lid:
 
95
lgroupadd -g "$(expr $LARGE_ID + 510)" group5_1
 
96
lgroupadd -g "$(expr $LARGE_ID + 520)" group5_2
 
97
lgroupadd -g "$(expr $LARGE_ID + 530)" group5_3
 
98
luseradd -M -g group5_1 -u "$(expr $LARGE_ID + 510)" user5_1
 
99
luseradd -M -g group5_3 -u "$(expr $LARGE_ID + 520)" user5_2
 
100
lgroupmod -M user5_1,user5_2 group5_2
 
101
lgroupmod -M user5_2 group5_1
 
102
lid user5_1 > "$workdir"/lid_output1
 
103
diff - "$workdir"/lid_output1 <<EOF
 
104
 group5_1(gid=$(expr $LARGE_ID + 510))
 
105
 group5_2(gid=$(expr $LARGE_ID + 520))
 
106
EOF
 
107
lid -n user5_1 > "$workdir"/lid_output2
 
108
diff - "$workdir"/lid_output2 <<\EOF
 
109
 group5_1
 
110
 group5_2
 
111
EOF
 
112
lid -g group5_1 > "$workdir"/lid_output3
 
113
diff - "$workdir"/lid_output3 <<EOF
 
114
 user5_1(uid=$(expr $LARGE_ID + 510))
 
115
 user5_2(uid=$(expr $LARGE_ID + 520))
 
116
EOF
 
117
lid -g -n group5_1 > "$workdir"/lid_output4
 
118
diff - "$workdir"/lid_output4 <<\EOF
 
119
 user5_1
 
120
 user5_2
 
121
EOF
 
122
 
 
123
# lnewusers:
 
124
lgroupadd -g "$(expr $LARGE_ID + 620)" user6_2
 
125
lgroupadd -g "$(expr $LARGE_ID + 630)" group6_3
 
126
LC_ALL=C lnewusers -M -n 2> "$workdir"/lnewusers_output <<EOF
 
127
user6_1:password:$(expr $LARGE_ID + 610):$(expr $LARGE_ID + 610):GECOS6_1:HomeDir6_1:Shell6_1
 
128
user6_2:password:$(expr $LARGE_ID + 620)::::
 
129
Invalid line
 
130
user6_3:password:$(expr $LARGE_ID + 630):$(expr $LARGE_ID + 630):::
 
131
user6_4:password:$(expr $LARGE_ID + 640):group6_4:::
 
132
EOF
 
133
diff - "$workdir"/lnewusers_output <<\EOF
 
134
Error creating account for `Invalid line': line improperly formatted.
 
135
EOF
 
136
 
 
137
# lpasswd: untested (requires system account)
 
138
 
 
139
# luseradd:
 
140
lgroupadd -g "$(expr $LARGE_ID + 710)" group7_1
 
141
luseradd -c GECOS7_1 -d HomeDir7_1 -g group7_1 -M -p '03dgZm5nZvqOc' \
 
142
    -s Shell7_1 -u "$(expr $LARGE_ID + 710)" user7_1
 
143
#  untested: -k, -r, -n, -P
 
144
 
 
145
# luserdel:
 
146
lgroupadd -g "$(expr $LARGE_ID + 810)" group8_1
 
147
luseradd -g group8_1 -M user8_1
 
148
luserdel user8_1
 
149
luseradd -M user8_2
 
150
luserdel user8_2
 
151
lgroupadd -g "$(expr $LARGE_ID + 830)" user8_3
 
152
luseradd -M user8_3
 
153
luserdel -G user8_3
 
154
 
 
155
# lusermod:
 
156
lgroupadd -g "$(expr $LARGE_ID + 910)" group9_1
 
157
luseradd -g group9_1 -u "$(expr $LARGE_ID + 910)" -M user9_1
 
158
lgroupadd -g "$(expr $LARGE_ID + 920)" group9_2
 
159
lusermod -c GECOS9_1 -d HomeDir9_1 -g "$(expr $LARGE_ID + 920)" -l user9_2 \
 
160
    -p '04aqostCGmvZM' -s Shell9_1 -u "$(expr $LARGE_ID + 911)" user9_1
 
161
lusermod -L user9_2
 
162
lgroupadd -g "$(expr $LARGE_ID + 930)" group9_3
 
163
luseradd -g group9_3 -u "$(expr $LARGE_ID + 930)" -M user9_3
 
164
lusermod -p '!!05FdoegP8UniQ' user9_3
 
165
lusermod -U user9_3
 
166
#  Handling of username change for primary and secondary groups
 
167
lgroupadd -g "$(expr $LARGE_ID + 940)" group9_4
 
168
lgroupadd -g "$(expr $LARGE_ID + 950)" group9_5
 
169
luseradd -g "$(expr $LARGE_ID + 940)" -u "$(expr $LARGE_ID + 940)" -M user9_4
 
170
lgroupmod -M user9_4 group9_5
 
171
lusermod -l user9_5 user9_4
 
172
#  untested: -m, -P
 
173
 
 
174
sed 's/^group6_4:x:[0123456789]*:$/group6_4:x:GID:/' < "$workdir"/files/group \
 
175
    > "$workdir"/group
 
176
diff -u "$srcdir"/utils_group "$workdir"/group
 
177
diff -u "$srcdir"/utils_gshadow "$workdir"/files/gshadow
 
178
sed 's/^\(user6_4:x:[^:]*\):[0123456789]*:\(.*\)$/\1:GID:\2/' \
 
179
    < "$workdir"/files/passwd > "$workdir"/passwd
 
180
diff -u "$srcdir"/utils_passwd "$workdir"/passwd
 
181
sed -e 's/^\([^:]*:[^:]*\):[0123456789]\{5,\}:\(.*\)$/\1:DATE:\2/' \
 
182
    -e 's/^\([^:]*\):\$1\$[^:]*:\(.*\)$/\1:HASH:\2/' \
 
183
    < "$workdir"/files/shadow > "$workdir"/shadow
 
184
diff -u "$srcdir"/utils_shadow "$workdir"/shadow
 
185
)