diff options
| author | Alan Conway <aconway@apache.org> | 2013-04-03 13:55:41 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2013-04-03 13:55:41 +0000 |
| commit | 5175f766d95f3ead0dbaeb6690743b676d406759 (patch) | |
| tree | 54ce2117d3bd757fceaadf6af8ec751124e12d9b /qpid/cpp | |
| parent | bcdbac83b04e51d7d7a2c7ae736b4892f21557e2 (diff) | |
| download | qpid-python-5175f766d95f3ead0dbaeb6690743b676d406759.tar.gz | |
QPID-4697: Minor fixes to make distcheck
- add qmfengine.py to DIST.
- create directory qpid/bindings/perl if not already present.
- ssl_test: don't run python part of tests if python client not available.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1464018 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
| -rw-r--r-- | qpid/cpp/bindings/qmf/python/Makefile.am | 2 | ||||
| -rw-r--r-- | qpid/cpp/bindings/qpid/Makefile.am | 2 | ||||
| -rwxr-xr-x | qpid/cpp/src/tests/ssl_test | 99 |
3 files changed, 55 insertions, 48 deletions
diff --git a/qpid/cpp/bindings/qmf/python/Makefile.am b/qpid/cpp/bindings/qmf/python/Makefile.am index 07f3c1072b..f787d3955f 100644 --- a/qpid/cpp/bindings/qmf/python/Makefile.am +++ b/qpid/cpp/bindings/qmf/python/Makefile.am @@ -25,7 +25,7 @@ generated_file_list = \ qmfengine.cpp \ qmfengine.py -EXTRA_DIST = CMakeLists.txt python.i +EXTRA_DIST = CMakeLists.txt python.i qmfengine.py BUILT_SOURCES = $(generated_file_list) SWIG_FLAGS = -w362,401 diff --git a/qpid/cpp/bindings/qpid/Makefile.am b/qpid/cpp/bindings/qpid/Makefile.am index aace6f2d95..3ea09945f9 100644 --- a/qpid/cpp/bindings/qpid/Makefile.am +++ b/qpid/cpp/bindings/qpid/Makefile.am @@ -38,9 +38,11 @@ BUILT_SOURCES = perl/cqpid_perl.cpp SWIG_FLAGS = -w362,401 perl/cqpid_perl.cpp: $(srcdir)/perl/perl.i + mkdir -p perl $(SWIG) -perl -c++ $(SWIG_FLAGS) $(INCLUDES) $(QPID_CXXFLAGS) -I/usr/include -o perl/cqpid_perl.cpp $(srcdir)/perl/perl.i perl/Makefile: perl/cqpid_perl.cpp + mkdir -p perl cd perl; \ $(PERL) Makefile.PL PREFIX=$(prefix) ; \ cd .. diff --git a/qpid/cpp/src/tests/ssl_test b/qpid/cpp/src/tests/ssl_test index cfbd253ab8..8318798c34 100755 --- a/qpid/cpp/src/tests/ssl_test +++ b/qpid/cpp/src/tests/ssl_test @@ -101,7 +101,7 @@ COMMON_OPTS="--daemon --config $CONFIG --load-module $SSL_LIB --ssl-cert-db $CER start_brokers() { local -a ports for (( i=0; $i<$1; i++)) do - ports[$i]=$($QPIDD_EXEC --port 0 $COMMON_OPTS $2) || error "Could not start broker $i" + ports[$i]=$($QPIDD_EXEC --port 0 $COMMON_OPTS $2) || error "Could not start broker $i" done PORTS=( ${PORTS[@]} ${ports[@]} ) } @@ -194,9 +194,13 @@ MSG=`./qpid-receive -b $URL --connection-options '{transport:ssl,heartbeat:2}' - test "$MSG" = "hello again" || { echo "receive failed '$MSG' != 'hello again'"; exit 1; } ## Test using the Python client -echo "Testing Non-Authenticating with Python Client..." -URL=amqps://$TEST_HOSTNAME:$PORT -if `$top_srcdir/src/tests/ping_broker -b $URL`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi +if test -d $PYTHON_DIR; then + echo "Testing Non-Authenticating with Python Client..." + URL=amqps://$TEST_HOSTNAME:$PORT + if `$PY_PING_BROKER -b $URL`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi +else + echo "Skipping python part of ssl_test, no python dir." +fi #### Client Authentication tests @@ -253,66 +257,67 @@ if [[ !(-x $OPENSSL) ]] ; then exit 0 fi +if test -d $PYTHON_DIR; then ## verify python version > 2.5 (only 2.6+ does certificate checking) -PY_VERSION=$(python -c "import sys; print hex(sys.hexversion)") -if (( PY_VERSION < 0x02060000 )); then - echo >&2 "Detected python version < 2.6 - skipping certificate verification tests" - exit 0 -fi + PY_VERSION=$(python -c "import sys; print hex(sys.hexversion)") + if (( PY_VERSION < 0x02060000 )); then + echo >&2 "Detected python version < 2.6 - skipping certificate verification tests" + exit 0 + fi -echo "Testing Certificate validation and Authentication with the Python Client..." + echo "Testing Certificate validation and Authentication with the Python Client..." # extract the CA's certificate as a PEM file -get_ca_certs() { - $PK12UTIL -o ${TEST_CERT_DIR}/CA_pk12.out -d ${CERT_DB} -n "Test-CA" -w ${CERT_PW_FILE} -k ${CERT_PW_FILE} > /dev/null - $OPENSSL pkcs12 -in ${TEST_CERT_DIR}/CA_pk12.out -out ${CA_PEM_FILE} -nokeys -passin file:${CERT_PW_FILE} >/dev/null - $PK12UTIL -o ${TEST_CERT_DIR}/other_CA_pk12.out -d ${OTHER_CA_CERT_DB} -n "Other-Test-CA" -w ${CERT_PW_FILE} -k ${CERT_PW_FILE} > /dev/null - $OPENSSL pkcs12 -in ${TEST_CERT_DIR}/other_CA_pk12.out -out ${OTHER_CA_PEM_FILE} -nokeys -passin file:${CERT_PW_FILE} >/dev/null -} - -get_ca_certs || error "Could not extract CA certificates as PEM files" -start_ssl_broker -PORT=${PORTS[0]} -URL=amqps://$TEST_HOSTNAME:$PORT -# verify the python client can authenticate the broker using the CA -if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE}`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi -# verify the python client fails to authenticate the broker when using the other CA -if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${OTHER_CA_PEM_FILE} > /dev/null 2>&1`; then { echo " Failed"; exit 1; }; else echo " Passed"; fi -stop_brokers - -# create a certificate without matching TEST_HOSTNAME, should fail to verify - -create_certs "O=MyCo" "*.${TEST_HOSTNAME}.com" || error "Could not create server test certificate" -get_ca_certs || error "Could not extract CA certificates as PEM files" -start_ssl_broker -PORT=${PORTS[0]} -URL=amqps://$TEST_HOSTNAME:$PORT -if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE} > /dev/null 2>&1`; then { echo " Failed"; exit 1; }; else echo " Passed"; fi -# but disabling the check for the hostname should pass -if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE} --ssl-skip-hostname-check`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi -stop_brokers - -# test SubjectAltName parsing + get_ca_certs() { + $PK12UTIL -o ${TEST_CERT_DIR}/CA_pk12.out -d ${CERT_DB} -n "Test-CA" -w ${CERT_PW_FILE} -k ${CERT_PW_FILE} > /dev/null + $OPENSSL pkcs12 -in ${TEST_CERT_DIR}/CA_pk12.out -out ${CA_PEM_FILE} -nokeys -passin file:${CERT_PW_FILE} >/dev/null + $PK12UTIL -o ${TEST_CERT_DIR}/other_CA_pk12.out -d ${OTHER_CA_CERT_DB} -n "Other-Test-CA" -w ${CERT_PW_FILE} -k ${CERT_PW_FILE} > /dev/null + $OPENSSL pkcs12 -in ${TEST_CERT_DIR}/other_CA_pk12.out -out ${OTHER_CA_PEM_FILE} -nokeys -passin file:${CERT_PW_FILE} >/dev/null + } -if (( PY_VERSION >= 0x02070300 )); then - # python 2.7.3+ supports SubjectAltName extraction - # create a certificate with TEST_HOSTNAME only in SAN, should verify OK - create_certs "O=MyCo" "*.foo.com,${TEST_HOSTNAME},*xyz.com" || error "Could not create server test certificate" get_ca_certs || error "Could not extract CA certificates as PEM files" start_ssl_broker PORT=${PORTS[0]} URL=amqps://$TEST_HOSTNAME:$PORT +# verify the python client can authenticate the broker using the CA if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE}`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi +# verify the python client fails to authenticate the broker when using the other CA + if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${OTHER_CA_PEM_FILE} > /dev/null 2>&1`; then { echo " Failed"; exit 1; }; else echo " Passed"; fi stop_brokers - create_certs "O=MyCo" "*${TEST_HOSTNAME}" || error "Could not create server test certificate" +# create a certificate without matching TEST_HOSTNAME, should fail to verify + + create_certs "O=MyCo" "*.${TEST_HOSTNAME}.com" || error "Could not create server test certificate" get_ca_certs || error "Could not extract CA certificates as PEM files" start_ssl_broker PORT=${PORTS[0]} URL=amqps://$TEST_HOSTNAME:$PORT - if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE}`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi + if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE} > /dev/null 2>&1`; then { echo " Failed"; exit 1; }; else echo " Passed"; fi +# but disabling the check for the hostname should pass + if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE} --ssl-skip-hostname-check`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi stop_brokers -fi +# test SubjectAltName parsing + if (( PY_VERSION >= 0x02070300 )); then + # python 2.7.3+ supports SubjectAltName extraction + # create a certificate with TEST_HOSTNAME only in SAN, should verify OK + create_certs "O=MyCo" "*.foo.com,${TEST_HOSTNAME},*xyz.com" || error "Could not create server test certificate" + get_ca_certs || error "Could not extract CA certificates as PEM files" + start_ssl_broker + PORT=${PORTS[0]} + URL=amqps://$TEST_HOSTNAME:$PORT + if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE}`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi + stop_brokers + + create_certs "O=MyCo" "*${TEST_HOSTNAME}" || error "Could not create server test certificate" + get_ca_certs || error "Could not extract CA certificates as PEM files" + start_ssl_broker + PORT=${PORTS[0]} + URL=amqps://$TEST_HOSTNAME:$PORT + if `${PY_PING_BROKER} -b $URL --ssl-trustfile=${CA_PEM_FILE}`; then echo " Passed"; else { echo " Failed"; exit 1; }; fi + stop_brokers + fi + +fi |
