-- simple os-library tests
--
-- because the nature of the "os" library is to provide os-specific behavior,
-- the compatibility tests must be extremely loose, and can really only
-- compare things like return value type to be meaningful.
--
-- actual os behavior needs to go in an oslib function test
--
local pcall = function(...)
	local s, e, f = pcall(...)
	return s, type(e)
end
print('os', type(os))
print('os.clock()', pcall(os.clock))
print('os.date()', pcall(os.date))
print('os.difftime(123000, 21500)', pcall(os.difftime, 123000, 21250))
print('os.execute("bogus")', pcall(os.execute, ''))
print('os.getenv()', pcall(os.getenv))
print('os.getenv("bogus.key")', pcall(os.getenv, 'bogus.key'))
local s, p = pcall(os.tmpname)
local s, q = pcall(os.tmpname)
print('os.tmpname()', s, p)
print('os.tmpname()', s, q)
-- permission denied on windows
--print( 'os.remove(p)', pcall( os.remove, p ) )
--print( 'os.rename(p,q)', pcall( os.rename, p, q ) )
local s, f = pcall(io.open, p, "w")
print('io.open', s, f)
print('write', pcall(f.write, f, "abcdef 12345"))
print('close', pcall(f.close, f))
print('os.rename(p,q)', pcall(os.rename, p, q))
print('os.remove(q)', pcall(os.remove, q))
print('os.remove(q)', pcall(os.remove, q))
-- setlocale not supported on jse yet
-- print( 'os.setlocale()', pcall( os.setlocale ) )
-- print( 'os.setlocale("jp")', pcall( os.setlocale, "jp" ) )
-- print( 'os.setlocale("us","monetary")', pcall( os.setlocale, "us", "monetary" ) )
-- print( 'os.setlocale(nil,"all")', pcall( os.setlocale, nil, "all" ) )
print('os.setlocale("C")', pcall(os.setlocale, "C"))
print('os.exit', type(os.exit))
