fish-shell/tests/checks/pipestatus.fish
Fabian Homborg 9367d4ff71 Reindent functions to remove useless quotes
This does not include checks/function.fish because that currently
includes a "; end" in a message that indent would remove, breaking the test.
2020-03-09 19:46:43 +01:00

177 lines
3.4 KiB
Fish

#RUN: %fish %s
# pipestatus variable - builtins only
false | false | false
echo $pipestatus : $status
#CHECK: 1 1 1 : 1
true | true | true
echo $pipestatus : $status
#CHECK: 0 0 0 : 0
false | true | false
echo $pipestatus : $status
#CHECK: 1 0 1 : 1
true | false | true
echo $pipestatus : $status
#CHECK: 0 1 0 : 0
# pipestatus variable - no builtins
# Note: On some systems `command false` fails with 255, not 1. We allow both.
command false | command false | command false
echo $pipestatus : $status
#CHECK: {{1|255}} {{1|255}} {{1|255}} : 1
command true | command true | command true
echo $pipestatus : $status
#CHECK: 0 0 0 : 0
command false | command true | command false
echo $pipestatus : $status
#CHECK: {{1|255}} 0 {{1|255}} : 1
command true | command false | command true
echo $pipestatus : $status
#CHECK: 0 {{1|255}} 0 : 0
# pipestatus variable - mixed
command false | command false | false
echo $pipestatus : $status
#CHECK: {{1|255}} {{1|255}} 1 : 1
command true | true | command true
echo $pipestatus : $status
#CHECK: 0 0 0 : 0
false | command true | command false
echo $pipestatus : $status
#CHECK: 1 0 {{1|255}} : 1
true | false | command true
echo $pipestatus : $status
#CHECK: 0 1 0 : 0
sh -c 'exit 5' | sh -c 'exit 2'
echo $pipestatus : $status
#CHECK: 5 2 : 2
sh -c 'exit 3' | false | sh -c 'exit 6'
echo $pipestatus : $status
#CHECK: 3 1 6 : 6
sh -c 'exit 9' | true | sh -c 'exit 3' | false
echo $pipestatus : $status
#CHECK: 9 0 3 1 : 1
# pipestatus variable - non-pipe
true
echo $pipestatus : $status
#CHECK: 0 : 0
false
echo $pipestatus : $status
#CHECK: 1 : 1
command true
echo $pipestatus : $status
#CHECK: 0 : 0
command false
echo $pipestatus : $status
#CHECK: {{1|255}} : 1
sh -c 'exit 4'
echo $pipestatus : $status
#CHECK: 4 : 4
# pipestatus variable - negate
! true
echo $pipestatus : $status
#CHECK: 0 : 1
! false
echo $pipestatus : $status
#CHECK: 1 : 0
! false | false | false
echo $pipestatus : $status
#CHECK: 1 1 1 : 0
! true | command true | true
echo $pipestatus : $status
#CHECK: 0 0 0 : 1
! false | true | command false
echo $pipestatus : $status
#CHECK: 1 0 {{1|255}} : 0
! command true | command false | command true
echo $pipestatus : $status
#CHECK: 0 {{1|255}} 0 : 1
! sh -c 'exit 9' | true | sh -c 'exit 3'
echo $pipestatus : $status
#CHECK: 9 0 3 : 0
# pipestatus variable - block
begin
true
end
echo $pipestatus : $status
#CHECK: 0 : 0
begin
false
end
echo $pipestatus : $status
#CHECK: 1 : 1
begin
! true
end
echo $pipestatus : $status
#CHECK: 0 : 1
begin
! false
end
echo $pipestatus : $status
#CHECK: 1 : 0
true | begin
true
end
echo $pipestatus : $status
#CHECK: 0 0 : 0
false | begin
false
end
echo $pipestatus : $status
#CHECK: 1 1 : 1
true | begin
! true
end
echo $pipestatus : $status
#CHECK: 0 1 : 1
false | begin
! false
end
echo $pipestatus : $status
#CHECK: 1 0 : 0
begin
true | false
end
echo $pipestatus : $status
#CHECK: 0 1 : 1
begin
false | true
end
echo $pipestatus : $status
#CHECK: 1 0 : 0
begin
! true
end | false
echo $pipestatus : $status
#CHECK: 1 1 : 1
begin
! false
end | true
echo $pipestatus : $status
#CHECK: 0 0 : 0
begin
sh -c 'exit 3'
end | begin
sh -c 'exit 5'
end
echo $pipestatus : $status
#CHECK: 3 5 : 5
begin
! sh -c 'exit 3'
end | begin
sh -c 'exit 5'
end
echo $pipestatus : $status
#CHECK: 0 5 : 5
begin
! sh -c 'exit 3'
end | begin
! sh -c 'exit 5'
end
echo $pipestatus : $status
#CHECK: 0 0 : 0