OSDN Git Service

Try to consistently print command name at the start of each test.
[android-x86/external-toybox.git] / tests / useradd.test
1 #!/bin/bash
2
3 # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
4 # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
5
6 [ -f testing.sh ] && . testing.sh
7
8 if [ "$(id -u)" -ne 0 ]
9 then
10   echo "$SHOWSKIP: useradd (not root)"
11   continue 2>/dev/null
12   exit
13 fi
14
15 # Redirecting all output to /dev/null for grep, adduser and deluser
16 arg="&>/dev/null"
17
18 #testing "name" "command" "result" "infile" "stdin"
19
20 # Default password for adding user is: 'password'
21 pass=`echo -ne 'password\npassword\n'`
22
23 user="toyTestUser"
24 testing "useradd (text)" "useradd $user $arg || 
25    grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
26    echo 'yes'" "yes\n" "" "$pass"
27 userdel -r $user $arg
28
29 user="toy1Test2User3"
30 testing "useradd (alphanumeric)" "useradd $user $arg ||
31    grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
32    echo 'yes'" "yes\n" "" "$pass"
33 userdel -r $user $arg
34
35 user="987654321"
36 testing "useradd (numeric)" "useradd $user $arg ||
37    grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
38    echo 'yes'" "yes\n" "" "$pass"
39 userdel -r $user $arg
40
41 user="toy.1Test-2User_3"
42 testing "useradd (with ./-/_)" "useradd $user $arg ||
43    grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 
44    echo 'yes'" "yes\n" "" "$pass"
45 userdel -r $user $arg
46
47 # 70 characters long string; hereafter, we will use it as per our need.
48 user="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
49 testing "useradd (long string)" "useradd $user $arg ||
50    grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
51    echo 'yes'" "yes\n" "" "$pass"
52 userdel -r $user $arg
53
54 user="toyTestUser"
55 testing "useradd dir" "useradd -h $PWD/dir $user $arg ||
56    grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] &&
57    echo 'yes'" "yes\n" "" "$pass"
58 userdel -r $user $arg
59 rm -rf $PWD/dir
60
61 gecos="aaa,bbb,ccc,ddd,eee"
62 testing "useradd gecos" "useradd -g '$gecos' $user $arg ||
63    grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] &&
64    echo 'yes'" "yes\n" "" "$pass"
65 userdel -r $user $arg
66
67 shl="/bin/sh"
68 testing "useradd shell" "useradd -s $shl $user $arg ||
69    grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] &&
70    echo 'yes'" "yes\n" "" "$pass"
71 userdel -r $user $arg
72
73 g_name="root"
74 g_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3`
75 testing "useradd group" "useradd -G $g_name $user $arg ||
76    grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] &&
77    echo 'yes'" "yes\n" "" "$pass"
78 userdel -r $user $arg
79
80 testing "useradd (system user)" "useradd -S $user $arg ||
81    grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] && 
82    echo 'yes'" "yes\n" "" "$pass"   
83 userdel -r $user $arg
84
85 testing "useradd -D" "useradd -D $user $arg ||
86    grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
87    echo 'yes'" "yes\n" "" "$pass"
88 userdel -r $user $arg
89
90 testing "useradd -H" "useradd -H $user $arg ||
91    grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
92    echo 'yes'" "yes\n" "" "$pass"
93 userdel -r $user $arg
94
95 testing "useradd dir and -H" "useradd -H -h $PWD/dir $user $arg ||
96    grep '^$user:.*dir' /etc/passwd $arg && [ ! -e $PWD/dir ] &&
97    echo 'yes'" "yes\n" "" "$pass"
98 userdel -r $user $arg
99
100 testing "useradd -u" "useradd -u 49999 $user $arg ||
101    grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] && 
102    echo 'yes'" "yes\n" "" "$pass"
103 userdel -r $user $arg
104