source: rtems/testsuites/psxtests/psxpasswd01/init.c @ c499856

4.115
Last change on this file since c499856 was c499856, checked in by Chris Johns <chrisj@…>, on 03/20/14 at 21:10:47

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 4.4 KB
Line 
1/*
2 *  COPYRIGHT (c) 1989-2012.
3 *  On-Line Applications Research Corporation (OAR).
4 *
5 *  The license and distribution terms for this file may be
6 *  found in the file LICENSE in this distribution or at
7 *  http://www.rtems.org/license/LICENSE.
8 */
9
10#ifdef HAVE_CONFIG_H
11#include "config.h"
12#endif
13
14#include <bsp.h>
15#include <pmacros.h>
16#include <sys/types.h>
17#include <pwd.h>
18#include <grp.h>
19
20/* forward declarations to avoid warnings */
21rtems_task Init(rtems_task_argument ignored);
22void print_passwd(struct passwd *pw);
23void print_group(struct group *gr);
24
25void print_passwd(
26  struct passwd *pw
27)
28{
29  printf(
30    "  username: %s\n"
31    "  user password: %s\n"
32    "  user ID: %d\n"
33    "  group ID: %d\n"
34    "  real name: %s\n"
35    "  home directory: %s\n"
36    "  shell program: %s\n",
37    pw->pw_name,
38    pw->pw_passwd,
39    pw->pw_uid,
40    pw->pw_gid,
41    pw->pw_gecos,
42    pw->pw_dir,
43    pw->pw_shell
44  );
45}
46 
47void print_group(
48  struct group *gr
49)
50{
51  printf(
52    "  group name: %s\n"
53    "  group  password: %s\n"
54    "  group  ID: %d\n",
55    gr->gr_name,
56    gr->gr_passwd,
57    gr->gr_gid
58  );
59
60  /* TBD print users in group */
61}
62 
63rtems_task Init(
64  rtems_task_argument ignored
65)
66{
67  struct passwd *pw;
68  struct group  *gr;
69
70  puts( "*** PASSWORD/GROUP TEST - 01 ***" );
71
72  /* getpwent */
73  puts( "Init - getpwent() -- OK, result should be NULL" );
74  pw = getpwent();
75  rtems_test_assert( !pw );
76
77  /* getgrent */
78  puts( "Init - getgrent() -- OK, result should be NULL" );
79  gr = getgrent();
80  rtems_test_assert( !gr );
81
82  /* setpwent */
83
84  puts( "Init - setpwent() -- OK" );
85  setpwent();
86
87  /* setgrent */
88
89  puts( "Init - setgrent() -- OK" );
90  setgrent();
91
92  /* getpwent */
93
94  puts( "Init - getpwent() (1) -- OK" );
95  pw = getpwent();
96  rtems_test_assert( pw );
97  print_passwd( pw );
98
99  puts( "Init - getpwent() (2) -- OK" );
100  pw = getpwent();
101  rtems_test_assert( pw );
102  print_passwd( pw );
103
104  puts( "Init - getpwent() (3) -- OK" );
105  pw = getpwent();
106  rtems_test_assert( pw );
107  print_passwd( pw );
108
109  puts( "Init - getpwent() (4) -- result should be NULL" );
110  pw = getpwent();
111  rtems_test_assert( !pw );
112
113  /* getgrent */
114
115  puts( "Init - getgrent() (1) -- OK" );
116  gr = getgrent();
117  rtems_test_assert( gr );
118  print_group( gr );
119
120  puts( "Init - getgrent() (2) -- OK" );
121  gr = getgrent();
122  rtems_test_assert( gr );
123  print_group( gr );
124
125  puts( "Init - getgrent() (3) -- OK" );
126  gr = getgrent();
127  rtems_test_assert( gr );
128  print_group( gr );
129
130  puts( "Init - getgrent() (4) -- result should be NULL" );
131  gr = getgrent();
132  rtems_test_assert( !gr );
133
134  /* getpwnam */
135  puts( "Init - getpwnam(\"root\") -- OK" );
136  pw = getpwnam( "root" );
137  rtems_test_assert( pw );
138  print_passwd( pw );
139
140  puts( "Init - getpwnam(\"rtems\") -- OK" );
141  pw = getpwnam( "rtems" );
142  rtems_test_assert( pw );
143  print_passwd( pw );
144
145  puts( "Init - getpwnam(\"suser\") -- result should be NULL" );
146  pw = getpwnam( "suser" );
147  rtems_test_assert( !pw );
148
149  /* getpwuid */
150  puts( "Init - getpwuid(0) -- OK" );
151  pw = getpwuid( 0 );
152  rtems_test_assert( pw );
153  print_passwd( pw );
154
155  puts( "Init - getpwuid(1) -- OK" );
156  pw = getpwuid( 1 );
157  rtems_test_assert( pw );
158  print_passwd( pw );
159
160  puts( "Init - getpwuid(4) -- result should be NULL" );
161  pw = getpwuid( 4 );
162  rtems_test_assert( !pw );
163
164  /* getgrnam */
165  puts( "Init - getgrnam(\"root\") -- OK" );
166  gr = getgrnam("root");
167  rtems_test_assert( gr );
168  print_group( gr );
169
170  puts( "Init - getgrnam(\"rtems\") -- OK" );
171  gr = getgrnam("rtems");
172  rtems_test_assert( gr );
173  print_group( gr );
174
175  /* getgrgid */
176  puts( "Init - getgrgid(0) -- OK" );
177  gr = getgrgid(0);
178  rtems_test_assert( gr );
179  print_group( gr );
180
181  puts( "Init - getgrgid(1) -- OK" );
182  gr = getgrgid(1);
183  rtems_test_assert( gr );
184  print_group( gr );
185
186  puts( "Init - getgrgid(4) -- result should be NULL");
187  gr = getgrgid( 4 );
188  rtems_test_assert( !gr );
189
190  /* endpwent */
191  puts( "Init - endpwent() -- OK" );
192  endpwent();
193
194  /* endgrent */
195  puts( "Init - endgrent() -- OK" );
196  endgrent();
197
198  puts( "*** END OF PASSWORD/GROUP TEST - 01 ***" );
199  rtems_test_exit( 0 );
200}
201
202/* configuration information */
203
204#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
205#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
206
207#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
208#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
209
210#define CONFIGURE_MAXIMUM_TASKS 1
211#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
212
213#define CONFIGURE_INIT
214#include <rtems/confdefs.h>
215/* end of file */
Note: See TracBrowser for help on using the repository browser.