jobs -q; echo $status
sleep 5 &
sleep 5 &
jobs -c
jobs -q; echo $status
bg -23 1 2>/dev/null
or echo bg: invalid option -23 >&2
fg 3
bg 3
sleep 1 &
disown
jobs -c
disown foo
disown (jobs -p)
or exit 0

# Verify `jobs` output within a function lists background jobs
# https://github.com/fish-shell/fish-shell/issues/5824
function foo
    sleep 0.2 &
    jobs -c
end
foo

# Verify we observe job exit events
sleep 1 &
set sleep_job $last_pid
function sleep_done_$sleep_job --on-job-exit $sleep_job
    /bin/echo "sleep is done"
    functions --erase sleep_done_$sleep_job
end
sleep 2

# Verify `jobs -l` works and returns the right status codes
# https://github.com/fish-shell/fish-shell/issues/6104
jobs --last --command; echo $status
sleep 0.2 &
jobs -lc; echo $status
