aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-08-30 10:53:41 -0300
committerNicolas Hillegeer <nicolas@hillegeer.com>2014-08-31 14:50:49 +0200
commitd39aa51e942c525d55b13490cb13806f8b72f4f1 (patch)
treecde85addf1b8c85a140b9f15252a180376d84f98
parentdcda179e6a49a6bc48b0b077ef3c1b58a3abcaed (diff)
downloadrneovim-d39aa51e942c525d55b13490cb13806f8b72f4f1.tar.gz
rneovim-d39aa51e942c525d55b13490cb13806f8b72f4f1.tar.bz2
rneovim-d39aa51e942c525d55b13490cb13806f8b72f4f1.zip
unittest: convert env_spec.moon to lua
-rw-r--r--test/unit/os/env_spec.lua130
-rw-r--r--test/unit/os/env_spec.moon106
2 files changed, 130 insertions, 106 deletions
diff --git a/test/unit/os/env_spec.lua b/test/unit/os/env_spec.lua
new file mode 100644
index 0000000000..d04754f5ee
--- /dev/null
+++ b/test/unit/os/env_spec.lua
@@ -0,0 +1,130 @@
+local helpers = require('test.unit.helpers')
+
+local cimport = helpers.cimport
+local internalize = helpers.internalize
+local eq = helpers.eq
+local ffi = helpers.ffi
+local lib = helpers.lib
+local cstr = helpers.cstr
+local to_cstr = helpers.to_cstr
+local NULL = helpers.NULL
+
+require('lfs')
+
+local env = cimport('./src/nvim/os/os.h')
+
+describe('env function', function()
+ function os_setenv(name, value, override)
+ return env.os_setenv((to_cstr(name)), (to_cstr(value)), override)
+ end
+
+ function os_getenv(name)
+ local rval = env.os_getenv((to_cstr(name)))
+ if rval ~= NULL then
+ return ffi.string(rval)
+ else
+ return NULL
+ end
+ end
+
+ describe('os_setenv', function()
+ local OK = 0
+
+ it('sets an env variable and returns OK', function()
+ local name = 'NEOVIM_UNIT_TEST_SETENV_1N'
+ local value = 'NEOVIM_UNIT_TEST_SETENV_1V'
+ eq(nil, os.getenv(name))
+ eq(OK, (os_setenv(name, value, 1)))
+ eq(value, os.getenv(name))
+ end)
+
+ it("dosn't overwrite an env variable if overwrite is 0", function()
+ local name = 'NEOVIM_UNIT_TEST_SETENV_2N'
+ local value = 'NEOVIM_UNIT_TEST_SETENV_2V'
+ local value_updated = 'NEOVIM_UNIT_TEST_SETENV_2V_UPDATED'
+ eq(OK, (os_setenv(name, value, 0)))
+ eq(value, os.getenv(name))
+ eq(OK, (os_setenv(name, value_updated, 0)))
+ eq(value, os.getenv(name))
+ end)
+ end)
+
+ describe('os_getenv', function()
+ it('reads an env variable', function()
+ local name = 'NEOVIM_UNIT_TEST_GETENV_1N'
+ local value = 'NEOVIM_UNIT_TEST_GETENV_1V'
+ eq(NULL, os_getenv(name))
+ -- need to use os_setenv, because lua dosn't have a setenv function
+ os_setenv(name, value, 1)
+ eq(value, os_getenv(name))
+ end)
+
+ it('returns NULL if the env variable is not found', function()
+ local name = 'NEOVIM_UNIT_TEST_GETENV_NOTFOUND'
+ return eq(NULL, os_getenv(name))
+ end)
+ end)
+
+ describe('os_getenvname_at_index', function()
+ it('returns names of environment variables', function()
+ local test_name = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1N'
+ local test_value = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1V'
+ os_setenv(test_name, test_value, 1)
+ local i = 0
+ local names = { }
+ local found_name = false
+ local name = env.os_getenvname_at_index(i)
+ while name ~= NULL do
+ table.insert(names, ffi.string(name))
+ if (ffi.string(name)) == test_name then
+ found_name = true
+ end
+ i = i + 1
+ name = env.os_getenvname_at_index(i)
+ end
+ eq(true, (table.getn(names)) > 0)
+ eq(true, found_name)
+ end)
+
+ it('returns NULL if the index is out of bounds', function()
+ local huge = ffi.new('size_t', 10000)
+ local maxuint32 = ffi.new('size_t', 4294967295)
+ eq(NULL, env.os_getenvname_at_index(huge))
+ eq(NULL, env.os_getenvname_at_index(maxuint32))
+
+ if ffi.abi('64bit') then
+ -- couldn't use a bigger number because it gets converted to
+ -- double somewere, should be big enough anyway
+ -- maxuint64 = ffi.new 'size_t', 18446744073709551615
+ local maxuint64 = ffi.new('size_t', 18446744073709000000)
+ eq(NULL, env.os_getenvname_at_index(maxuint64))
+ end
+ end)
+ end)
+
+ describe('os_get_pid', function()
+ it('returns the process ID', function()
+ local stat_file = io.open('/proc/self/stat')
+ if stat_file then
+ local stat_str = stat_file:read('*l')
+ stat_file:close()
+ local pid = tonumber((stat_str:match('%d+')))
+ eq(pid, tonumber(env.os_get_pid()))
+ else
+ -- /proc is not available on all systems, test if pid is nonzero.
+ eq(true, (env.os_get_pid() > 0))
+ end
+ end)
+ end)
+
+ describe('os_get_hostname', function()
+ it('returns the hostname', function()
+ local handle = io.popen('hostname')
+ local hostname = handle:read('*l')
+ handle:close()
+ local hostname_buf = cstr(255, '')
+ env.os_get_hostname(hostname_buf, 255)
+ eq(hostname, (ffi.string(hostname_buf)))
+ end)
+ end)
+end)
diff --git a/test/unit/os/env_spec.moon b/test/unit/os/env_spec.moon
deleted file mode 100644
index ab5b940a58..0000000000
--- a/test/unit/os/env_spec.moon
+++ /dev/null
@@ -1,106 +0,0 @@
-{:cimport, :internalize, :eq, :ffi, :lib, :cstr, :to_cstr, :NULL} = require 'test.unit.helpers'
-require 'lfs'
-
-env = cimport './src/nvim/os/os.h'
-
-describe 'env function', ->
-
- os_setenv = (name, value, override) ->
- env.os_setenv (to_cstr name), (to_cstr value), override
-
- os_getenv = (name) ->
- rval = env.os_getenv (to_cstr name)
- if rval != NULL
- ffi.string rval
- else
- NULL
-
- describe 'os_setenv', ->
-
- OK = 0
-
- it 'sets an env variable and returns OK', ->
- name = 'NEOVIM_UNIT_TEST_SETENV_1N'
- value = 'NEOVIM_UNIT_TEST_SETENV_1V'
- eq nil, os.getenv name
- eq OK, (os_setenv name, value, 1)
- eq value, os.getenv name
-
- it "dosn't overwrite an env variable if overwrite is 0", ->
- name = 'NEOVIM_UNIT_TEST_SETENV_2N'
- value = 'NEOVIM_UNIT_TEST_SETENV_2V'
- value_updated = 'NEOVIM_UNIT_TEST_SETENV_2V_UPDATED'
- eq OK, (os_setenv name, value, 0)
- eq value, os.getenv name
- eq OK, (os_setenv name, value_updated, 0)
- eq value, os.getenv name
-
- describe 'os_getenv', ->
-
- it 'reads an env variable', ->
- name = 'NEOVIM_UNIT_TEST_GETENV_1N'
- value = 'NEOVIM_UNIT_TEST_GETENV_1V'
- eq NULL, os_getenv name
- -- need to use os_setenv, because lua dosn't have a setenv function
- os_setenv name, value, 1
- eq value, os_getenv name
-
- it 'returns NULL if the env variable is not found', ->
- name = 'NEOVIM_UNIT_TEST_GETENV_NOTFOUND'
- eq NULL, os_getenv name
-
- describe 'os_getenvname_at_index', ->
-
- it 'returns names of environment variables', ->
- test_name = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1N'
- test_value = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1V'
- os_setenv test_name, test_value, 1
- i = 0
- names = {}
- found_name = false
- name = env.os_getenvname_at_index i
- while name != NULL
- table.insert names, ffi.string name
- if (ffi.string name) == test_name
- found_name = true
- i += 1
- name = env.os_getenvname_at_index i
-
- eq true, (table.getn names) > 0
- eq true, found_name
-
- it 'returns NULL if the index is out of bounds', ->
- huge = ffi.new 'size_t', 10000
- maxuint32 = ffi.new 'size_t', 4294967295
- eq NULL, env.os_getenvname_at_index huge
- eq NULL, env.os_getenvname_at_index maxuint32
- if ffi.abi '64bit'
- -- couldn't use a bigger number because it gets converted to
- -- double somewere, should be big enough anyway
- -- maxuint64 = ffi.new 'size_t', 18446744073709551615
- maxuint64 = ffi.new 'size_t', 18446744073709000000
- eq NULL, env.os_getenvname_at_index maxuint64
-
- describe 'os_get_pid', ->
-
- it 'returns the process ID', ->
- stat_file = io.open '/proc/self/stat'
- if stat_file
- stat_str = stat_file\read '*l'
- stat_file\close!
- pid = tonumber (stat_str\match '%d+')
- eq pid, tonumber env.os_get_pid!
- else
- -- /proc is not available on all systems, test if pid is nonzero.
- eq true, (env.os_get_pid! > 0)
-
- describe 'os_get_hostname', ->
-
- it 'returns the hostname', ->
- handle = io.popen 'hostname'
- hostname = handle\read '*l'
- handle\close!
- hostname_buf = cstr 255, ''
- env.os_get_hostname hostname_buf, 255
- eq hostname, (ffi.string hostname_buf)
-