diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 6 | ||||
-rw-r--r-- | tests/Makefile.in | 97 | ||||
-rw-r--r-- | tests/tst-pam_get_item.c | 3 | ||||
-rw-r--r-- | tests/tst-pam_mkargv.c | 54 | ||||
-rw-r--r-- | tests/tst-pam_set_item.c | 3 |
5 files changed, 124 insertions, 39 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index de1594bd..dfe745da 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 Thorsten Kukuk <kukuk@suse.de> +# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> # AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \ @@ -11,9 +11,9 @@ CLEANFILES = *~ TESTS = tst-pam_start tst-pam_end tst-pam_fail_delay tst-pam_open_session \ tst-pam_close_session tst-pam_acct_mgmt tst-pam_authenticate \ tst-pam_chauthtok tst-pam_setcred tst-pam_get_item tst-pam_set_item \ - tst-pam_getenvlist tst-pam_get_user tst-pam_set_data + tst-pam_getenvlist tst-pam_get_user tst-pam_set_data \ + tst-pam_mkargv check_PROGRAMS = ${TESTS} tst-dlopen tst_dlopen_LDADD = -ldl - diff --git a/tests/Makefile.in b/tests/Makefile.in index c6c56c49..e8474c6f 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -15,7 +15,7 @@ @SET_MAKE@ # -# Copyright (c) 2006 Thorsten Kukuk <kukuk@suse.de> +# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -41,19 +41,23 @@ TESTS = tst-pam_start$(EXEEXT) tst-pam_end$(EXEEXT) \ tst-pam_authenticate$(EXEEXT) tst-pam_chauthtok$(EXEEXT) \ tst-pam_setcred$(EXEEXT) tst-pam_get_item$(EXEEXT) \ tst-pam_set_item$(EXEEXT) tst-pam_getenvlist$(EXEEXT) \ - tst-pam_get_user$(EXEEXT) tst-pam_set_data$(EXEEXT) + tst-pam_get_user$(EXEEXT) tst-pam_set_data$(EXEEXT) \ + tst-pam_mkargv$(EXEEXT) check_PROGRAMS = $(am__EXEEXT_1) tst-dlopen$(EXEEXT) subdir = tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/japhar_grep_cflags.m4 \ $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libprelude.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -66,7 +70,8 @@ am__EXEEXT_1 = tst-pam_start$(EXEEXT) tst-pam_end$(EXEEXT) \ tst-pam_authenticate$(EXEEXT) tst-pam_chauthtok$(EXEEXT) \ tst-pam_setcred$(EXEEXT) tst-pam_get_item$(EXEEXT) \ tst-pam_set_item$(EXEEXT) tst-pam_getenvlist$(EXEEXT) \ - tst-pam_get_user$(EXEEXT) tst-pam_set_data$(EXEEXT) + tst-pam_get_user$(EXEEXT) tst-pam_set_data$(EXEEXT) \ + tst-pam_mkargv$(EXEEXT) tst_dlopen_SOURCES = tst-dlopen.c tst_dlopen_OBJECTS = tst-dlopen.$(OBJEXT) tst_dlopen_DEPENDENCIES = @@ -106,6 +111,10 @@ tst_pam_getenvlist_SOURCES = tst-pam_getenvlist.c tst_pam_getenvlist_OBJECTS = tst-pam_getenvlist.$(OBJEXT) tst_pam_getenvlist_LDADD = $(LDADD) tst_pam_getenvlist_DEPENDENCIES = +tst_pam_mkargv_SOURCES = tst-pam_mkargv.c +tst_pam_mkargv_OBJECTS = tst-pam_mkargv.$(OBJEXT) +tst_pam_mkargv_LDADD = $(LDADD) +tst_pam_mkargv_DEPENDENCIES = tst_pam_open_session_SOURCES = tst-pam_open_session.c tst_pam_open_session_OBJECTS = tst-pam_open_session.$(OBJEXT) tst_pam_open_session_LDADD = $(LDADD) @@ -141,13 +150,15 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ SOURCES = tst-dlopen.c tst-pam_acct_mgmt.c tst-pam_authenticate.c \ tst-pam_chauthtok.c tst-pam_close_session.c tst-pam_end.c \ tst-pam_fail_delay.c tst-pam_get_item.c tst-pam_get_user.c \ - tst-pam_getenvlist.c tst-pam_open_session.c tst-pam_set_data.c \ - tst-pam_set_item.c tst-pam_setcred.c tst-pam_start.c + tst-pam_getenvlist.c tst-pam_mkargv.c tst-pam_open_session.c \ + tst-pam_set_data.c tst-pam_set_item.c tst-pam_setcred.c \ + tst-pam_start.c DIST_SOURCES = tst-dlopen.c tst-pam_acct_mgmt.c tst-pam_authenticate.c \ tst-pam_chauthtok.c tst-pam_close_session.c tst-pam_end.c \ tst-pam_fail_delay.c tst-pam_get_item.c tst-pam_get_user.c \ - tst-pam_getenvlist.c tst-pam_open_session.c tst-pam_set_data.c \ - tst-pam_set_item.c tst-pam_setcred.c tst-pam_start.c + tst-pam_getenvlist.c tst-pam_mkargv.c tst-pam_open_session.c \ + tst-pam_set_data.c tst-pam_set_item.c tst-pam_setcred.c \ + tst-pam_start.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -164,23 +175,19 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ FO2PDF = @FO2PDF@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ @@ -192,6 +199,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ @@ -215,6 +223,7 @@ LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ LIBS = @LIBS@ LIBSELINUX = @LIBSELINUX@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ @@ -224,15 +233,18 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ -PAM_READ_BOTH_CONFS = @PAM_READ_BOTH_CONFS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PIE_CFLAGS = @PIE_CFLAGS@ PIE_LDFLAGS = @PIE_LDFLAGS@ @@ -246,10 +258,9 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -WITH_DEBUG = @WITH_DEBUG@ -WITH_PAMLOCKING = @WITH_PAMLOCKING@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMLCATALOG = @XMLCATALOG@ XMLLINT = @XMLLINT@ XML_CATALOG_FILE = @XML_CATALOG_FILE@ @@ -261,8 +272,7 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -294,6 +304,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -308,6 +319,7 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \ @@ -324,8 +336,8 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -386,6 +398,9 @@ tst-pam_get_user$(EXEEXT): $(tst_pam_get_user_OBJECTS) $(tst_pam_get_user_DEPEND tst-pam_getenvlist$(EXEEXT): $(tst_pam_getenvlist_OBJECTS) $(tst_pam_getenvlist_DEPENDENCIES) @rm -f tst-pam_getenvlist$(EXEEXT) $(LINK) $(tst_pam_getenvlist_OBJECTS) $(tst_pam_getenvlist_LDADD) $(LIBS) +tst-pam_mkargv$(EXEEXT): $(tst_pam_mkargv_OBJECTS) $(tst_pam_mkargv_DEPENDENCIES) + @rm -f tst-pam_mkargv$(EXEEXT) + $(LINK) $(tst_pam_mkargv_OBJECTS) $(tst_pam_mkargv_LDADD) $(LIBS) tst-pam_open_session$(EXEEXT): $(tst_pam_open_session_OBJECTS) $(tst_pam_open_session_DEPENDENCIES) @rm -f tst-pam_open_session$(EXEEXT) $(LINK) $(tst_pam_open_session_OBJECTS) $(tst_pam_open_session_LDADD) $(LIBS) @@ -418,6 +433,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_get_item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_get_user.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_getenvlist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_mkargv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_open_session.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_set_data.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_set_item.Po@am__quote@ @@ -456,7 +472,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -499,7 +515,7 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \ + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ if test -n "$$list"; then \ @@ -510,7 +526,7 @@ check-TESTS: $(TESTS) if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ - *$$ws$$tst$$ws*) \ + *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ echo "XPASS: $$tst"; \ @@ -522,7 +538,7 @@ check-TESTS: $(TESTS) elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ - *$$ws$$tst$$ws*) \ + *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ echo "XFAIL: $$tst"; \ ;; \ @@ -536,23 +552,36 @@ check-TESTS: $(TESTS) echo "SKIP: $$tst"; \ fi; \ done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ - banner="All $$all tests passed"; \ + banner="$$All$$all $$tests passed"; \ else \ - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all tests failed"; \ + banner="$$failed of $$all $$tests failed"; \ else \ - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ - skipped="($$skip tests were not run)"; \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ diff --git a/tests/tst-pam_get_item.c b/tests/tst-pam_get_item.c index d88b8b29..e6c98a0f 100644 --- a/tests/tst-pam_get_item.c +++ b/tests/tst-pam_get_item.c @@ -56,7 +56,8 @@ struct mapping items[] = { {PAM_OLDAUTHTOK, "PAM_OLDAUTHTOK", PAM_BAD_ITEM}, {PAM_RUSER, "PAM_RUSER", 0}, {PAM_USER_PROMPT, "PAM_USER_PROMPT", 0}, - {PAM_FAIL_DELAY, "PAM_FAIL_DELAY", 0} + {PAM_FAIL_DELAY, "PAM_FAIL_DELAY", 0}, + {PAM_AUTHTOK_TYPE, "PAM_AUTHTOK_TYPE", 0} }; int diff --git a/tests/tst-pam_mkargv.c b/tests/tst-pam_mkargv.c new file mode 100644 index 00000000..d3e7a616 --- /dev/null +++ b/tests/tst-pam_mkargv.c @@ -0,0 +1,54 @@ +/* + Copyright (C) Thorsten Kukuk <kukuk@suse.de> 2009 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation in version 2 of the License. +*/ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <stdio.h> +#include <string.h> + +#include "pam_misc.c" + +/* Simple program to see if _pam_mkargv() would succeed. */ +int main(void) +{ + char *argvstring = "user = XENDT\\userα user=XENDT\\user1"; + const char *argvresult[] = {"user", "=", "XENDT\\userα", + "user=XENDT\\user1"}; + int myargc; + char **myargv; + int argvlen; + int explen; + int i; + + explen = (strlen(argvstring) + 1) * ((sizeof(char)) + sizeof(char *)); + argvlen = _pam_mkargv(argvstring, &myargv, &myargc); + +#if 0 + printf ("argvlen=%i, argc=%i", argvlen, myargc); + for (i = 0; i < myargc; i++) { + printf(", argv[%d]=%s", i, myargv[i]); + } + printf ("\n"); +#endif + + if (argvlen != explen) + return 1; + + if (myargc != 4) + return 1; + + for (i = 0; i < 4; i++) + { + if (strcmp (myargv[i], argvresult[i]) != 0) + return 1; + } + + return 0; +} diff --git a/tests/tst-pam_set_item.c b/tests/tst-pam_set_item.c index 069d7aff..f8f271d1 100644 --- a/tests/tst-pam_set_item.c +++ b/tests/tst-pam_set_item.c @@ -57,7 +57,8 @@ struct mapping items[] = { {PAM_OLDAUTHTOK, "PAM_OLDAUTHTOK", PAM_BAD_ITEM, "none"}, {PAM_RUSER, "PAM_RUSER", PAM_SUCCESS, "noroot"}, {PAM_USER_PROMPT, "PAM_USER_PROMPT", PAM_SUCCESS, "your name: "}, - {PAM_FAIL_DELAY, "PAM_FAIL_DELAY", PAM_SUCCESS, "4000"} + {PAM_FAIL_DELAY, "PAM_FAIL_DELAY", PAM_SUCCESS, "4000"}, + {PAM_AUTHTOK_TYPE, "PAM_AUTHTOK_TYPE", PAM_SUCCESS, "U**X"} }; int |