diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Test/B09hash.ztst | 71 |
2 files changed, 74 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 9cc4cf93c..2c50e05f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 2015-11-22 Peter Stephenson <p.w.stephenson@ntlworld.com> - * 3787: Src/builtin.c: infinite loop in "hash -m". + * 37188: Test/B09hash.ztst: new test. + + * 37187: Src/builtin.c: infinite loop in "hash -m". * 37186: Functions/VCS_Info/VCS_INFO_nvcsformats, Src/Zle/zle_main.c: a couple of WARN_CREATE_GLOBAL fixes. diff --git a/Test/B09hash.ztst b/Test/B09hash.ztst new file mode 100644 index 000000000..49f304838 --- /dev/null +++ b/Test/B09hash.ztst @@ -0,0 +1,71 @@ +# The hash builtin is most used for the command hash table, which is +# populated automatically. This is therefore highly system specific, +# so mostly we'll test with the directory hash table: the logic is +# virtually identical but with the different table, and furthermore +# the shell doesn't care whether the directory exists unless you refer +# to it in a context that needs one. + +%prep + populate_hash() { + hash -d one=/first/directory + hash -d two=/directory/the/second + hash -d three=/noch/ein/verzeichnis + hash -d four=/bored/with/this/now + } + +%test + + hash -d +0:Directory hash initially empty + + populate_hash + hash -d +0:Populating directory hash and output with sort +>four=/bored/with/this/now +>one=/first/directory +>three=/noch/ein/verzeichnis +>two=/directory/the/second + + hash -rd + hash -d +0:Empty hash + + populate_hash + hash -d +0:Refill hash +>four=/bored/with/this/now +>one=/first/directory +>three=/noch/ein/verzeichnis +>two=/directory/the/second + + hash -dL +0:hash -L option +>hash -d four=/bored/with/this/now +>hash -d one=/first/directory +>hash -d three=/noch/ein/verzeichnis +>hash -d two=/directory/the/second + + hash -dm 't*' +0:hash -m option +>three=/noch/ein/verzeichnis +>two=/directory/the/second + + hash -d five=/yet/more six=/here/we/go seven=/not/yet/eight + hash -d +0:Multiple assignments +>five=/yet/more +>four=/bored/with/this/now +>one=/first/directory +>seven=/not/yet/eight +>six=/here/we/go +>three=/noch/ein/verzeichnis +>two=/directory/the/second + + hash -d one two three +0:Multiple arguments with no assignment not in verbose mode + + hash -vd one two three +0:Multiple arguments with no assignment in verbose mode +>one=/first/directory +>two=/directory/the/second +>three=/noch/ein/verzeichnis |