diff --git a/test/unit/os_unix.moon b/test/unit/os_unix.moon new file mode 100644 index 0000000000..2e817673a4 --- /dev/null +++ b/test/unit/os_unix.moon @@ -0,0 +1,40 @@ +{:cimport, :eq, :ffi} = require 'test.unit.helpers' + +cstr = ffi.typeof 'char[?]' +os = cimport './src/os_unix.h' + +describe 'os_unix function', -> + describe 'mch_isdir', -> + TRUE = 1 + FALSE = 0 + + ffi.cdef('int mch_isdir(char * name);') + + mch_isdir = (name) -> + name = cstr (string.len name), name + os.mch_isdir(name) + + setup -> + lfs.mkdir 'empty-test-directory' + lfs.touch 'empty-test-directory/test.file' + + teardown -> + lfs.rmdir 'empty-test-directory' + + it 'returns false if an empty string is given', -> + eq FALSE, (mch_isdir '') + + it 'returns false if a nonexisting directory is given', -> + eq FALSE, (mch_isdir 'non-existing-directory') + + it 'returns false if an existing file is given', -> + eq FALSE, (mch_isdir 'non-existing-directory/test.file') + + it 'returns true if the current directory is given', -> + eq TRUE, (mch_isdir '.') + + it 'returns true if the parent directory is given', -> + eq TRUE, (mch_isdir '..') + + it 'returns true if an newly created directory is given', -> + eq TRUE, (mch_isdir 'empty-test-directory')