From 7b4c0fd5f4df4541a1659de04823326cd22c254e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 22 Nov 2010 17:58:14 +0100 Subject: hush: fix improper handling of newline and hash chars in few corner cases Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-misc/assignment3.right | 2 ++ shell/hush_test/hush-misc/assignment3.tests | 5 +++++ shell/hush_test/hush-parsing/comment1.right | 2 ++ shell/hush_test/hush-parsing/comment1.tests | 2 ++ shell/hush_test/hush-parsing/eol1.right | 1 + shell/hush_test/hush-parsing/eol1.tests | 18 ++++++++++++++++++ 6 files changed, 30 insertions(+) create mode 100644 shell/hush_test/hush-misc/assignment3.right create mode 100755 shell/hush_test/hush-misc/assignment3.tests create mode 100644 shell/hush_test/hush-parsing/comment1.right create mode 100755 shell/hush_test/hush-parsing/comment1.tests create mode 100644 shell/hush_test/hush-parsing/eol1.right create mode 100755 shell/hush_test/hush-parsing/eol1.tests (limited to 'shell/hush_test') diff --git a/shell/hush_test/hush-misc/assignment3.right b/shell/hush_test/hush-misc/assignment3.right new file mode 100644 index 000000000..0f02d7cbc --- /dev/null +++ b/shell/hush_test/hush-misc/assignment3.right @@ -0,0 +1,2 @@ +Done:0 +abc=123 diff --git a/shell/hush_test/hush-misc/assignment3.tests b/shell/hush_test/hush-misc/assignment3.tests new file mode 100755 index 000000000..790129be1 --- /dev/null +++ b/shell/hush_test/hush-misc/assignment3.tests @@ -0,0 +1,5 @@ +# This must be interpreted as assignments +a=1 b\ +=2 c=3 +echo Done:$? +echo abc=$a$b$c diff --git a/shell/hush_test/hush-parsing/comment1.right b/shell/hush_test/hush-parsing/comment1.right new file mode 100644 index 000000000..a102b1d4e --- /dev/null +++ b/shell/hush_test/hush-parsing/comment1.right @@ -0,0 +1,2 @@ +Nothing: +String: #should-be-echoed diff --git a/shell/hush_test/hush-parsing/comment1.tests b/shell/hush_test/hush-parsing/comment1.tests new file mode 100755 index 000000000..d268860ff --- /dev/null +++ b/shell/hush_test/hush-parsing/comment1.tests @@ -0,0 +1,2 @@ +echo Nothing: #should-not-be-echoed +echo String: ""#should-be-echoed diff --git a/shell/hush_test/hush-parsing/eol1.right b/shell/hush_test/hush-parsing/eol1.right new file mode 100644 index 000000000..31c896f62 --- /dev/null +++ b/shell/hush_test/hush-parsing/eol1.right @@ -0,0 +1 @@ +Done:0 diff --git a/shell/hush_test/hush-parsing/eol1.tests b/shell/hush_test/hush-parsing/eol1.tests new file mode 100755 index 000000000..f1b55e8b8 --- /dev/null +++ b/shell/hush_test/hush-parsing/eol1.tests @@ -0,0 +1,18 @@ +# bug was that we treated as ';' in this line: +true || echo foo | +echo BAD1 | cat + +# variation on the same theme +true || echo foo | +# comment +echo BAD2 | cat + +# variation on the same theme +true || echo foo | + +echo BAD3 | cat + +# this should error out, but currently works in hush: +#true || echo foo |; + +echo Done:$? -- cgit v1.2.3