summaryrefslogtreecommitdiff
path: root/shell/hush_test/hush-parsing
diff options
context:
space:
mode:
authorDenis Vlasenko2008-06-14 11:00:17 +0000
committerDenis Vlasenko2008-06-14 11:00:17 +0000
commita84420062a1e7a6e149b7d1ca77e1a787e55d45b (patch)
treedaf1c7d301155bab1982f591a76534b413b80653 /shell/hush_test/hush-parsing
parent6108dc4df6195ca88d26aea31c6f62dc9ad13c63 (diff)
downloadbusybox-a84420062a1e7a6e149b7d1ca77e1a787e55d45b.zip
busybox-a84420062a1e7a6e149b7d1ca77e1a787e55d45b.tar.gz
hush: support "! cmd | cmd" negation
function old new delta done_word 749 791 +42 run_list 1821 1859 +38 checkjobs 334 351 +17 done_pipe 61 74 +13 static.reserved_list 132 144 +12 initialize_context 53 45 -8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 5/1 up/down: 122/-8) Total: 114 bytes
Diffstat (limited to 'shell/hush_test/hush-parsing')
-rw-r--r--shell/hush_test/hush-parsing/negate.right35
-rwxr-xr-xshell/hush_test/hush-parsing/negate.tests16
2 files changed, 51 insertions, 0 deletions
diff --git a/shell/hush_test/hush-parsing/negate.right b/shell/hush_test/hush-parsing/negate.right
new file mode 100644
index 0000000..0116601
--- /dev/null
+++ b/shell/hush_test/hush-parsing/negate.right
@@ -0,0 +1,35 @@
+! printing !
+0
+1
+1
+0
+0
+0
+!
+a
+b
+c
+! 1
+a 1
+b 1
+c 1
+! 1
+a 1
+b 1
+c 1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
diff --git a/shell/hush_test/hush-parsing/negate.tests b/shell/hush_test/hush-parsing/negate.tests
new file mode 100755
index 0000000..72e731f
--- /dev/null
+++ b/shell/hush_test/hush-parsing/negate.tests
@@ -0,0 +1,16 @@
+echo ! printing !
+! false
+echo $?
+! true
+echo $?
+if ! false; then false; echo $?; fi
+echo $?
+if ! false; then ! false; echo $?; fi
+echo $?
+for a in ! a b c; do echo $a; done
+for a in ! a b c; do ! echo -n "$a "; echo $?; done
+for a in ! a b c; do ! /bin/echo -n "$a "; echo $?; done
+for a in ! a b c; do ! echo -n "$a " | false; echo $?; done
+for a in ! a b c; do ! echo -n "$a " | true; echo $?; done
+for a in ! a b c; do ! { echo -n "$a " | false; }; echo $?; done
+for a in ! a b c; do ! { echo -n "$a " | true; }; echo $?; done