aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
Commit message (Collapse)AuthorAge
* Disable localizations during testsGravatar Kevin Ballard2014-11-25
|
* Revert "tests/status.in: fix test for locale, fall back to default strings"Gravatar Kevin Ballard2014-11-25
| | | | This reverts commit 3b3fde1c5e5a2525fd4139c3853bfafab877950c.
* tests/status.in: fix test for locale, fall back to default stringsGravatar David Adam2014-11-25
|
* Define a common `mktemp` for testsGravatar Kevin Ballard2014-11-24
| | | | | | | | | | GNU and BSD `mktemp` handle options differently, and it's a useful utility for tests. As such, define a common `mktemp` function wrapper for the test suite. It might actually be nice to expand this for more flags and support it globally, but that may result in confusion for any users of BSD mktemp that expect to be running /bin/mktemp.
* Tweak test runner to set up environment betterGravatar Kevin Ballard2014-11-24
| | | | | | Update the test runners so they set up their own environment in test_util.fish. This simplifies the Makefile and paves the way for adding utility functions for use in the tests themselves.
* Disable printf %a test since it has different output on FreeBSDGravatar ridiculousfish2014-11-02
| | | | Fixes #1139
* BOM test should only run in UTF-8 localesGravatar ridiculousfish2014-11-02
|
* Allow # within string tokensGravatar ridiculousfish2014-11-01
| | | | | | | This means that # must be the first character of the string to start a comment, in line with other shells Fixes #953
* Fix to swallow BOMs in sourced filesGravatar ridiculousfish2014-11-01
| | | | Fixes #1518
* Fix expansion tests on OS XGravatar ridiculousfish2014-10-30
|
* expand: expand tilde to canonical pathsGravatar David Adam2014-10-26
| | | | Work on #1133.
* Unescape strings in keyword detection.Gravatar ridiculousfish2014-10-15
| | | | | This allows keywords to be quoted. However, they may not contain variable or process expansions, etc. Fixes #1398
* Improve error reporting for unclosed blocksGravatar ridiculousfish2014-10-14
|
* Change how arrays and environment variables interact.Gravatar ridiculousfish2014-10-12
| | | | | | | | | | | | Prior to this change, inherited environment variables would be split on colons, becoming an array. This change eliminates that behavior. Now environment variables are always split on the record separator character (ASCII 0x1e), with the exception of a short whitelist of PATH, MANPATH, CDPATH. Likewise, exported variables are also exported delimited by rs, with the exception of the above whitelist. Fixes #1374, also see #1656
* Fix test breakage from 14724401fGravatar Kevin Ballard2014-10-07
| | | | | | | | We can't use $PATHS to test the :-splitting because the global config file adds extra paths based on /etc/paths and /etc/paths.d. Ideally fish would have a way to suppress behavior like that, but for the time being it doesn't.
* env.cpp: correctly check variable_can_be_arrayGravatar David Adam2014-10-08
| | | | Closes #1746.
* Update psub for the new --inherit-variable flagGravatar Kevin Ballard2014-10-02
| | | | | Also do some minor formatting cleanup, make psub return 1 when executed outside of a command substitution, and make it respect $TMPDIR.
* Add new `functions` flag -V/--inherit-variableGravatar Kevin Ballard2014-10-02
| | | | | | | | | | --inherit-variable takes a variable name and snapshots its current value. When the function is executed, it will have a local variable with this value already defined. Printing the function source will include synthesized `set -l` lines for the values. This is primarily useful for functions that are created on the fly, such as in `psub`.
* Rewrite fishscript testrunner for better outputGravatar Kevin Ballard2014-10-02
| | | | | Update the fishscript testrunner to use the same output style as the interactive testrunner.
* Base `status -b` off the parser execution stackGravatar Kevin Ballard2014-09-30
| | | | | | | | | | | Instead of globally marking the state as "in block" when evaluating blocks/functions, update the "in block" status when pushing/popping blocks on the parser stack. Fixes #1729. On a side note, `status -b` is actually pretty useless, because it always returns 0 inside of a function (even without this patch).
* Don't leave is_block in bad state after bad redirectionGravatar Kevin Ballard2014-09-30
| | | | Fixes #1728.
* Try to fix the Travis test failuresGravatar Kevin Ballard2014-09-23
| | | | | | | It seems expect prioritizes the first pattern in the list, instead of the pattern that matches earliest in the buffer. That seems pretty stupid, but let's try moving the prompt pattern to the end and see if that fixes the Travis failures.
* Fix missing "1 test failed" lineGravatar Kevin Ballard2014-09-23
| | | | | | Also tweak colored output to reset before the newline instead of after, so travis behaves better (for some reason reset causes travis to display the line in black).
* Rejigger test suiteGravatar Kevin Ballard2014-09-23
| | | | | | | | | | Split test_interactive off from test_fishscript and add a new target test_high_level that tests both. Add some Makefile magic so the tests can be run serially without using sub-make, which gets rid of a little noise from the make output. Rewrite interactive tests to look better.
* Support wide characters in printf %cGravatar Kevin Ballard2014-09-21
|
* Allow U+F8FF to be typedGravatar Kevin Ballard2014-09-21
| | | | | | U+F8FF is the last character in the private use area, but it's also the codepoint used for the Apple symbol (), which is typeable on US keyboards in OS X, and so should actually work.
* Fix incorrect error on `read` with 1-character inputGravatar Kevin Ballard2014-09-21
| | | | | | When `read` is given a single character of input (including the newline), it was bailing as if it had been given no input. This is incorrect.
* Add extra logging for interactive test failuresGravatar Kevin Ballard2014-09-21
|
* Implement new `read --null` flagGravatar Kevin Ballard2014-09-21
| | | | | | | | The `--null` flag to `read` makes it split incoming lines on NUL instead of newlines. This is intended for processing the output of a command that uses NUL separators (such as `find -print0`). Fixes #1694.
* Squelch spurious set PATH errors in testGravatar Kevin Ballard2014-09-20
|
* Don't include child directories of $PATH in completionsGravatar Kevin Ballard2014-09-20
| | | | | | | | | Directories are completed like commands, because of implicit cd. However, directories found inside $PATH entries should not be completed, as implicit cd doesn't work there. Similarly, directories should not be completed after the `command` builtin. Fixes #1695.
* Decrement SHLVL when running `exec`Gravatar Kevin Ballard2014-09-19
| | | | | | | | | | | `exec` removes fish from the shell "stack", so SHLVL needs to be decremented to match. This means `exec fish` will result in the same SHLVL in the new fish instance. Also tweak the SHLVL logic to interpret an environment SHLVL of "3foo" as garbage instead of as the value "3". Fixes #1693.
* Tweak interactive debug outputGravatar Kevin Ballard2014-09-19
|
* Dump interactive logs on travis test failureGravatar Kevin Ballard2014-09-19
| | | | | | | As far as I know we can't access the build artifacts from Travis, so we can't check the interactive logs after a test failure. Add an environment variable that causes the test runner to dump the logs itself, and set that variable for Travis.
* Reset fish_bind_mode when changing fish_key_bindingsGravatar Kevin Ballard2014-09-18
| | | | | | | Also avoid resetting bindings if fish_key_bindings is "modified" without actually changing. Fixes #1638.
* Disable fish_title on interactive testsGravatar Kevin Ballard2014-09-08
| | | | | | | This was apparently what was interfering with the tests working on Linux. Tweak .travis.yml to install expect so the tests run on Linux.
* Add a test harness for interactive behaviorGravatar Kevin Ballard2014-09-07
| | | | | | | Add a test harness that uses `expect` to drive Fish to test interactive behavior. Include some tests for `read`.
* Cleanup fish tests a bitGravatar Kevin Ballard2014-09-07
| | | | | | | | | Split `make test` into two targets `make test_low_level` and `make test_fishscript`, primarily so fishscript tests can be rechecked quickly after edits. Reformat the test.fish file and update some of the code to be a little more straightforward (e.g. `if not cmd` instead of `if cmd; else`).
* New -n option for read builtinGravatar Joseph Tannhuber2014-09-03
| | | | | Usage: read -n nchars Reads maximum of nchars characters. If nchars <= 0, there's no limit.
* Fix test output for `complete -e` testsGravatar Kevin Ballard2014-09-02
| | | | | GNU sort behaves stupidly when LC_ALL is not C. This caused the test output to be sorted wrong.
* Add tests for the various `complete -e` changesGravatar Kevin Ballard2014-09-02
|
* Trim trailing newline on cmdsubst when IFS=''Gravatar Kevin Ballard2014-08-29
| | | | | | | When $IFS is empty, command substitution no longer splits on newlines. However we still want to trim off a single trailing newline, as most commands will emit a trailing newline and it makes it harder to work with their output.
* Fix $SHLVLGravatar Kevin Ballard2014-08-29
| | | | | Due to being read-only, SHLVL wasn't being incremented properly for recursive invocations of fish.
* Merge pull request #1630 from kballard/expand_variables_in_quoted_stringsGravatar ridiculousfish2014-08-23
|\ | | | | Fix various expansions issues with variables
* \ Merge branch 'make_type_better' of github.com:kballard/fish-shell into ↵Gravatar ridiculousfish2014-08-21
|\ \ | | | | | | | | | kballard-make_type_better
| | * Fix error span for invalid slice indexesGravatar Kevin Ballard2014-08-21
| | | | | | | | | | | | | | | | | | | | | | | | The span now properly points at the token that was invalid, rather than the start of the slice. Also fix the span for `()[1]` and `()[d]`, which were previously reporting no source location at all.
| | * Parse slices even for empty variablesGravatar Kevin Ballard2014-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a variable is parsed as being empty, parse out the slice and validate the indexes anyway, behaving for slicing purposes as if the variable had a single empty value. Besides providing errors when expected, this also fixes the following: set -l foo echo "$foo[1]" This used to print "[1]", now it properly prints nothing.
| | * Fix double expansions (`$$foo`)Gravatar Kevin Ballard2014-08-20
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Double expansions of variables had the following issues: * `"$$foo"` threw an error no matter what the value of `$foo` was. * `set -l foo ''; echo $$foo` threw an error because of the expansion of `$foo` to `''`. With this change, double expansion always works properly. When double-expanding a multi-valued variable, in a double-quoted string the first word of the inner expansion is used for the outer expansion, and outside of a quoted string every word is used for the double-expansion in each of the arguments. > set -l foo bar baz > set -l bar one two > set -l baz three four > echo "$$foo" one two baz > echo $$foo one two three four
* | Improve history robustness against corrupt filesGravatar ridiculousfish2014-07-29
| | | | | | | | Fixes #1581
| * read: Support arrays, character splittingGravatar Kevin Ballard2014-07-14
| | | | | | | | | | | | | | | | | | | | Enhance the `read` builtin to support creating an array with the --array flag. With --array, only a single variable name is allowed and the entire input is tokenized and placed into that variable as an array. Also add custom behavior if IFS is empty or unset. In that event, split the input on every character, instead of the previous behavior of doing no splitting at all.