1#!/bin/sh 2# 3# aegis - project change supervisor 4# Copyright (C) 2002, 2006-2008 Peter Miller 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 3 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see 18# <http://www.gnu.org/licenses/>. 19# 20 21unset AEGIS_PROJECT 22unset AEGIS_CHANGE 23unset AEGIS_PATH 24unset AEGIS 25umask 022 26 27LINES=24 28export LINES 29COLS=80 30export COLS 31 32USER=${USER:-${LOGNAME:-`whoami`}} 33 34work=${AEGIS_TMP:-/tmp}/$$ 35PAGER=cat 36export PAGER 37AEGIS_FLAGS="delete_file_preference = no_keep; \ 38 lock_wait_preference = always; \ 39 diff_preference = automatic_merge; \ 40 pager_preference = never; \ 41 persevere_preference = all; \ 42 log_file_preference = never;" 43export AEGIS_FLAGS 44AEGIS_THROTTLE=-1 45export AEGIS_THROTTLE 46 47here=`pwd` 48if test $? -ne 0 ; then exit 2; fi 49 50bin=$here/${1-.}/bin 51 52pass() 53{ 54 set +x 55 echo PASSED 1>&2 56 cd $here 57 find $work -type d -user $USER -exec chmod u+w {} \; 58 rm -rf $work 59 exit 0 60} 61fail() 62{ 63 set +x 64 echo 'FAILED test of the aesub (un)split functionality' 1>&2 65 cd $here 66 find $work -type d -user $USER -exec chmod u+w {} \; 67 rm -rf $work 68 exit 1 69} 70no_result() 71{ 72 set +x 73 echo 'NO RESULT when testing the aesub (un)split functionality' 1>&2 74 cd $here 75 find $work -type d -user $USER -exec chmod u+w {} \; 76 rm -rf $work 77 exit 2 78} 79trap \"no_result\" 1 2 3 15 80 81mkdir $work $work/lib 82if test $? -ne 0 ; then no_result; fi 83chmod 777 $work/lib 84if test $? -ne 0 ; then no_result; fi 85cd $work 86if test $? -ne 0 ; then no_result; fi 87 88# 89# use the built-in error messages 90# 91AEGIS_MESSAGE_LIBRARY=$work/no-such-dir 92export AEGIS_MESSAGE_LIBRARY 93unset LANG 94unset LANGUAGE 95 96# 97# Need a project so that aesub works 98# 99$bin/aegis -newproj example -version - -lib $work/lib -dir $work/proj 100if test $? -ne 0 ; then no_result; fi 101 102AEGIS_PROJECT=example 103export AEGIS_PROJECT 104AEGIS_PATH=$work/lib 105export AEGIS_PATH 106 107cat > ca << 'fubar' 108description = "short"; 109brief_description = "short"; 110cause = internal_enhancement; 111fubar 112if test $? -ne 0 ; then no_result; fi 113 114$bin/aegis -newchan 42 -p example -f ca 115if test $? -ne 0 ; then no_result; fi 116 117AEGIS_CHANGE=42 118export AEGIS_CHANGE 119 120# 121# test the aesub (un)split functionality 122# 123cat > test.ok << 'fubar' 124a+b+c+d+e+f 125fubar 126if test $? -ne 0 ; then no_result; fi 127 128$bin/aesub '${unsplit + ${split : a:b:c d:e f}}' > test.out 129if test $? -ne 0 ; then fail; fi 130 131diff test.ok test.out 132if test $? -ne 0 ; then fail; fi 133 134# 135# Only definite negatives are possible. 136# The functionality exercised by this test appears to work, 137# no other guarantees are made. 138# 139pass 140