exa/xtests
Benjamin Sago dd8bff083f Override the names of . and ..
There was a problem when displaying . and .. in directory listings: their names would normalise to actual names! So instead of literally seeing `.`, you’d see the current directory’s name, inserted in sort order into the list of results. Obviously this is not what we want.

In unrelated news, putting `.` and `..` into the list of paths read from a directory just takes up more heap space for something that’s basically constant.

We can solve both these problems at once by moving the DotFilter to the files iterator in Dir, rather than at the Dir’s creation. Having the iterator know whether it should display `.` and `..` means it can emit those files first, and because it knows what those files really represent, it can override their file names to actually be those sequences of dots.

This is not a perfect solution: the main casualty is that a File can now be constructed with a name, some metadata, both, or neither. This is currently handled with a bunch of Options, and returns IOResult even without doing any IO operations.

But at least all the tests pass!
2017-06-28 18:41:31 +01:00
..
attributes Protect xtests against different default users 2017-04-28 19:34:23 +01:00
dir_paths Tests for the directory path fix 2017-04-29 10:56:17 +01:00
dirs Further tests for printing out directory names 2017-04-29 11:52:44 +01:00
empty Only engage the view when there are files to show 2016-10-29 19:07:43 +01:00
file_names Test change emoji width 2017-05-17 23:12:27 +01:00
file_names_1 Also escape characters in links and headings 2017-05-01 21:54:53 +01:00
file_names_R Test change emoji width 2017-05-17 23:12:27 +01:00
file_names_T Also escape characters in broken symlinks 2017-05-02 08:46:43 +01:00
file_names_x Test change emoji width 2017-05-17 23:12:27 +01:00
file-names-exts Rename file-types tests to file-names-exts 2017-04-28 20:07:31 +01:00
files Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
files_40 Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
files_80 Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
files_120 Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
files_160 Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
files_200 Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
files_l Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_l_bw Tests for disabling colours 2017-06-25 11:53:59 +01:00
files_l_scale Add xtest for colour scale 2017-05-16 20:53:28 +01:00
files_lG_40 Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lG_80 Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lG_120 Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lG_160 Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lG_200 Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lh Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lhb Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_lhb2 Protect xtests against different default users 2017-04-28 19:34:23 +01:00
files_star_100 Fix bug where paths took up twice as much space 2017-05-02 17:40:32 +01:00
files_star_150 Fix bug where paths took up twice as much space 2017-05-02 17:40:32 +01:00
files_star_200 Fix bug where paths took up twice as much space 2017-05-02 17:40:32 +01:00
files_star_lG_100 Fix bug where paths took up twice as much space 2017-05-02 17:40:32 +01:00
files_star_lG_150 Fix bug where paths took up twice as much space 2017-05-02 17:40:32 +01:00
files_star_lG_200 Fix bug where paths took up twice as much space 2017-05-02 17:40:32 +01:00
git_additions Add xtests for existing Git implementation 2017-05-17 20:35:05 +01:00
git_edits Add xtests for existing Git implementation 2017-05-17 20:35:05 +01:00
help Remove one last newline from help output 2017-06-23 22:30:48 +01:00
help_long Remove one last newline from help output 2017-06-23 22:30:48 +01:00
hiddens Override the names of . and .. 2017-06-28 18:41:31 +01:00
hiddens_a Override the names of . and .. 2017-06-28 18:41:31 +01:00
hiddens_aa Override the names of . and .. 2017-06-28 18:41:31 +01:00
hiddens_l Override the names of . and .. 2017-06-28 18:41:31 +01:00
hiddens_la Override the names of . and .. 2017-06-28 18:41:31 +01:00
hiddens_laa Override the names of . and .. 2017-06-28 18:41:31 +01:00
ignores_ogg Rename file-types tests to file-names-exts 2017-04-28 20:07:31 +01:00
links Give broken links a different style in grid view 2017-05-07 14:45:04 +01:00
links_1 Add tests for relative symlinks 2017-04-30 11:58:29 +01:00
links_1_files Re-prefix the paths found by following symlinks 2017-05-15 22:38:23 +01:00
links_T Add tests for relative symlinks 2017-04-30 11:58:29 +01:00
passwd Protect xtests against different default users 2017-04-28 19:34:23 +01:00
permissions xtests for higher order bits 2017-05-30 15:32:11 +01:00
permissions_sudo xtests for higher order bits 2017-05-30 15:32:11 +01:00
proc_1_root Fix integration test by making it time-independent 2016-10-30 14:27:20 +00:00
README.md Replace the testcases script with a Vagrant VM 2016-10-07 19:31:03 +01:00
run.sh Override the names of . and .. 2017-06-28 18:41:31 +01:00
specials Display device IDs when listing devices 2017-05-19 09:20:47 +01:00
specials_F Display device IDs when listing devices 2017-05-19 09:20:47 +01:00

Extra tests

These extra tests are intended to be run from a Vagrant VM that has already had its environment set up -- see the section in the README for more details.