Blame specs/posix_grp_spec.yaml

Packit 437b5e
specify posix:grp:
Packit 437b5e
- before:
Packit 437b5e
    grp = require "posix.grp"
Packit 437b5e
Packit 437b5e
Packit 437b5e
- describe endgrent:
Packit 437b5e
  - before:
Packit 437b5e
      endgrent = grp.endgrent
Packit 437b5e
Packit 437b5e
  - context with bad arguments:
Packit 437b5e
      badargs.diagnose (endgrent, "()")
Packit 437b5e
Packit 437b5e
  - it returns 'nil':
Packit 437b5e
      expect (endgrent ()).to_be (nil)
Packit 437b5e
  - it rewinds the group database:
Packit 437b5e
      g = grp.getgrent ()
Packit 437b5e
      grp.getgrent ()
Packit 437b5e
      endgrent ()
Packit 437b5e
      expect (grp.getgrent ()).to_equal (g)
Packit 437b5e
Packit 437b5e
Packit 437b5e
- describe getgrent:
Packit 437b5e
  - before:
Packit 437b5e
      getgrent = grp.getgrent
Packit 437b5e
Packit 437b5e
  - context with bad arguments:
Packit 437b5e
      badargs.diagnose (getgrent, "()")
Packit 437b5e
Packit 437b5e
  - it returns a PosixGroup for an existing group:
Packit 437b5e
      expect (prototype (getgrent ())).to_be "PosixGroup"
Packit 437b5e
  - it fetches a different group on subsequent calls:
Packit 437b5e
      g = getgrent ()
Packit 437b5e
      expect (getgrent ()).not_to_equal (g)
Packit 437b5e
  - it returns nil after the last entry was fetched:
Packit 437b5e
      g = getgrent ()
Packit 437b5e
      while (g) do
Packit 437b5e
        h = getgrent ()
Packit 437b5e
        expect (g).not_to_equal (h)
Packit 437b5e
        g = h
Packit 437b5e
      end
Packit 437b5e
      expect (g).to_be (nil)
Packit 437b5e
      grp.endgrent ()
Packit 437b5e
Packit 437b5e
Packit 437b5e
- describe getgrgid:
Packit 437b5e
  - before:
Packit 437b5e
      getgrgid = posix.getgrgid
Packit 437b5e
      groot = getgrgid (0).gr_name
Packit 437b5e
Packit 437b5e
  - context with bad arguments:
Packit 437b5e
      badargs.diagnose (getgrgid, "(int)")
Packit 437b5e
Packit 437b5e
  - it returns a PosixGroup for an existing group:
Packit 437b5e
      expect (prototype (getgrgid (0))).to_be "PosixGroup"
Packit 437b5e
  - it fetches a group by gid:
Packit 437b5e
      expect (getgrgid (0).gr_name).to_be (groot)
Packit 437b5e
      expect (getgrgid (0).gr_gid).to_be (0)
Packit 437b5e
      expect (type (getgrgid (0).gr_mem)).to_be "table"
Packit 437b5e
Packit 437b5e
Packit 437b5e
- describe getgrnam:
Packit 437b5e
  - before:
Packit 437b5e
      getgrgid, getgrnam = posix.getgrgid, posix.getgrnam
Packit 437b5e
      groot = getgrgid (0).gr_name
Packit 437b5e
Packit 437b5e
  - context with bad arguments:
Packit 437b5e
      badargs.diagnose (getgrnam, "(string)")
Packit 437b5e
Packit 437b5e
  - it returns 'nil' for a non-existent group:
Packit 437b5e
      expect (getgrnam "veryunlikelygroupname").to_be (nil)
Packit 437b5e
  - it returns a PosixGroup for an existing group:
Packit 437b5e
      expect (prototype (getgrnam (groot))).to_be "PosixGroup"
Packit 437b5e
  - it fetches a group by name:
Packit 437b5e
      expect (getgrnam (groot).gr_name).to_be (groot)
Packit 437b5e
      expect (getgrnam (groot).gr_gid).to_be (0)
Packit 437b5e
      expect (type (getgrnam (groot).gr_mem)).to_be "table"
Packit 437b5e
Packit 437b5e
Packit 437b5e
- describe setgrent:
Packit 437b5e
  - before:
Packit 437b5e
      setgrent = grp.setgrent
Packit 437b5e
Packit 437b5e
  - context with bad arguments:
Packit 437b5e
      badargs.diagnose (setgrent, "()")
Packit 437b5e
Packit 437b5e
  - it returns 'nil':
Packit 437b5e
      expect (setgrent ()).to_be (nil)
Packit 437b5e
  - it rewinds the group database:
Packit 437b5e
      g = grp.getgrent ()
Packit 437b5e
      grp.getgrent ()
Packit 437b5e
      setgrent ()
Packit 437b5e
      expect (grp.getgrent ()).to_equal (g)