| #!/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" |