From e6d45ea1735380b260e895438c32338d8552e8b7 Mon Sep 17 00:00:00 2001 From: Lassi Kortela Date: Sun, 23 Jun 2019 12:16:23 +0300 Subject: [PATCH] Test our output against GNU and BSD tar --- .gitignore | 1 + test-chibi.scm | 20 ++++++++++++++++---- test-tex-chibi.scm | 15 +++++++++++++++ test.sh | 14 ++++++++++++++ 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 test-tex-chibi.scm create mode 100755 test.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..edd567f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/test*.tar diff --git a/test-chibi.scm b/test-chibi.scm index 74ff515..e6de675 100755 --- a/test-chibi.scm +++ b/test-chibi.scm @@ -3,13 +3,25 @@ (import (scheme base) (scheme file) (scheme process-context) + (scheme read) (scheme write) - (tex-parser)) + (trivial-tar-writer)) + +(define (slurp-binary-file filename) + (call-with-port + (open-binary-input-file filename) + (lambda (port) + (let loop ((whole (make-bytevector 0))) + (let ((part (read-bytevector 4096 port))) + (if (eof-object? part) + whole + (loop (bytevector-append whole part)))))))) + +(tar-write-file "hello/world.text" + (slurp-binary-file "trivial-tar-writer.scm")) (define (main arguments) - (for-each (lambda (tex-file) - (display (with-input-from-file tex-file read-tex-document)) - (newline)) + (for-each (lambda (file) (tar-write-file file (slurp-binary-file file))) (cdr arguments))) (main (command-line)) diff --git a/test-tex-chibi.scm b/test-tex-chibi.scm new file mode 100644 index 0000000..74ff515 --- /dev/null +++ b/test-tex-chibi.scm @@ -0,0 +1,15 @@ +#! /usr/bin/env chibi-scheme + +(import (scheme base) + (scheme file) + (scheme process-context) + (scheme write) + (tex-parser)) + +(define (main arguments) + (for-each (lambda (tex-file) + (display (with-input-from-file tex-file read-tex-document)) + (newline)) + (cdr arguments))) + +(main (command-line)) diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..a78be35 --- /dev/null +++ b/test.sh @@ -0,0 +1,14 @@ +#!/bin/sh +set -eux +./test-chibi.scm trivial-tar-writer.scm >test-our.tar +bsdtar -cf test-bsd.tar trivial-tar-writer.scm +gtar -cf test-gnu.tar trivial-tar-writer.scm +hexdump -C test-our.tar +echo +echo +echo +hexdump -C test-gnu.tar +echo +echo +echo +hexdump -C test-bsd.tar