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");
 }