summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2015-10-28Fix handling of sockaddr_un lengthsGeoffrey Thomas
The returned length of AF_UNIX sockaddrs is significant, and generally does not match the length of the entire structure. For filesystem sockets, this is ignorable because the path is also NUL-terminated, but for unbound sockets (e.g., a socketpair) or abstract-namespace sockets (a Linux extension where the address is an arbitrary bytestring), we need to keep track of the length. Fixes #177. Also add a UnixAddr::new_abstract function and some better handling of abstract-namespace socket addresses to fix #169.
2015-10-20Only run signalfd tests when feature is setCarl Lerche
2015-10-20Scope test by signalfdCarl Lerche
2015-10-07Add sys::select::FdSet::clear.Utkarsh Kukreti
2015-10-06Add support for sendmsg(2), recvmsg(2), and cmsg(3)Geoffrey Thomas
The best specification for control message layout appears to be [RFC 2292, section 4](https://tools.ietf.org/html/rfc2292#section-4), despite this not being a wire protocol. These definitions have also been checked against glibc 2.19 <bits/socket.h> and Linux 4.0 <linux/socket.h>, and tested on Debian 8.1 and FreeBSD 10.2 x86_64. The API differs a bit from the cmsg(3) API for type-safety reasons (and also because the cmsg(3) API is terrible). See test/sys/test_socket.rs for an example. Only supports SCM_RIGHTS at the moment. Fixes #88.
2015-09-28added convenience functions for setting O_NONBLOCK on message queuesMarkus Jais
2015-09-28Revert "Add support for sendmsg(2), recvmsg(2), and cmsg(4)"Carl Lerche
This reverts commit 046af7d1ba82506f9bc48e62ac0584361025fc02.
2015-09-28Add sys::select::FdSet and sys::select::select.Utkarsh Kukreti
2015-09-24Add support for sendmsg(2), recvmsg(2), and cmsg(4)Geoffrey Thomas
The best specification for control message layout appears to be [RFC 2292, section 4](https://tools.ietf.org/html/rfc2292#section-4), despite this not being a wire protocol. These definitions have also been checked against glibc 2.19 <bits/socket.h> and Linux 4.0 <linux/socket.h>, and tested on Debian 8.1 and FreeBSD 10.2 x86_64. The API differs a bit from the cmsg(4) API for type-safety reasons (and also because the cmsg(4) API is terrible). See test/sys/test_socket.rs for an example. Only supports SCM_RIGHTS at the moment. Fixes #88.
2015-09-10Add signalfd supportAlex Gulyás
2015-09-03added support and tests for mq_setattrMarkus Jais
2015-09-03test_stat: Remove st_rdev testGeoffrey Thomas
On FreeBSD, st_rdev seems to be set to a unique value (correlated with, but not identical to, st_ino) per file. Neither the FreeBSD nor Linux man page makes any promises on st_rdev for regular files; useful test coverage of st_rdev would check it on a special file. All tests now pass on FreeBSD.
2015-08-21Merge remote-tracking branch 'posborne/ioctl-rework'Carl Lerche
2015-08-17renamed test methods for mqueue and added mq_unlinkMarkus Jais
2015-08-12ioctl: return result type rather than raw integerPaul Osborne
This change also adds macro usages in the tests. Nothing is asserted but the use of the macros provides a basic compile-time check that is otherwise missing. Signed-off-by: Paul Osborne <osbpau@gmail.com>
2015-08-12conditionally enable ioctl test for linuxCorey Richardson
2015-08-12Fix testsCorey Richardson
2015-07-27Make it compatible for Android.Tim JIANG
* Fixed an unused_import error in `termios.rs` for Android. * Fixed undefined references to `preadv` and `pwritev` for Android - At least they don't exist from API level 3 to 21. * Fixed the uid > 0 and gid > 0 checks in `stat`'s tests - Running the tests by root is possible, especially when running on a rooted Android device. Those changes made rust-nix buildable (again) on Android. All the tests passed as well.
2015-07-18added mq_getattr for LinuxMarkus Jais
2015-07-13Add status to WaitStatusJoseph Kain
* Extend the enums in WaitStatus to include all process states (signaled, stopped, exited, continued). * Decode status from waitpid * Return appropate WaitStatus * Update tests to use the new WaitStatus * Add new tests for specific status values
2015-07-13Add support for preadv and pwritev to sys/uio on Linux.Trip Volpe
2015-07-10Fix comparisonCarl Lerche
2015-07-10Fix unit tests as blank files can still have blocksAlex Newman
On an encrypted filesystem everything acts like a symlink $ stat baz File: ‘baz’ Size: 0 Blocks: 16 IO Block: 4096 regular empty file Device: 26h/38d Inode: 6835152 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ posix4e) Gid: ( 1000/ posix4e) Access: 2015-07-10 11:11:21.846851777 -0700 Modify: 2015-07-10 11:11:21.846851777 -0700 Change: 2015-07-10 11:11:21.846851777 -0700 Birth: -
2015-07-09Run 32 bit CI buildsCarl Lerche
2015-07-07make execvpe unit test compile on LinuxMarkus Jais
2015-07-04Fix off-by-one error calling Rng::gen_rangeJoseph Kain
Fix the boundary condition so that we never call Rng::gen_range(64, 64). Helps #144
2015-06-08added wait system call and unit testMarkus Jais
2015-06-05Add pwrite and preadFlorian Hartwig
2015-05-28Move nix::mq -> nix::mqueue to mirror headerCarl Lerche
2015-05-21Test sockopt const valuesCarl Lerche
2015-05-19added getpid and getppidMarkus Jais
2015-05-16cleaned up mq unit testsMarkus Jais
2015-05-12ioctl: implement generic support for the ioctl syscall and supporting functionsPaul Osborne
This commit provides a new implementation for ioctl that is much more generic, allowing for clients to use send any manner of ioctl requests at special files. The implementation provides two main features that help to raise the level of abstraction over that provided by libc. 1. The module now provides functions that provide the same functionality as the linux kernel _IO* macros. These are used frequently in the linux kernel for building ops for ioctls. The use of these helper functions are not required. 2. Functions are provided for the 3 main types of ioctl usage patterns (read, write, and execute). For many subystems, the read() call which returns a Result<T> and the write calls taking a &T provide a nice interface. All of the methods wrapping ioctl are unsafe and will probably need to remain that way unless knowledge of the semantics of every possible ioctl call are added to the nix library. The best that exists for ioctls are some conventions around the op, but even these conventions are really only used for newer devices added to the kernel. This change resolves #108
2015-05-08Add lstatSkyler Hawthorne
2015-05-05feat: add execvpeQingping Hou
2015-04-27Basic Posix MQ supportMarkus Jais
2015-04-11Add socketpairFlorian Hartwig
2015-04-03'derive(Copy)' needs Clone nowFlorian Hartwig
2015-04-01Remove usage of std::num::IntCarl Lerche
2015-03-28Track Rust nightlyCarl Lerche
2015-03-25Use libc from crates.ioCarl Lerche
2015-03-25Tweak conversion in testCarl Lerche
2015-03-25Track Rust masterCarl Lerche
2015-03-24NixResult -> nix::Result; NixError -> nix::ErrorCarl Lerche
2015-03-19Track Rust nightliesCarl Lerche
2015-03-16Fix deprecation warningsCarl Lerche
2015-03-13Amend some files to make it compile on arm-linux-androideabi.kennytm
2015-03-13added test for fstatMarkus Jais
2015-02-27Further SockAddr & NixPath cleanupCarl Lerche
2015-02-25Large cleanup, mostly of socket functionsCarl Lerche