fish-shell/tests/test1.out
ridiculousfish 5eade35257 Stop buffering deferred function processes
If a function process is deferred, allow it to be unbuffered.
This permits certain simple cases where functions are piped to external
commands to execute without buffering.

This is a somewhat-hacky stopgap measure that can't really be extended
to more general concurrent processes. However it is overall an improvement
in user experience that might help flush out some bugs too.
2019-03-24 21:23:26 -07:00

146 lines
2.7 KiB
Plaintext

####################
# Comments in odd places don't cause problems
1a
1b
2a
2b
####################
# Bracket expansion
x-1
x-1 x-2
foo-1 foo-23 foo-24
foo-{}
foo-{} foo-{}
foo-
foo- foo- foo- foo-
foo- foo-, foo-
####################
# Escaped newlines
foo bar
foobar
foobar
foo\
bar
a
b
c
####################
# Simple function tests
Test 2 pass
Test 3a pass
Test 3b pass
Test 4 pass
####################
# Ensure eval doesn't unnecessarily mess with the exit status
1
0
Test 5 pass
####################
# Verify that we can turn stderr into stdout and then pipe it
output
errput
output
errput
####################
# Test that trailing ^ doesn't trigger redirection, see #1873
caret_no_redirect 12345^
####################
# Verify that we can pipe something other than stdout
is_stdout
####################
# echo tests
abc\ndef
abc
def
abc\zdef
abc!def
abc!def
abcQdef
abcQ2def
abc
-
-h
0000000 376
0000001
Catch your breath
abc!def
abc!1def
####################
# Verify that pipes don't conflict with fd redirections
pipe 3
pipe 4
pipe 5
pipe 6
pipe 7
pipe 8
pipe 9
pipe 10
pipe 11
pipe 12
####################
# Make sure while loops don't run forever with no-exec (#1543)
Checking for infinite loops in no-execute
####################
# For loops with read-only vars is an error (#4342)
####################
# That goes for non-electric ones as well (#5548)
####################
# For loop control vars available outside the for block
$loop_var: set in local scope, unexported, with 1 elements
$loop_var[1]: length=1 value=|c|
$loop_var: not set in global scope
$loop_var: not set in universal scope
$loop_var: set in local scope, unexported, with 1 elements
$loop_var[1]: length=1 value=|b|
$loop_var: set in global scope, unexported, with 1 elements
$loop_var[1]: length=10 value=|global_val|
$loop_var: not set in universal scope
$loop_var: not set in local scope
$loop_var: set in global scope, unexported, with 1 elements
$loop_var[1]: length=10 value=|global_val|
$loop_var: not set in universal scope
$loop_var: set in local scope, unexported, with 1 elements
$loop_var[1]: length=2 value=|cc|
$loop_var: set in global scope, unexported, with 1 elements
$loop_var[1]: length=10 value=|global_val|
$loop_var: not set in universal scope
$loop_var: not set in local scope
$loop_var: set in global scope, unexported, with 1 elements
$loop_var[1]: length=10 value=|global_val|
$loop_var: not set in universal scope
####################
# Comments allowed in between lines (#1987)
before comment after comment
####################
# Backslashes are part of comments and do not join lines (#1255)
####################
# Verify $argv set correctly in sourced scripts (#139)
source argv {}
source argv {}
source argv {abc}
source argv {abc def}
1