1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
#!/bin/bash
set -eu
THIS="$(readlink -f "$0")"
THISDIR="$(dirname "${THIS}")"
SRCDIR="$(dirname "${THISDIR}")"
VERSION="$(cat "${SRCDIR}/VERSION")"
is_alpine_distro=false && [[ -f "/etc/alpine-release" ]] && is_alpine_distro=true
uncompressed_size="12 KB" && [[ $is_alpine_distro == true ]] && uncompressed_size="4 KB"
################################################################################
# Take makeself options, generate a predefined archive, print --info to stdout.
#
# $@ : makeself options
haveInfo() (
cd "${SRCDIR}" || return 1
mkdir -p infotest
./makeself.sh "$@" ./infotest ./infotest.run infotest ls -lah >/dev/null 2>&1
assertEquals "$?" 0 >&2
./infotest.run --info
assertEquals "$?" 0 >&2
rm -rf infotest infotest.run
)
# Read want.info from stdin. Generate have.info using given options. Invoke
# diff want.info have.info and return its exit status
#
# $@ : makeself options
diffInfo() {
local rc=""
cd "$(mktemp -d)" || return 1
cat >want.info
haveInfo "$@" >have.info
if diff want.info have.info >&2; then
rc="$?"
else
rc="$?"
fi
rm -f have.info want.info
return "${rc}"
}
testDefault() (
cd "$(mktemp -d)" || return 1
diffInfo --packaging-date "@0" <<EOF
Identification: infotest
Target directory: infotest
Uncompressed size: $uncompressed_size
Compression: gzip
Encryption: n
Date of packaging: @0
Built with Makeself version ${VERSION}
Build command was: ./makeself.sh \\
"--packaging-date" \\
"@0" \\
"./infotest" \\
"./infotest.run" \\
"infotest" \\
"ls" \\
"-lah"
Script run after extraction:
ls -lah
infotest will be removed after extraction
EOF
assertEquals "$?" 0
)
testNocomp() (
cd "$(mktemp -d)" || return 1
diffInfo --packaging-date "@0" --nocomp <<EOF
Identification: infotest
Target directory: infotest
Uncompressed size: $uncompressed_size
Compression: none
Encryption: n
Date of packaging: @0
Built with Makeself version ${VERSION}
Build command was: ./makeself.sh \\
"--packaging-date" \\
"@0" \\
"--nocomp" \\
"./infotest" \\
"./infotest.run" \\
"infotest" \\
"ls" \\
"-lah"
Script run after extraction:
ls -lah
infotest will be removed after extraction
EOF
assertEquals "$?" 0
)
testNotemp() (
cd "$(mktemp -d)" || return 1
diffInfo --packaging-date "@0" --notemp <<EOF
Identification: infotest
Target directory: infotest
Uncompressed size: $uncompressed_size
Compression: gzip
Encryption: n
Date of packaging: @0
Built with Makeself version ${VERSION}
Build command was: ./makeself.sh \\
"--packaging-date" \\
"@0" \\
"--notemp" \\
"./infotest" \\
"./infotest.run" \\
"infotest" \\
"ls" \\
"-lah"
Script run after extraction:
ls -lah
directory infotest is permanent
EOF
assertEquals "$?" 0
)
################################################################################
# Load and run shUnit2.
source "./shunit2/shunit2"
|