| #!/bin/bash |
| set -eu |
| THIS="$(readlink -f "$0")" |
| THISDIR="$(dirname "${THIS}")" |
| SUT="$(dirname "${THISDIR}")/makeself.sh" |
| |
| testWhiteSpaceLicense() { |
| # for each license file: its canonical path is identical to its content |
| local license_dir="$(mktemp -dt license_dir.XXXXXX)" |
| ( |
| cd "${license_dir}" |
| cat >"$(printf "_\x09_character_tabulation.txt")" <<EOF |
| $(printf "_\x09_character_tabulation.txt") |
| EOF |
| cat >"$(printf "_\x0b_line_tabulation.txt")" <<EOF |
| $(printf "_\x0b_line_tabulation.txt") |
| EOF |
| cat >"$(printf "_\x0c_form_feed.txt")"<<EOF |
| $(printf "_\x0c_form_feed.txt") |
| EOF |
| cat >"$(printf "_\x0d_carriage_return.txt")"<<EOF |
| $(printf "_\x0d_carriage_return.txt") |
| EOF |
| cat >"$(printf "_\x20_space.txt")"<<EOF |
| $(printf "_\x20_space.txt") |
| EOF |
| ) |
| |
| # The extraction progress diagnostics are buggy on empty archives, so give |
| # it something to extract |
| local archive_dir="$(mktemp -dt archive_dir.XXXXXX)" |
| ( |
| cd "${archive_dir}" |
| touch foo bar qux |
| ) |
| |
| local file_name="$(mktemp -t file_name.XXXXXX)" |
| local label="" |
| local license_text="" |
| find "${license_dir}" -type f | while read license_file; do |
| "${SUT}" \ |
| --license "${license_file}" \ |
| "${archive_dir}" \ |
| "${file_name}" \ |
| "Label" \ |
| ls -lah |
| assertEquals "$?" 0 |
| |
| # Assumes the license text is the first line of output |
| license_text="$("${file_name}" --accept --nox11 | head -n1)" |
| |
| # This doesn't work for character tabulation... |
| #assertEquals "${license_text}" "${license_file}" |
| |
| # ...so do this instead: |
| assertEquals \ |
| "$(cat "${license_file}" | md5sum | cut -d' ' -f1)" \ |
| "$(echo "${license_text}" | md5sum | cut -d' ' -f1)" |
| done |
| rm -rf "${license_dir}" "${archive_dir}" "${file_name}" |
| } |
| |
| # Load and run shUnit2. |
| source "./shunit2/shunit2" |