118 lines
2.1 KiB
Plaintext
118 lines
2.1 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
SUT=$(realpath $(dirname $0)/../makeself.sh)
|
||
|
|
||
|
setupTests() {
|
||
|
temp=`mktemp -d -t XXXXX`
|
||
|
cd ${temp}
|
||
|
mkdir src
|
||
|
echo "echo This is a test" > src/startup.sh
|
||
|
}
|
||
|
|
||
|
# Default behaviour is to insert the current date in the
|
||
|
# generated file.
|
||
|
testCurrentDate() {
|
||
|
setupTests
|
||
|
|
||
|
${SUT} src src.sh alabel startup.sh
|
||
|
|
||
|
# Validate
|
||
|
actual=`strings src.sh | grep packaging`
|
||
|
|
||
|
expected=`LC_ALL=C date +"%b"`
|
||
|
|
||
|
if [[ ${actual} == *${expected}* ]]
|
||
|
then
|
||
|
found=0
|
||
|
else
|
||
|
echo "Substring not found: ${expected} in ${actual}"
|
||
|
found=1
|
||
|
fi
|
||
|
assertEqual 0 ${found}
|
||
|
|
||
|
# Cleanup
|
||
|
cd -
|
||
|
rm -rf ${temp}
|
||
|
}
|
||
|
|
||
|
|
||
|
# A fixed packaging date can be inserted
|
||
|
# into the generated package. This way
|
||
|
# the package may be recreated from
|
||
|
# source and remain byte-for-bye
|
||
|
# identical.
|
||
|
testDateSet() {
|
||
|
setupTests
|
||
|
|
||
|
expected='Sat Mar 5 19:35:21 EST 2016'
|
||
|
|
||
|
# Exercise
|
||
|
${SUT} --packaging-date "${expected}" \
|
||
|
src src.sh alabel startup.sh
|
||
|
|
||
|
# Validate
|
||
|
actual=`strings src.sh | grep "Date of packaging"`
|
||
|
echo "actual="${actual}
|
||
|
if [[ ${actual} == *${expected}* ]]
|
||
|
then
|
||
|
echo date set found
|
||
|
found=0
|
||
|
else
|
||
|
echo "Substring not found: ${expected} in ${actual}"
|
||
|
found=1
|
||
|
fi
|
||
|
assertEqual 0 ${found}
|
||
|
|
||
|
# Cleanup
|
||
|
cd -
|
||
|
rm -rf ${temp}
|
||
|
}
|
||
|
|
||
|
|
||
|
# Error if --packaging-date is passed as
|
||
|
# an argument but the date is missing
|
||
|
testPackagingDateNeedsParameter() {
|
||
|
setupTests
|
||
|
|
||
|
# Exercise
|
||
|
${SUT} --packaging-date \
|
||
|
src src.sh alabel startup.sh || true
|
||
|
actual=`test -f src.sh`
|
||
|
|
||
|
# Validate
|
||
|
echo "actual="${actual}
|
||
|
assertNotEqual 0 ${actual}
|
||
|
|
||
|
# Cleanup
|
||
|
cd -
|
||
|
rm -rf ${temp}
|
||
|
}
|
||
|
|
||
|
# With the dates set we can get a byte for
|
||
|
# byte identical package.
|
||
|
testByteforbyte()
|
||
|
{
|
||
|
setupTests
|
||
|
|
||
|
date='Sat Mar 3 19:35:21 EST 2016'
|
||
|
|
||
|
# Exercise
|
||
|
${SUT} --packaging-date "${date}" --tar-extra "--mtime 20160303" \
|
||
|
src src.sh alabel startup.sh
|
||
|
mv src.sh first
|
||
|
${SUT} --packaging-date "${date}" --tar-extra "--mtime 20160303" \
|
||
|
src src.sh alabel startup.sh
|
||
|
mv src.sh second
|
||
|
|
||
|
# Validate
|
||
|
cmp first second
|
||
|
rc=$?
|
||
|
assert $rc
|
||
|
|
||
|
# Cleanup
|
||
|
cd -
|
||
|
rm -rf ${temp}
|
||
|
}
|
||
|
|
||
|
source bashunit/bashunit.bash
|