1#!/bin/sh 2 3# unit test for uuencode to test functionality. 4# Copyright 2006 by Erik Hovland <erik@hovland.org> 5# Licensed under GPLv2, see file LICENSE in this source tree. 6 7# AUDIT: Unit tests for uuencode 8 9. ./testing.sh 10 11# testing "test name" "command(s)" "expected result" "file input" "stdin" 12# file input will be file called "input" 13# test can create a file "actual" instead of writing to stdout 14 15# Test setup of standard input 16umask 0 17testing "uuencode sets standard input mode correctly" \ 18 "uuencode foo </dev/null | head -n 1 | grep -q 666 && echo yes" "yes\n" "" "" 19umask 022 20 21testing "uuencode correct encoding" "uuencode bb_uuenc_test.out" \ 22"begin 644 bb_uuenc_test.out\nM5&AE(&9A<W0@9W)E>2!F;W@@:G5M<&5D(&]V97(@=&AE(&QA>GD@8G)O=VX@\n%9&]G+@H\`\n\`\nend\n" \ 23 "" "The fast grey fox jumped over the lazy brown dog.\n" 24testing "uuencode correct base64 encoding" "uuencode -m bb_uuenc_test.out" \ 25"begin-base64 644 bb_uuenc_test.out\nVGhlIGZhc3QgZ3JleSBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgYnJvd24g\nZG9nLgo=\n====\n" \ 26 "" "The fast grey fox jumped over the lazy brown dog.\n" 27 28testing "uuencode empty file" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 29'begin 644 FILE 30` 31end 32' "" "" 33testing "uuencode -m empty file" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 34'begin-base64 644 FILE 35==== 36' "" "" 37 38testing "uuencode file 'A'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 39'begin 644 FILE 40!00`` 41` 42end 43A' "" "A" 44testing "uuencode -m file 'A'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 45'begin-base64 644 FILE 46QQ== 47==== 48A' "" "A" 49 50testing "uuencode file 'AB'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 51'begin 644 FILE 52"04(` 53` 54end 55AB' "" "AB" 56testing "uuencode -m file 'AB'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 57'begin-base64 644 FILE 58QUI= 59==== 60AB' "" "AB" 61 62testing "uuencode file 'ABC'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 63'begin 644 FILE 64#04)# 65` 66end 67ABC' "" "ABC" 68testing "uuencode -m file 'ABC'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 69'begin-base64 644 FILE 70QUJD 71==== 72ABC' "" "ABC" 73 74testing "uuencode file 'ABCD'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 75'begin 644 FILE 76$04)#1``` 77` 78end 79ABCD' "" "ABCD" 80testing "uuencode -m file 'ABCD'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 81'begin-base64 644 FILE 82QUJDRA== 83==== 84ABCD' "" "ABCD" 85 86testing "uuencode file 'ABCDE'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 87'begin 644 FILE 88%04)#1$4` 89` 90end 91ABCDE' "" "ABCDE" 92testing "uuencode -m file 'ABCDE'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 93'begin-base64 644 FILE 94QUJDREU= 95==== 96ABCDE' "" "ABCDE" 97 98testing "uuencode file 'ABCDEF'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 99'begin 644 FILE 100&04)#1$5& 101` 102end 103ABCDEF' "" "ABCDEF" 104testing "uuencode -m file 'ABCDEF'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 105'begin-base64 644 FILE 106QUJDREVG 107==== 108ABCDEF' "" "ABCDEF" 109 110testing "uuencode file 'A<NUL><0xff>Z'" 'r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 111'begin 644 FILE 112$00#_6@`` 113` 114end 115A\x0\xffZ' "" "A\x0\xffZ" 116testing "uuencode -m file 'A<NUL><0xff>Z'" 'r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;' \ 117'begin-base64 644 FILE 118QQD/Wg== 119==== 120A\x0\xffZ' "" "A\x0\xffZ" 121 122exit $FAILCOUNT 123