Commit Graph

373 Commits

Author SHA1 Message Date
bors
b905aef340 Auto merge of #1281 - semarie:openbsd-test, r=gnzlbg
cleanup libc-test for OpenBSD

here a cleanup for libc-test for OpenBSD

Some elements (compat for old and now unsupported OpenBSD versions) could be removed, but I think it is better to address them after this PR is merged.

the testsuite for OpenBSD still pass with it (well, with #1280)

r? @gnzlbg
2019-02-24 17:27:39 +00:00
Sébastien Marie
91748de469 cleanup libc-test for OpenBSD 2019-02-24 15:47:06 +01:00
gnzlbg
722b3e5337 Formatting 2019-02-24 15:14:02 +01:00
gnzlbg
70e0c4e877 Cleanup DragonflyBSD in libc-test/build.rs 2019-02-24 15:13:47 +01:00
gnzlbg
87f10ab9ee Cleanup NetBSD logic in libc-test/build.rs 2019-02-24 15:02:08 +01:00
gnzlbg
09afebe655 Clean up Redox, Solaris, and CloudABI 2019-02-24 14:38:01 +01:00
gnzlbg
0980cf593a Cleanup Windows libc-test build.rs 2019-02-24 13:11:14 +01:00
gnzlbg
f5cbdbc2b9 Clean libc-test for apple targets
This cleans up the build.rs of `libc-test` for apple targets.

I wanted to update the docker containers of some targets so that we can start
testing newer currently-skipped APIs properly, but it is impossible to figure
out which headers and APIs are skipped for each target.

This PR separates the testing of apple targets into its own self-contained
function. This allows seeing exactly which headers are included, and which items
are skipped. A lot of work will be required to separate the testing of all major
platforms and make the script reasonable.

During the clean up, I discovered that, at least for apple targets, deprecated
but not removed APIs are not tested. I re-enabled testing for those, and fixed
`daemon`, which was not properly linking its symbol. I also added the
`#[deprecated]` attribute to the `#[deprecated]` APIs of the apple targets. The
attribute is available since Rust 1.9.0 and the min. Rust version we support is
Rust 1.13.0.

Many other APIs are also currently not tested "because they are weird" which I
interpret as "the test failed for an unknown reason", as a consequence:

* the signatures of execv, execve, and execvp are incorrect (see
  https://github.com/rust-lang/libc/issues/1272)

* the `sig_t` type is called `sighandler_t` in libc for some reason:
  https://github.com/rust-lang/libc/issues/1273

This probably explains why some other things, like the
`sa_handler`/`sa_sigaction` fields of `sigaction` were skipped. The field is
actually a union, which can be either a `sig_t` for the `sa_handler` field, or
some other type for the `sa_sigaction` field, but because the distinction was
not made, the field was not checked.

The latest ctest version can check volatile pointers, so a couple of skipped
tests are now tested using this feature.
2019-02-22 19:18:02 +01:00
bors
577fdc86b2 Auto merge of #1248 - Ralith:flowinfo, r=gnzlbg
Expose IPV6_FLOWINFO* on Linux
2019-02-21 09:21:11 +00:00
bors
c2904a70fa Auto merge of #1261 - glebpom:master, r=gnzlbg
Add AF_ALG constants and structures
2019-02-20 08:43:11 +00:00
Gleb Pomykalov
34c96d74e1 Add comment on ALG_SET_AEAD_* exclusion 2019-02-19 18:14:01 +03:00
Gleb Pomykalov
d0f4c6e0fc Ignore ALG_SET_AEAD_* constants on MUSL tests 2019-02-19 16:35:25 +03:00
bors
0e1fbe33e9 Auto merge of #1257 - vi:ORIGDSTADDR, r=gnzlbg
Add IP_ORIGDSTADDR and others on FreeBSD.

A follow-up from #1252.

CC @asomers.

r? @gnzlbg
2019-02-18 16:00:56 +00:00
Gleb Pomykalov
32226f5d85 Include if_alg.h. Limit AF_ALG constants to only linux and android. 2019-02-18 18:19:29 +03:00
Vitaly _Vi Shukela
486de2ba2b
Ignore IP_ORIGDSTADDR in test for FreeBSD for now. 2019-02-14 02:37:01 +03:00
gnzlbg
c1e0a3f3b1 Always use the latest ctest 2019-02-12 18:34:56 +01:00
Benjamin Saunders
b59eb6b423 Expose IPV6_FLOW* on Linux 2019-02-08 12:50:25 -08:00
gnzlbg
0a5484ea72 Check style using rustfmt and reformat 2019-02-07 11:13:38 +01:00
Alan Somers
38cf5b15c6 Add an integration test for the cmsg(3) functions.
Since these are defined in C as macros, they must be reimplemented in
libc as Rust functions.  They're hard to get exactly right, and they
vary from platform to platform.  The test builds custom C code that uses
the real macros, and compares its output to the Rust versions' output
for various inputs.

Skip the CMSG_NXTHDR test on sparc64 linux because it hits a Bus Error.

Issue #1239

Skip the entire cmsg test program on s390x because it dumps core
seemingly before the kernel finishes booting.

Issue #1240
2019-02-05 08:26:17 -07:00
bors
942f6ae707 Auto merge of #1217 - Susurrus:rfc_2235, r=gnzlbg
RFC 2235 - Implement PartialEq,Eq,Hash,Debug for all types

First pass at implementing [RFC2235](https://github.com/rust-lang/rfcs/blob/master/text/2235-libc-struct-traits.md). I just started with `PartialEq`/`Eq` and tested locally on my x64 Linux system. Definitely going to run into other types for other platforms that need this treatment, but thought I'd start small.

Open question is whether this should also rely on the `align` feature, which should improve which types can be auto-derived versus manually implemented (as it removed a lot of odd-sized padding arrays). My first pass here doesn't do that, but I might test it out to see if it does simplify quite a few structs. I think it might also be nice to have as it makes it easier for contributors to add new structs.

Part of rust-lang/rust#57715
2019-02-05 07:38:45 +00:00
Vincent Dagonneau
dfb7c0caba Added the proper libc header to libc-test; Removed some defines as they seem to be too new. 2019-02-04 09:11:21 +01:00
Bryant Mairs
868a85d05d Implement PartialEq,Eq for all types 2019-02-02 13:06:58 -08:00
Vincent Dagonneau
da27966859 Fixed typo; Added inotify headers to the libc-test. 2019-01-28 20:56:15 +01:00
Vincent Dagonneau
eb3e48c62f Added inotify headers to the libc-test. 2019-01-28 19:41:29 +01:00
gnzlbg
5a7b4e7796 MFD_HUGETLB does not appear to be available on x86_64-android 2019-01-21 20:34:43 +01:00
Sébastien Marie
1451f19067 mincore has been removed from OpenBSD 6.5 2019-01-13 09:06:05 +01:00
Alex Zepeda
5a3a0c2a95 Remove sys/ioctl_compat.h from DragonFlyBSD tests.
Per the mailing list[1], sys/ioctl_compat.h has been removed.

1: http://lists.dragonflybsd.org/pipermail/commits/2018-April/672079.html
2019-01-03 21:09:15 -08:00
Mackenzie Clark
af19934f29 normalize to common name sighandler_t 2018-12-17 19:31:31 -08:00
Mackenzie Clark
4c32b9f4b9 move everything back into window mod with the type alias for msvc 2018-12-17 17:57:37 -08:00
Mackenzie Clark
2f25aaa235 add edge case for mingw 2018-12-17 17:24:37 -08:00
Mackenzie Clark
313483ba2e add signal and raise bindings
separate for gnu and msvc


scope resolve c_int

these types are not allowed, and more scope resolution


use size_t
2018-12-16 16:23:53 -08:00
Tobias Klauser
df277e295b Add MFD_HUGETLB const for linux
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2018-12-13 13:27:00 +01:00
Craig M. Brandenburg
6d22f54440 Add support for SysV semaphores on Apple platform 2018-12-08 06:50:19 -07:00
Tobias Klauser
cc22997fd2 Add AF_XDP, PF_XDP and SOL_XDP consts for linux 2018-12-04 21:04:13 +01:00
dependabot[bot]
406877e891
Bump ctest from 0.2.7 to 0.2.8
Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/alexcrichton/ctest/releases)
- [Commits](https://github.com/alexcrichton/ctest/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-28 07:00:26 +00:00
bors
4113bf258d Auto merge of #1150 - rust-lang:dependabot/cargo/ctest-0.2.7, r=alexcrichton
Bump ctest from 0.2.6 to 0.2.7

Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.6 to 0.2.7.
<details>
<summary>Commits</summary>

- See full diff in [compare view](https://github.com/alexcrichton/ctest/commits/0.2.7)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ctest&package-manager=cargo&previous-version=0.2.6&new-version=0.2.7)](https://dependabot.com/compatibility-score.html?dependency-name=ctest&package-manager=cargo&previous-version=0.2.6&new-version=0.2.7)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
2018-11-27 18:53:47 +00:00
bors
50719a33bd Auto merge of #1105 - gz:fix-timestamping, r=gnzlbg
Added SOF_TIMESTAMPING, fix too narrow scoping for SO_TIMESTAMPING.

Fixes issues raised in #1104 and #1103.
2018-11-27 09:55:53 +00:00
dependabot[bot]
157bb12a92
Bump ctest from 0.2.6 to 0.2.7
Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.6 to 0.2.7.
- [Release notes](https://github.com/alexcrichton/ctest/releases)
- [Commits](https://github.com/alexcrichton/ctest/commits/0.2.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 06:20:46 +00:00
Tom Parker-Shemilt
75071fe11f Merge branch 'master' into strcase-various 2018-11-23 22:35:16 +00:00
Tom Parker-Shemilt
d75fc9c34a strcase*: add redox support 2018-11-23 21:26:02 +00:00
Tom Parker-Shemilt
b75803751f strcase*: Add cloudabi support 2018-11-23 21:26:02 +00:00
Gerd Zellweger
2f83a7a511 Added missing net_tstamp.h header to tests.
Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>
2018-11-21 17:03:34 -08:00
Tom Parker-Shemilt
d931cd27ea Merge branch 'master' into strcase-various 2018-11-21 23:55:01 +00:00
Alex Crichton
91bd079e23 Prepare for being included via crates.io into std
This commit prepares the `libc` crate to be included directly into the
standard library via crates.io. More details about this can be found on
rust-lang/rust#56092, but the main idea is that this crate now depends
on core/compiler-builtins explicitly (but off-by-default).

The main caveat here is that this activates `no_core` when building as
part of libstd, which means that it needs to explicitly have an `iter`
and `option` module for the expansion of `for` loops to work.
2018-11-21 15:27:56 -08:00
gnzlbg
5c1a6b8a6d splice the common libc functions and ctypes throughout the library 2018-11-21 20:58:02 +01:00
Tom Parker-Shemilt
9c6714e54d Define _WITH_GETLINE for FreeBSD so we can move getline into general Unix 2018-11-20 23:50:37 +00:00
gnzlbg
aca32d997c re-format 2018-11-19 15:24:41 +01:00
Stephen Barber
60ab3041a1 Add support for SIGSYS in signalfd
Linux 4.18 added support for SIGSYS info in signalfd. Add the new
fields to signalfd_siginfo.

While the kernel has support for these new fields now, no libc has
shipped a release with the new signalfd fields.
2018-11-06 16:51:20 -08:00
dependabot[bot]
4f970bfd88
Bump ctest from 0.2.4 to 0.2.6
Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.4 to 0.2.6.
- [Release notes](https://github.com/alexcrichton/ctest/releases)
- [Commits](https://github.com/alexcrichton/ctest/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-31 05:49:22 +00:00
Alan Somers
cd35cdaafa syntax fix 2018-10-30 14:04:04 -06:00
Alan Somers
a9c204ccbc Include <sys/extattr.h> during CI 2018-10-30 13:48:23 -06:00
gnzlbg
83f301d7d5 update ctest version 2018-10-19 15:02:30 +02:00
bors
878e6aea1f Auto merge of #1075 - tbu-:pr_test_statics, r=alexcrichton
Theoretically test statics

There are none of them in `libc` except for `__progname` on Android, but
that one cannot be tested because it's not present in any header files.
2018-09-13 15:45:32 +00:00
Tobias Bucher
eb6bdf35dd Revert accidentally committed test ignores 2018-09-13 07:24:47 +02:00
Tobias Bucher
45f191d192 Update to non-yanked version of ctest 2018-09-12 23:27:28 +02:00
Johannes Lundberg
f80b024850 Add SO_REUSEPORT_LB to whitelist for build tests 2018-09-10 20:35:07 +01:00
Steven Fackler
0f461200d4 Add a couple more ELF types 2018-09-08 10:03:33 -07:00
Tobias Bucher
8b1d846444 Theoretically test statics
There are none of them in `libc` except for `__progname` on Android, but
that one cannot be tested because it's not present in any header files.
2018-09-05 09:48:49 +02:00
Steven Fackler
063c721c96 Add some more elf types 2018-09-02 22:08:44 -07:00
Alex Crichton
e72f187cd4 Update ctest to 0.2 2018-08-13 16:58:13 -07:00
Alex Crichton
83f78df8c6 Fix OSX builders on CI
Looks like Travis has moved on from our old images, so we're forced to
update.
2018-08-01 07:49:22 -07:00
Linus Färnstrand
5f38367da3 Add testing with align feature 2018-07-29 18:54:45 +02:00
Pascal Bach
ebe0feb55d Add linux/module.h to test build 2018-07-17 18:41:48 +02:00
bors
5ac35c85fe Auto merge of #1039 - alesharik:master, r=alexcrichton
Implement statfs for dragonfly, freebsd and openbsd
2018-07-17 13:47:45 +00:00
alesharik
5ec8699bcb Implement statfs for dragonfly, freebsd and openbsd 2018-07-17 00:17:55 +03:00
Sébastien Marie
fec9baf0a3 remove ignore for published OpenBSD versions 2018-07-14 06:58:37 +02:00
Mateusz Mikuła
27043ec8df Add ENOATTR for Android 2018-07-04 20:35:31 +02:00
Andrew Cann
1cc2f1e9b2 add net/if_arp.h definitions 2018-06-04 11:06:57 +08:00
Andrew Cann
651d6feafe add rtentry 2018-06-01 13:10:15 +08:00
Andrew Cann
b02c6a328d Remove ioctl symbols for emscripten 2018-05-30 18:08:28 +08:00
Andrew Cann
93f9167bea Add linux socket ioctl defs 2018-05-30 17:27:18 +08:00
Bastian Köcher
6a6dc86fb2 Fixes test for android getifaddrs 2018-05-26 10:48:02 +02:00
Andrew Morrow
96ee7bf81c Add new sendfile flags for FreeBSD 2018-05-17 08:54:53 -06:00
Jake McGinty
0e3cf4737b add pktinfo consts and structs for linux and apple 2018-04-22 21:24:33 -07:00
gnzlbg
dfee17f1ff fix this for stdbuild only 2018-04-15 14:50:00 +02:00
gnzlbg
dc1956e2ef fix undefined behavior due to incorrect packing on macosx 2018-04-15 14:45:26 +02:00
Sébastien Marie
16527634cc Add MAP_STACK constant to OpenBSD
The mmap(2) flag indicate that the mapping is used as a stack.

https://man.openbsd.org/mmap.2#MAP_STACK
https://marc.info/?l=openbsd-tech&m=152035796722258&w=2
2018-03-19 08:39:35 +01:00
Wesley Moore
be2f062767 Fix test suite on FreeBSD 11 2018-03-12 11:03:46 +11:00
Fredrick Brennan
6d959f1a53 Fix BSD errors (hopefully) 2018-03-04 13:11:04 +00:00
bors
8bed48a751 Auto merge of #931 - bdrewery:posix_spawn_freebsd, r=alexcrichton
Add posix_spawn bindings for FreeBSD
2018-02-28 17:30:10 +00:00
gnzlbg
f9c396803c perform ctest with and without std 2018-02-27 17:36:45 +01:00
Bryan Drewery
92d50c9c79 Add posix_spawn bindings for FreeBSD 2018-02-26 16:45:41 -08:00
Linus Färnstrand
750fcf5c5a Add missing netfilter constants
Was able to move some of them up one level so they are valid on more
platforms with less duplication
2018-02-25 22:45:43 +01:00
Linus Färnstrand
69ae346034 Add genetlink.h constants 2018-02-22 14:58:22 +01:00
luozijun
0f4ae0b8f1 Add constants IFF_TUN, IFF_TAP and IFF_NO_PI on linux, android and fuchsia system 2018-02-07 11:12:29 +08:00
gnzlbg
53e4733180 add macosx sysv ipc shared memory 2018-02-03 14:43:38 +01:00
bors
782794985c Auto merge of #902 - gnzlbg:missing_linux_intrinsics, r=malbarbo
Missing linux intrinsics
2018-02-01 15:41:35 +00:00
Linus Färnstrand
4d5ed47efd Add netfilter constants to Linux and Android 2018-01-30 23:08:00 +01:00
bors
11cabded2b Auto merge of #909 - alexcrichton:posix-spawn, r=alexcrichton
Add posix_spawn bindings
2018-01-26 01:34:54 +00:00
Alex Crichton
4621a34864 Add posix_spawn bindings 2018-01-25 17:12:24 -08:00
Greg V
c13302d87e Add rtprio (realtime priority) API for FreeBSD and DragonFly 2018-01-23 13:13:48 +03:00
Greg V
2aeb382bb8 Ignore new FreeBSD constants in tests
CI still runs version 10
2018-01-22 18:15:36 +03:00
Greg V
6725fd6aef Add FreeBSD process descriptors API
Available since FreeBSD 9.0, this API allows using local descriptors
instead of global PIDs. It works in Capsicum sandboxes.
2018-01-22 18:15:36 +03:00
gnzlbg
c099bb9ba3 add sys/auxv.h to build.rs 2018-01-19 12:11:14 +01:00
Alex Crichton
1f29ac3167 Move some containers to ubuntu 18.04
Apparently 17.04 is broken now?
2018-01-18 11:21:30 -08:00
Bryant Mairs
46933f0311 Add sockaddr_ctl on Mac 2018-01-14 22:26:46 -08:00
bors
1e80d93800 Auto merge of #896 - cneira:master, r=alexcrichton
added EPOLL(5)  for Illumos (Solaris fork)

EPOLL(5)  is being used in crates like mio and iovec , this change allows those crates and other that depends on EPOLL(5)  to be built in illumos systems.
2018-01-12 22:12:26 +00:00
neirac
3092748c95 adding epoll for illumos 2018-01-11 15:25:00 +00:00
Kelsey Z
586867d39a feat(linux): add mntent struct and related functions
Useful when playing around with mounting points, sadly not a common
interface
2018-01-11 21:57:30 +13:00
luozijun
536b5cfa86 Add bpf constant on macOS 2017-12-27 04:04:46 +08:00