Mercurial > hg > toybox
changeset 828:1fdaba9a7124
uuencode/decode tests and tweaks from Erich Plondke.
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 22 Mar 2013 00:26:12 -0500 |
parents | 98c396477e0b |
children | 792d510b8fef |
files | scripts/test/uudecode.test scripts/test/uuencode.test toys/pending/uudecode.c toys/pending/uuencode.c |
diffstat | 4 files changed, 55 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/test/uudecode.test Fri Mar 22 00:26:12 2013 -0500 @@ -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" +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/test/uuencode.test Fri Mar 22 00:26:12 2013 -0500 @@ -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" +
--- a/toys/pending/uudecode.c Thu Mar 21 23:23:49 2013 -0500 +++ b/toys/pending/uudecode.c Fri Mar 22 00:26:12 2013 -0500 @@ -171,4 +171,5 @@ ofd = xcreate(out_filename,O_WRONLY|O_CREAT|O_TRUNC,mode); free(line); decoder(ifd,ofd); + if (TOYBOX_CLEANUP) close(ofd); }
--- a/toys/pending/uuencode.c Thu Mar 21 23:23:49 2013 -0500 +++ b/toys/pending/uuencode.c Fri Mar 22 00:26:12 2013 -0500 @@ -57,7 +57,7 @@ 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"); }