From fe97a9451e6e9f08f893c27dac1cf16a9f75eaa9 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Wed, 13 Dec 2017 20:08:16 +0100 Subject: add tests --- Makefile | 3 +++ t/0.t | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ t/1.t | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ t/s.t | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 220 insertions(+) create mode 100755 t/0.t create mode 100755 t/1.t create mode 100755 t/s.t diff --git a/Makefile b/Makefile index ec1a17c..a259481 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,9 @@ README: rnl.1 clean: FRC rm -f $(ALL) +check: FRC all + prove -v + install: FRC all mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 install -m0755 $(ALL) $(DESTDIR)$(BINDIR) diff --git a/t/0.t b/t/0.t new file mode 100755 index 0000000..c6e999c --- /dev/null +++ b/t/0.t @@ -0,0 +1,63 @@ +#!/bin/sh + +export "PATH=.:$PATH" + +printf '1..11\n' +printf '# error handling\n' + +tap3 '-0 on a pipe, no newlines' <<'EOF' +printf foo | rnl -0 | wc -c +>>>/3/ +EOF + +tap3 '-0 on a pipe, one newline' <<'EOF' +printf 'foo\n' | rnl -0 | wc -c +>>>/3/ +EOF + +tap3 '-0 on a pipe, two newlines' <<'EOF' +printf 'foo\nbar\n\n' | rnl -0 | wc -c +>>>/7/ +EOF + +tap3 '-0 on a pipe, three newlines' <<'EOF' +printf 'foo\n\nbar\n\n\n' | rnl -0 | wc -c +>>>/8/ +EOF + +tap3 '-0 on a pipe, 9999 newlines' <<'EOF' +( printf 'foo'; yes '' | sed 10000q ) | rnl -0 | wc -c +>>>/3/ +EOF + + + +tap3 '-0 on a file, no newlines' <<'EOF' +printf foo > TMP; rnl -0 TMP; wc -c >>/3/ +EOF + +tap3 '-0 on a file, one newline' <<'EOF' +printf 'foo\n' > TMP; rnl -0 TMP; wc -c >>/3/ +EOF + +tap3 '-0 on a file, two newlines' <<'EOF' +printf 'foo\nbar\n\n' > TMP; rnl -0 TMP; wc -c >>/7/ +EOF + +tap3 '-0 on a file, three newlines' <<'EOF' +printf 'foo\n\nbar\n\n\n' > TMP; rnl -0 TMP; wc -c >>/8/ +EOF + +tap3 '-0 on a file, 9999 newlines' <<'EOF' +( printf 'foo'; yes '' | sed 10000q ) > TMP; rnl -0 TMP; wc -c >>/3/ +EOF + +tap3 '-0 on a biggish file, 9999 newlines' <<'EOF' +( yes 'foo' | sed 10000q; yes '' | sed 10000q ) > TMP; rnl -0 TMP; wc -c >>/39999/ +EOF diff --git a/t/1.t b/t/1.t new file mode 100755 index 0000000..34611af --- /dev/null +++ b/t/1.t @@ -0,0 +1,76 @@ +#!/bin/sh + +export "PATH=.:$PATH" + +printf '1..11\n' +printf '# error handling\n' + +tap3 '-1 on a pipe, no newlines' <<'EOF' +printf foo | rnl -1 +>>>/foo/ +EOF + +tap3 '-1 on a pipe, one newline' <<'EOF' +printf 'foo\n' | rnl -1 | wc -c +>>>/3/ +EOF + +tap3 '-1 on a pipe, two newlines' <<'EOF' +printf 'foo\nbar\n\n' | rnl -1 +>>> +foo +bar +EOF + +tap3 '-1 on a pipe, three newlines' <<'EOF' +printf 'foo\n\nbar\n\n\n' | rnl -1 +>>> +foo + +bar + +EOF + +tap3 '-1 on a pipe, 9999 newlines' <<'EOF' +( printf 'foo'; yes '' | sed 10000q ) | rnl -1 | wc -l +>>>/9999/ +EOF + + + +tap3 '-1 on a file, no newlines' <<'EOF' +printf foo > TMP; rnl -1 TMP; cat TMP; rm TMP +>>>/foo/ +EOF + +tap3 '-1 on a file, one newline' <<'EOF' +printf 'foo\n' > TMP; rnl -1 TMP; wc -c TMP; rm TMP +>>>/3/ +EOF + +tap3 '-1 on a file, two newlines' <<'EOF' +printf 'foo\nbar\n\n' > TMP; rnl -1 TMP; cat TMP; rm TMP +>>> +foo +bar +EOF + +tap3 '-1 on a file, three newlines' <<'EOF' +printf 'foo\n\nbar\n\n\n' > TMP; rnl -1 TMP; cat TMP; rm TMP +>>> +foo + +bar + +EOF + +tap3 '-1 on a file, 9999 newlines' <<'EOF' +( printf 'foo'; yes '' | sed 10000q ) > TMP; rnl -1 TMP; wc -l TMP; rm TMP +>>>/9999/ +EOF + + +tap3 '-1 on a biggish file, 9999 newlines' <<'EOF' +( yes 'foo' | sed 10000q; yes '' | sed 10000q ) > TMP; rnl -1 TMP; wc -l < TMP; rm TMP +>>>/19999/ +EOF diff --git a/t/s.t b/t/s.t new file mode 100755 index 0000000..4017647 --- /dev/null +++ b/t/s.t @@ -0,0 +1,78 @@ +#!/bin/sh + +export "PATH=.:$PATH" + +printf '1..11\n' +printf '# error handling\n' + +tap3 '-s on a pipe, no newlines' <<'EOF' +printf foo | rnl +>>>/foo/ +EOF + +tap3 '-s on a pipe, one newline' <<'EOF' +printf 'foo\n' | rnl +>>> +foo +EOF + +tap3 '-s on a pipe, two newlines' <<'EOF' +printf 'foo\nbar\n\n' | rnl +>>> +foo +bar +EOF + +tap3 '-s on a pipe, three newlines' <<'EOF' +printf 'foo\n\nbar\n\n\n' | rnl +>>> +foo + +bar +EOF + +tap3 '-s on a pipe, 9999 newlines' <<'EOF' +( printf 'foo'; yes '' | sed 10000q ) | rnl +>>> +foo +EOF + + + +tap3 '-s on a file, no newlines' <<'EOF' +printf foo > TMP; rnl TMP; cat TMP; rm TMP +>>>/foo/ +EOF + +tap3 '-s on a file, one newline' <<'EOF' +printf 'foo\n' > TMP; rnl TMP; cat TMP; rm TMP +>>> +foo +EOF + +tap3 '-s on a file, two newlines' <<'EOF' +printf 'foo\nbar\n\n' > TMP; rnl TMP; cat TMP; rm TMP +>>> +foo +bar +EOF + +tap3 '-s on a file, three newlines' <<'EOF' +printf 'foo\n\nbar\n\n\n' > TMP; rnl TMP; cat TMP; rm TMP +>>> +foo + +bar +EOF + +tap3 '-s on a file, 9999 newlines' <<'EOF' +( printf 'foo'; yes '' | sed 10000q ) > TMP; rnl TMP; cat TMP; rm TMP +>>> +foo +EOF + + +tap3 '-s on a biggish file, 9999 newlines' <<'EOF' +( yes 'foo' | sed 10000q; yes '' | sed 10000q ) > TMP; rnl TMP; wc -l < TMP; rm TMP +>>>/10000/ +EOF -- cgit 1.4.1