uuencode/decode tests and tweaks from Erich Plondke.

This commit is contained in:
Rob Landley 2013-03-22 00:26:12 -05:00
parent 5cb3e2683b
commit 64427a889b
4 changed files with 55 additions and 1 deletions

View File

@ -0,0 +1,27 @@
#!/bin/bash
[ -f testing.sh ] && . testing.sh
#testing "name" "command" "result" "infile" "stdin"
testing "uudecode uu empty file" "../../toybox uudecode -o /dev/stdout" "" "" \
"begin 744 test\n\`\nend\n"
testing "uudecode uu 1-char" "../../toybox uudecode -o /dev/stdout" "a" "" \
"begin 744 test\n!80 \n\`\nend\n"
testing "uudecode uu 2-char" "../../toybox uudecode -o /dev/stdout" "ab" "" \
"begin 744 test\n\"86( \n\`\nend\n"
testing "uudecode uu 3-char" "../../toybox uudecode -o /dev/stdout" "abc" "" \
"begin 744 test\n#86)C\n\`\nend\n"
testing "uudecode b64 empty file" "../../toybox uudecode -o /dev/stdout" "" "" \
"begin-base64 744 test\n====\n"
testing "uudecode b64 1-char" "../../toybox uudecode -o /dev/stdout" "a" "" \
"begin-base64 744 test\nYQ==\n====\n"
testing "uudecode b64 2-char" "../../toybox uudecode -o /dev/stdout" "ab" "" \
"begin-base64 744 test\nYWI=\n====\n"
testing "uudecode b64 3-char" "../../toybox uudecode -o /dev/stdout" "abc" "" \
"begin-base64 744 test\nYWJj\n====\n"
testing "uudecode filename" "../../toybox uudecode && echo -ne 'abc' | cmp uudecode-fn-test /dev/stdin && echo -ne yes && rm uudecode-fn-test" \
"yes" "" "begin-base64 744 uudecode-fn-test\nYWJj\n====\n"

View File

@ -0,0 +1,26 @@
#!/bin/bash
[ -f testing.sh ] && . testing.sh
#testing "name" "command" "result" "infile" "stdin"
testing "uuencode not enough args [fail]" "uuencode 2>/dev/null" "" "" ""
testing "uuencode uu empty file" "uuencode test" \
"begin 744 test\n\`\nend\n" "" ""
testing "uuencode uu 1-char" "uuencode test" \
"begin 744 test\n!80 \n\`\nend\n" "" "a"
testing "uuencode uu 2-char" "uuencode test" \
"begin 744 test\n\"86( \n\`\nend\n" "" "ab"
testing "uuencode uu 3-char" "uuencode test" \
"begin 744 test\n#86)C\n\`\nend\n" "" "abc"
testing "uuencode b64 empty file" "uuencode -m test" \
"begin-base64 744 test\n====\n" "" ""
testing "uuencode b64 1-char" "uuencode -m test" \
"begin-base64 744 test\nYQ==\n====\n" "" "a"
testing "uuencode b64 2-char" "uuencode -m test" \
"begin-base64 744 test\nYWI=\n====\n" "" "ab"
testing "uuencode b64 3-char" "uuencode -m test" \
"begin-base64 744 test\nYWJj\n====\n" "" "abc"

View File

@ -171,4 +171,5 @@ void uudecode_main(void)
ofd = xcreate(out_filename,O_WRONLY|O_CREAT|O_TRUNC,mode);
free(line);
decoder(ifd,ofd);
if (TOYBOX_CLEANUP) close(ofd);
}

View File

@ -57,7 +57,7 @@ static void uuencode_b64(int fd, const char *name)
xprintf("begin-base64 744 %s\n",name);
do {
len = xread(fd,inbuf,48);
uuencode_b64_line(outbuf,inbuf,len);
if (len > 0) uuencode_b64_line(outbuf,inbuf,len);
} while (len > 0);
xprintf("====\n");
}