# Start by testing a bunch of error conditions. logmsg No args is an error fish_opt and echo unexpected status $status logmsg No short flag or an invalid short flag is an error fish_opt -l help and echo unexpected status $status fish_opt -s help and echo unexpected status $status logmsg A required and optional arg makes no sense fish_opt -s h -l help -r --optional-val and echo unexpected status $status logmsg A repeated and optional arg makes no sense fish_opt -s h -l help --multiple-vals --optional-val and echo unexpected status $status logmsg An unexpected arg not associated with a flag is an error fish_opt -s h -l help hello and echo unexpected status $status # Now verify that valid combinations of options produces the correct output. logmsg Bool, short only fish_opt -s h or echo unexpected status $status logmsg Bool, short and long fish_opt --short h --long help or echo unexpected status $status logmsg Bool, short and long but the short var cannot be used fish_opt --short h --long help --long-only logmsg Required val, short and long but the short var cannot be used fish_opt --short h --long help -r --long-only or echo unexpected status $status logmsg Optional val, short and long valid fish_opt --short h -l help --optional-val or echo unexpected status $status logmsg Optional val, short and long but the short var cannot be used fish_opt --short h -l help --optional-val --long-only or echo unexpected status $status logmsg Repeated val, short and long valid fish_opt --short h -l help --multiple-vals or echo unexpected status $status logmsg Repeated val, short and long but short not valid fish_opt --short h -l help --multiple-vals --long-only or echo unexpected status $status logmsg Repeated val, short only fish_opt -s h --multiple-vals or echo unexpected status $status fish_opt -s h --multiple-vals --long-only or echo unexpected status $status