diff options
author | mitchell <70453897+orbitalquark@users.noreply.github.com> | 2021-01-22 15:57:13 -0500 |
---|---|---|
committer | mitchell <70453897+orbitalquark@users.noreply.github.com> | 2021-01-22 15:57:13 -0500 |
commit | eec43aaccb3222c838091ac4eb8f8780d921d4cc (patch) | |
tree | 3cd59fdbf211b02dfa71ca03a3adb9cb7a3d4260 /test/test.lua | |
parent | c5aa8f8dec9611828b6972bc1a72cc8571eab36a (diff) |
`io.get_project_root()` accepts an optional flag for returning a submodule root.
This is for systems like git that have '.git' files (not directories) for
submodules under a parent '.git' directory.
Diffstat (limited to 'test/test.lua')
-rw-r--r-- | test/test.lua | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/test.lua b/test/test.lua index 8503615d..e3fb296b 100644 --- a/test/test.lua +++ b/test/test.lua @@ -521,6 +521,20 @@ function test_file_io_get_project_root() assert_equal(io.get_project_root(_HOME .. '/core'), _HOME) assert_equal(io.get_project_root(_HOME .. '/core/init.lua'), _HOME) assert_equal(io.get_project_root('/tmp'), nil) + lfs.chdir(cwd) + + -- Test git submodules. + local dir = os.tmpname() + os.remove(dir) + lfs.mkdir(dir) + lfs.mkdir(dir .. '/.git') + lfs.mkdir(dir .. '/foo') + io.open(dir .. '/foo/.git', 'w'):write():close() -- simulate submodule + assert_equal(io.get_project_root(dir .. '/foo/bar.txt'), dir) + io.open_file(dir .. '/foo/bar.txt') + assert_equal(io.get_project_root(true), dir .. '/foo') + buffer:close() + os.execute('rm -r ' .. dir) assert_raises(function() io.get_project_root(1) end, 'string/nil expected, got number') end |