diff options
Diffstat (limited to 'test/pwd_grp')
-rw-r--r-- | test/pwd_grp/.cvsignore | 6 | ||||
-rw-r--r-- | test/pwd_grp/.indent.pro | 33 | ||||
-rw-r--r-- | test/pwd_grp/Makefile | 87 | ||||
-rw-r--r-- | test/pwd_grp/test_grp.c | 100 | ||||
-rw-r--r-- | test/pwd_grp/test_pwd.c | 87 |
5 files changed, 313 insertions, 0 deletions
diff --git a/test/pwd_grp/.cvsignore b/test/pwd_grp/.cvsignore new file mode 100644 index 000000000..b2b052525 --- /dev/null +++ b/test/pwd_grp/.cvsignore @@ -0,0 +1,6 @@ +test_grp +test_grp.o +test_grp.out +test_grp_glibc +test_grp_glibc.o +test_grp_glibc.out diff --git a/test/pwd_grp/.indent.pro b/test/pwd_grp/.indent.pro new file mode 100644 index 000000000..492ecf1c7 --- /dev/null +++ b/test/pwd_grp/.indent.pro @@ -0,0 +1,33 @@ +--blank-lines-after-declarations +--blank-lines-after-procedures +--break-before-boolean-operator +--no-blank-lines-after-commas +--braces-on-if-line +--braces-on-struct-decl-line +--comment-indentation25 +--declaration-comment-column25 +--no-comment-delimiters-on-blank-lines +--cuddle-else +--continuation-indentation4 +--case-indentation0 +--else-endif-column33 +--space-after-cast +--line-comments-indentation0 +--declaration-indentation1 +--dont-format-first-column-comments +--dont-format-comments +--honour-newlines +--indent-level4 +/* changed from 0 to 4 */ +--parameter-indentation4 +--line-length78 /* changed from 75 */ +--continue-at-parentheses +--no-space-after-function-call-names +--dont-break-procedure-type +--dont-star-comments +--leave-optional-blank-lines +--dont-space-special-semicolon +--tab-size4 +/* additions by Mark */ +--case-brace-indentation0 +--leave-preprocessor-space diff --git a/test/pwd_grp/Makefile b/test/pwd_grp/Makefile new file mode 100644 index 000000000..bfeb0e652 --- /dev/null +++ b/test/pwd_grp/Makefile @@ -0,0 +1,87 @@ +TOPDIR=../../ +include $(TOPDIR)Rules.mak + +# Check if 'ls -sh' works or not +LSFLAGS = $(shell if ls -sh >/dev/null 2>&1; \ + then echo "-sh"; else echo "-s" ; fi) + +XCFLAGS = -Wall -Os -fomit-frame-pointer -fno-builtin -nostdinc \ + -I$(TOPDIR)include -I/usr/include/linux +XLDFLAGS = -nostdlib -s -gc-sections +EXTRA_LIBS=$(TOPDIR)libc.a + +YCFLAGS = -Wall -Os -fomit-frame-pointer +YLDFLAGS = -s --static + +# Allow alternative stripping tools to be used... +ifndef $(STRIPTOOL) + STRIPTOOL = strip +endif +STRIP = $(STRIPTOOL) --remove-section=.note --remove-section=.comment $@ + +TARGETS=test_pwd test_pwd_glibc +TARGETS+=test_grp test_grp_glibc +TARGETS+=test_pwd_diff test_grp_diff + +all: $(TARGETS) + +test_pwd: test_pwd.c Makefile $(TOPDIR)libc.a + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uCLibc: " + -@ echo " " + $(CC) $(XCFLAGS) -c $< -o $@.o + $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + -./$@ 2>&1 >test_pwd.out + -@ echo " " + +test_pwd_glibc: test_pwd.c Makefile $(TOPDIR)libc.a + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " + -@ echo " " + $(CC) $(YCFLAGS) -c $< -o $@.o + $(CC) $(YLDFLAGS) --static $@.o -o $@ + -./$@ 2>&1 >test_pwd_glibc.out + -@ echo " " + +test_grp: test_grp.c Makefile $(TOPDIR)libc.a + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uCLibc: " + -@ echo " " + $(CC) $(XCFLAGS) -c $< -o $@.o + $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + -./$@ 2>&1 >test_grp.out + -@ echo " " + +test_grp_glibc: test_grp.c Makefile $(TOPDIR)libc.a + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " + -@ echo " " + $(CC) $(YCFLAGS) -c $< -o $@.o + $(CC) $(YLDFLAGS) --static $@.o -o $@ + -./$@ 2>&1 >test_grp_glibc.out + -@ echo " " + +test_pwd_diff: test_pwd_glibc test_pwd + -@ echo "-------" + -@ echo " " + -@ echo "Diffing output: " + -@ echo " " + -diff -u test_pwd_glibc.out test_pwd.out + -@ echo " " + +test_grp_diff: test_grp_glibc test_grp + -@ echo "-------" + -@ echo " " + -@ echo "Diffing output: " + -@ echo " " + -diff -u test_grp_glibc.out test_grp.out + -@ echo " " + +clean: + rm -f *.[oa] *~ core $(TARGETS) *.out + + diff --git a/test/pwd_grp/test_grp.c b/test/pwd_grp/test_grp.c new file mode 100644 index 000000000..0e9c4a013 --- /dev/null +++ b/test/pwd_grp/test_grp.c @@ -0,0 +1,100 @@ +/* + * test_grp.c - This file is part of the libc-8086/grp package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman <ndf@linux.mit.edu>. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include <unistd.h> +#include <stdio.h> +#include <fcntl.h> +#include <grp.h> + +int main(int argc, char **argv) +{ + struct group *group; + char **tmp_mem; + int test_gid; + + fprintf(stdout, "Beginning test of libc/grp...\n"); + + fprintf(stdout, "=> Testing setgrent(), getgrent(), endgrent()...\n"); + fprintf(stdout, "-> setgrent()...\n"); + setgrent(); + fprintf(stdout, "-> getgrent()...\n"); + printf + ("********************************************************************************\n"); + while ((group = getgrent()) != NULL) { + printf("gr_name\t\t: %s\n", group->gr_name); + printf("gr_passwd\t: %s\n", group->gr_passwd); + printf("gr_gid\t\t: %d\n", (int) group->gr_gid); + printf("gr_mem\t\t: "); + fflush(stdout); + tmp_mem = group->gr_mem; + while (*tmp_mem != NULL) { + printf("%s, ", *tmp_mem); + tmp_mem++; + } + printf + ("\n********************************************************************************\n"); + } + fprintf(stdout, "-> endgrent()...\n"); + endgrent(); + fprintf(stdout, + "=> Test of setgrent(), getgrent(), endgrent() complete.\n"); + fprintf(stdout, "=> Testing getgrid(), getgrnam()...\n"); + fprintf(stdout, "-> getgrgid()...\n"); + printf + ("********************************************************************************\n"); + for (test_gid = 0; test_gid < 100; test_gid++) { + fprintf(stdout, "-> getgrgid(%d)...\n", test_gid); + group = getgrgid((gid_t) test_gid); + if (group != NULL) { + printf("gr_name\t: %s\n", group->gr_name); + printf("gr_passwd\t: %s\n", group->gr_passwd); + printf("gr_gid\t: %d\n", (int) group->gr_gid); + printf("gr_mem\t\t: "); + fflush(stdout); + tmp_mem = group->gr_mem; + while (*tmp_mem != NULL) { + printf("%s, ", *tmp_mem); + tmp_mem++; + } + } + printf + ("\n********************************************************************************\n"); + } + fprintf(stdout, "-> getgrnam()...\n"); + group = getgrnam("root"); + if (group == NULL) { + printf(">NULL<\n"); + } else { + printf("gr_name\t: %s\n", group->gr_name); + printf("gr_passwd\t: %s\n", group->gr_passwd); + printf("gr_gid\t: %d\n", (int) group->gr_gid); + printf("gr_mem\t\t: "); + fflush(stdout); + tmp_mem = group->gr_mem; + while (*tmp_mem != NULL) { + printf("%s, ", *tmp_mem); + tmp_mem++; + } + printf("\n"); + } + + + return 0; +} diff --git a/test/pwd_grp/test_pwd.c b/test/pwd_grp/test_pwd.c new file mode 100644 index 000000000..9d2186695 --- /dev/null +++ b/test/pwd_grp/test_pwd.c @@ -0,0 +1,87 @@ +/* + * test_pwd.c - This file is part of the libc-8086/pwd package for ELKS, + * Copyright (C) 1995, 1996 Nat Friedman <ndf@linux.mit.edu>. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include <unistd.h> +#include <stdio.h> +#include <fcntl.h> +#include <pwd.h> + +int main(int argc, char **argv) +{ + struct passwd *passwd; + int test_uid; + + fprintf(stdout, "Beginning test of libc/pwd...\n"); + + fprintf(stdout, "=> Testing setpwent(), getpwent(), endpwent()...\n"); + fprintf(stdout, "-> setpwent()...\n"); + setpwent(); + fprintf(stdout, "-> getpwent()...\n"); + printf + ("********************************************************************************\n"); + while ((passwd = getpwent()) != NULL) { + printf("pw_name\t\t: %s\n", passwd->pw_name); + printf("pw_passwd\t: %s\n", passwd->pw_passwd); + printf("pw_uid\t\t: %d\n", (int) passwd->pw_uid); + printf("pw_gid\t\t: %d\n", (int) passwd->pw_gid); + printf("pw_gecos\t: %s\n", passwd->pw_gecos); + printf("pw_dir\t\t: %s\n", passwd->pw_dir); + printf("pw_shell\t: %s\n", passwd->pw_shell); + printf + ("********************************************************************************\n"); + } + fprintf(stdout, "-> endpwent()...\n"); + endpwent(); + fprintf(stdout, + "=> Test of setpwent(), getpwent(), endpwent() complete.\n"); + fprintf(stdout, "=> Testing getpwuid(), getpwnam()...\n"); + fprintf(stdout, "-> getpwuid()...\n"); + printf + ("********************************************************************************\n"); + for (test_uid = 0; test_uid < 1000; test_uid++) { + fprintf(stdout, "-> getpwuid(%d)...\n", test_uid); + passwd = getpwuid((uid_t) test_uid); + if (passwd != NULL) { + printf("pw_name\t\t: %s\n", passwd->pw_name); + printf("pw_passwd\t: %s\n", passwd->pw_passwd); + printf("pw_uid\t\t: %d\n", (int) passwd->pw_uid); + printf("pw_gid\t\t: %d\n", (int) passwd->pw_gid); + printf("pw_gecos\t: %s\n", passwd->pw_gecos); + printf("pw_dir\t\t: %s\n", passwd->pw_dir); + printf("pw_shell\t: %s\n", passwd->pw_shell); + printf + ("********************************************************************************\n"); + } + } + fprintf(stdout, "-> getpwnam()...\n"); + passwd = getpwnam("root"); + if (passwd == NULL) { + printf(">NULL<\n"); + } else { + printf("pw_name\t\t: %s\n", passwd->pw_name); + printf("pw_passwd\t: %s\n", passwd->pw_passwd); + printf("pw_uid\t\t: %d\n", (int) passwd->pw_uid); + printf("pw_gid\t\t: %d\n", (int) passwd->pw_gid); + printf("pw_gecos\t: %s\n", passwd->pw_gecos); + printf("pw_dir\t\t: %s\n", passwd->pw_dir); + printf("pw_shell\t: %s\n", passwd->pw_shell); + } + return 0; +} |