diff options
-rw-r--r-- | scripts/test/uudecode.test | 27 | ||||
-rw-r--r-- | scripts/test/uuencode.test | 26 | ||||
-rw-r--r-- | toys/pending/uudecode.c | 1 | ||||
-rw-r--r-- | toys/pending/uuencode.c | 2 |
4 files changed, 55 insertions, 1 deletions
diff --git a/scripts/test/uudecode.test b/scripts/test/uudecode.test new file mode 100644 index 00000000..47c1bf7d --- /dev/null +++ b/scripts/test/uudecode.test @@ -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" + diff --git a/scripts/test/uuencode.test b/scripts/test/uuencode.test new file mode 100644 index 00000000..ffe26afe --- /dev/null +++ b/scripts/test/uuencode.test @@ -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" + diff --git a/toys/pending/uudecode.c b/toys/pending/uudecode.c index 71774ea2..41d9acf3 100644 --- a/toys/pending/uudecode.c +++ b/toys/pending/uudecode.c @@ -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); } diff --git a/toys/pending/uuencode.c b/toys/pending/uuencode.c index d6cc5ad2..277cefac 100644 --- a/toys/pending/uuencode.c +++ b/toys/pending/uuencode.c @@ -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"); } |