specify posix.pwd:
- before:
pwd = require "posix.pwd"
- describe endpwent:
- before:
endpwent = pwd.endpwent
- context with bad arguments:
badargs.diagnose (endpwent, "()")
- it returns 'nil':
expect (endpwent ()).to_be (nil)
- it rewinds the passwd database:
p = pwd.getpwent ()
pwd.getpwent ()
endpwent ()
expect (pwd.getpwent ()).to_equal (p)
- describe getpwent:
- before:
getpwent = pwd.getpwent
- context with bad arguments:
badargs.diagnose (getpwent, "()")
- it returns a PosixPasswd for an existing user:
expect (prototype (getpwent ())).to_be "PosixPasswd"
- it fetches a different user on subsequent calls:
p = getpwent ()
expect (getpwent ()).not_to_equal (p)
- it returns nil after the last entry was fetched:
p = getpwent ()
while (p) do
q = getpwent ()
expect (p).not_to_equal (q)
p = q
end
expect (p).to_be (nil)
pwd.endpwent ()
- describe getpwnam:
- before:
getpwuid, getpwnam = posix.getpwuid, posix.getpwnam
- context with bad arguments:
badargs.diagnose (getpwnam, "(string)")
- it returns 'nil' for a non-existent user:
expect (getpwnam "veryunlikelyusername").to_be (nil)
- it returns a PosixPasswd for an existing user:
expect (prototype (getpwnam "root")).to_be "PosixPasswd"
- it fetches a passwd entry by name:
expect (getpwnam ("root").pw_name).to_be "root"
expect (getpwnam ("root").pw_uid).to_be (0)
expect (getpwnam ("root").pw_gid).to_be (0)
expect (type (getpwnam ("root").pw_dir)).to_be "string"
expect (type (getpwnam ("root").pw_shell)).to_be "string"
- describe getpwuid:
- before:
getpwuid = posix.getpwuid
- context with bad arguments:
badargs.diagnose (getpwuid, "(int)")
- it returns a PosixPasswd for an existing user:
expect (prototype (getpwuid (0))).to_be "PosixPasswd"
- it fetches a passwd entry by gid:
expect (getpwuid (0).pw_name).to_be "root"
expect (getpwuid (0).pw_uid).to_be (0)
expect (getpwuid (0).pw_gid).to_be (0)
expect (type (getpwuid (0).pw_dir)).to_be "string"
expect (type (getpwuid (0).pw_shell)).to_be "string"
- describe setpwent:
- before:
setpwent = pwd.setpwent
- context with bad arguments:
badargs.diagnose (setpwent, "()")
- it returns 'nil':
expect (setpwent ()).to_be (nil)
- it rewinds the passwd database:
p = pwd.getpwent ()
pwd.getpwent ()
setpwent ()
expect (pwd.getpwent ()).to_equal (p)