diff --git a/.travis.yml b/.travis.yml index ba931a1..8deedd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,7 @@ language: c +os: + - linux + - osx compiler: - gcc - clang @@ -7,12 +10,9 @@ env: - CONFIGURE_ARGS="--without-ldap" EXTRA="libykpers-1-dev" - CONFIGURE_ARGS="--without-cr" EXTRA="libldap2-dev libnet-ldap-server-perl" - CONFIGURE_ARGS="--without-ldap --without-cr" -before_install: - - sudo add-apt-repository -y ppa:yubico/stable - - sudo apt-get update -qq || true - - sudo apt-get install -qq -y --no-install-recommends libykclient-dev libpam0g-dev libyubikey-dev asciidoc docbook-xml xsltproc libxml2-utils $EXTRA script: tests/aux/build-and-test.sh matrix: include: - compiler: gcc + os: linux env: COVERAGE="--enable-coverage" EXTRA="libldap2-dev libykpers-1-dev libnet-ldap-server-perl lcov" diff --git a/tests/aux/build-and-test.sh b/tests/aux/build-and-test.sh index 63739fb..0b8f116 100755 --- a/tests/aux/build-and-test.sh +++ b/tests/aux/build-and-test.sh @@ -5,6 +5,20 @@ set -x autoreconf -i +if [ "x$TRAVIS_OS_NAME" != "xosx" ]; then + sudo add-apt-repository -y ppa:yubico/stable + sudo apt-get update -qq || true + sudo apt-get install -qq -y --no-install-recommends libykclient-dev libpam0g-dev libyubikey-dev asciidoc docbook-xml xsltproc libxml2-utils $EXTRA +else + brew install pkg-config + brew install libtool + brew install asciidoc + brew install libyubikey + brew install ykclient + brew install ykpers + cpanp install Net::LDAP::Server +fi + ./configure $CONFIGURE_ARGS $COVERAGE make check if [ "x$COVERAGE" != "x" ]; then diff --git a/tests/pam_test.c b/tests/pam_test.c index 5f4e0c1..7e5459d 100644 --- a/tests/pam_test.c +++ b/tests/pam_test.c @@ -38,7 +38,14 @@ #include #include +#ifdef HAVE_PAM_MODUTIL_DROP_PRIV #include +#else +#include +struct pam_modutil_privs { + int noop; +}; +#endif #define YKVAL_PORT1 "17502" #define YKVAL_PORT2 "30559" @@ -83,7 +90,11 @@ static const struct data *test_get_data(void *id) { return &_data[(long)id]; } +#ifdef OPENPAM +const char * pam_strerror(const pam_handle_t *pamh, int errnum) { +#else const char * pam_strerror(pam_handle_t *pamh, int errnum) { +#endif fprintf(stderr, "in pam_strerror()\n"); return "error"; } @@ -94,7 +105,16 @@ int pam_set_data(pam_handle_t *pamh, const char *module_data_name, void *data, return PAM_SUCCESS; } +int pam_get_data(const pam_handle_t *pamh, const char *module_data_name, const void **data) { + fprintf(stderr, "in pam_get_data() %s\n", module_data_name); + return PAM_SUCCESS; +} + +#ifdef OPENPAM +int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) { +#else int pam_get_user(const pam_handle_t *pamh, const char **user, const char *prompt) { +#endif fprintf(stderr, "in pam_get_user()\n"); *user = test_get_data((void*)pamh)->user; return PAM_SUCCESS;