Fixing getpwnam stub, adding test cases from pod.

This commit is contained in:
Alex Shinn 2012-10-09 21:52:16 +09:00
parent 5b31263136
commit 23d3d6dce7
3 changed files with 19 additions and 5 deletions

View file

@ -12,4 +12,6 @@
(include-shared "system")
(body
(define (user-information user)
(car (if (string? user) (getpwnam_r user) (getpwuid_r user))))))
(car (if (string? user)
(getpwnam_r user (make-string 1024))
(getpwuid_r user (make-string 1024)))))))

View file

@ -52,9 +52,13 @@
(define-c errno (set-root-directory! "chroot") (string))
(define-c errno getpwuid_r
(uid_t (result passwd) (result (array char arg3))
(value 1024 int) (result pointer passwd)))
(uid_t (result passwd)
(link string)
(value (string-length arg2) int)
(result pointer passwd)))
(define-c errno getpwnam_r
(string (result passwd) (result (array char arg3))
(value 1024 int) (result pointer passwd)))
(string (result passwd)
(link string)
(value (string-length arg2) int)
(result pointer passwd)))

View file

@ -24,4 +24,12 @@
(test #t (integer? (current-session-id)))
;; stress test user-name
(test (user-name (user-information (current-user-id)))
(user-name (user-information (current-user-id))))
(define u (user-information (current-user-id)))
(test (user-name u) (user-name (user-information (current-user-id))))
(define un (user-name (user-information (current-user-id))))
(test un (user-name (user-information (current-user-id))))
(test-end)