1178825Sdfr#!/bin/sh 2178825Sdfr# 3178825Sdfr# Copyright (c) 2006 - 2007 Kungliga Tekniska H�gskolan 4178825Sdfr# (Royal Institute of Technology, Stockholm, Sweden). 5178825Sdfr# All rights reserved. 6178825Sdfr# 7178825Sdfr# Redistribution and use in source and binary forms, with or without 8178825Sdfr# modification, are permitted provided that the following conditions 9178825Sdfr# are met: 10178825Sdfr# 11178825Sdfr# 1. Redistributions of source code must retain the above copyright 12178825Sdfr# notice, this list of conditions and the following disclaimer. 13178825Sdfr# 14178825Sdfr# 2. Redistributions in binary form must reproduce the above copyright 15178825Sdfr# notice, this list of conditions and the following disclaimer in the 16178825Sdfr# documentation and/or other materials provided with the distribution. 17178825Sdfr# 18178825Sdfr# 3. Neither the name of the Institute nor the names of its contributors 19178825Sdfr# may be used to endorse or promote products derived from this software 20178825Sdfr# without specific prior written permission. 21178825Sdfr# 22178825Sdfr# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 23178825Sdfr# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24178825Sdfr# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25178825Sdfr# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 26178825Sdfr# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27178825Sdfr# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28178825Sdfr# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29178825Sdfr# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30178825Sdfr# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31178825Sdfr# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32178825Sdfr# SUCH DAMAGE. 33178825Sdfr# 34178825Sdfr# $Id: check-uu.in 21855 2007-08-08 06:59:09Z lha $ 35178825Sdfr# 36178825Sdfr 37178825Sdfrsrcdir="@srcdir@" 38178825Sdfrobjdir="@objdir@" 39178825SdfrEGREP="@EGREP@" 40178825Sdfr 41178825Sdfrtestfailed="echo test failed; cat messages.log; exit 1" 42178825Sdfr 43178825Sdfr# If there is no useful db support compile in, disable test 44178825Sdfr../db/have-db || exit 77 45178825Sdfr 46178825SdfrR=TEST.H5L.SE 47178825Sdfr 48178825Sdfruuspid= 49178825Sdfr 50178825Sdfrport=@port@ 51178825Sdfr 52178825Sdfrkadmin="${TESTS_ENVIRONMENT} ../../kadmin/kadmin -l -r $R" 53178825Sdfrkdc="${TESTS_ENVIRONMENT} ../../kdc/kdc --addresses=localhost -P $port" 54178825Sdfr 55178825Sdfrcache1="FILE:${objdir}/cache1.krb5" 56178825Sdfrcache2="FILE:${objdir}/cache2.krb5" 57178825Sdfr 58178825Sdfrkinit1="${TESTS_ENVIRONMENT} ../../kuser/kinit -c $cache1 --no-afslog" 59178825Sdfrkinit2="${TESTS_ENVIRONMENT} ../../kuser/kinit -c $cache2 --no-afslog" 60178825Sdfrkdestroy1="${TESTS_ENVIRONMENT} ../../kuser/kdestroy -c $cache1 --no-unlog" 61178825Sdfrkdestroy2="${TESTS_ENVIRONMENT} ../../kuser/kdestroy -c $cache2 --no-unlog" 62178825Sdfruu_server="${TESTS_ENVIRONMENT} ../../appl/test/uu_server" 63178825Sdfruu_client="${TESTS_ENVIRONMENT} ../../appl/test/uu_client" 64178825Sdfr 65178825Sdfr 66178825SdfrKRB5_CONFIG="${objdir}/krb5.conf" 67178825Sdfrexport KRB5_CONFIG 68178825Sdfr 69178825Sdfrrm -f current-db* 70178825Sdfrrm -f out-* 71178825Sdfrrm -f mkey.file* 72178825Sdfr 73178825Sdfr> messages.log 74178825Sdfr 75178825Sdfrecho Creating database 76178825Sdfr${kadmin} \ 77178825Sdfr init \ 78178825Sdfr --realm-max-ticket-life=1day \ 79178825Sdfr --realm-max-renewable-life=1month \ 80178825Sdfr ${R} || exit 1 81178825Sdfr 82178825Sdfr${kadmin} add -p foo --use-defaults user1@${R} || exit 1 83178825Sdfr${kadmin} add -p foo --use-defaults user2@${R} || exit 1 84178825Sdfr 85178825Sdfrecho "Doing database check" 86178825Sdfr${kadmin} check ${R} || exit 1 87178825Sdfr 88178825Sdfrecho foo > ${objdir}/foopassword 89178825Sdfr 90178825Sdfrecho Starting kdc 91178825Sdfr${kdc} & 92178825Sdfrkdcpid=$! 93178825Sdfr 94178825Sdfrsh ${srcdir}/wait-kdc.sh 95178825Sdfrif [ "$?" != 0 ] ; then 96178825Sdfr kill ${kdcpid} 97178825Sdfr exit 1 98178825Sdfrfi 99178825Sdfr 100178825Sdfrtrap "kill ${kdcpid} ${uuspid}; echo signal killing kdc; exit 1;" EXIT 101178825Sdfr 102178825Sdfrec=0 103178825Sdfr 104178825Sdfrecho "Getting client initial tickets user1"; > messages.log 105178825Sdfr${kinit1} --password-file=${objdir}/foopassword user1@$R || \ 106178825Sdfr { ec=1 ; eval "${testfailed}"; } 107178825Sdfr 108178825Sdfrecho "Getting client initial tickets user2"; > messages.log 109178825Sdfr${kinit2} --password-file=${objdir}/foopassword user2@$R || \ 110178825Sdfr { ec=1 ; eval "${testfailed}"; } 111178825Sdfr 112178825Sdfr 113178825Sdfrecho "starting uu server (using user1)" 114178825SdfrKRB5CCNAME=$cache1 ${uu_server} > uuserver.log & 115178825Sdfruuspid=$! 116178825Sdfrsleep 5 117178825Sdfr 118178825Sdfrecho "trying to contact server with client (using user2)" 119178825SdfrKRB5CCNAME=$cache2 ${uu_client} localhost > messages.log 2>&1 || \ 120178825Sdfr { ec=1; eval "${testfailed}"; } 121178825Sdfr 122178825Sdfrsleep 5 123178825Sdfr 124178825Sdfrecho "checking if server got the right message" 125178825Sdfrcmp uuserver.log ${srcdir}/uuserver.txt || \ 126178825Sdfr { ec=1; eval "${testfailed}"; } 127178825Sdfr 128178825Sdfruuspid="" 129178825Sdfr 130178825Sdfr${kdestroy1} 131178825Sdfr${kdestroy2} 132178825Sdfr 133178825Sdfrecho "killing kdc uu_server (${kdcpid} ${uuspid})" 134178825Sdfrkill $kdcpid $uuspid || exit 1 135178825Sdfr 136178825Sdfrtrap "" EXIT 137178825Sdfr 138178825Sdfrexit $ec 139