| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
We recently added a CDN in front of our CI mirrors as it's faster and
cheaper for us. This switches libc's CI to use it instead of accessing
the underlying bucket directly.
|
|
|
|
|
|
|
|
| |
Previously mirrors were stored in the rust-lang-ci2 bucket, which is
meant to store temporary data (the CI artifacts). This switches the code
to fetch from the new mirrors bucket.
The old files won't be removed, but they won't be backed up either.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commits adds a second FreeBSD 12 build job,
and splits the implementation of the FreeBSD module
into two modules, one for FreeBSD 11, and one for FreeBSD 12.
The FreeBSD 11 module is compiled always by default, and is
mostly forward compatible with FreeBSD 12 systems.
The FreeBSD 12 module is only built for now in libc's CI,
and uses FreeBSD 12 data types and APIs, linking to symbols
that are only available in FreeBSD 12.
Basically, when LIBC_CI env variable is defined, and the host
system is a FreeBSD 12 system, then the FreeBSD 12 module is
automatically built and tested. Conditional compilation is done
using a `cfg(freebsd12)` flag.
This commit also re-enables many tests, and documents why
some remain disabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a `ci/build.sh` script that checks that libc builds correctly
for some common configurations (`--no-default-features`, `default`,
`extra_traits`) on most targets supported by Rust since Rust 1.13.0 (the oldest
Rust version that libc supports).
The build matrix is refactored into two stages.
The first stage is called `tools-and-build-and-tier1` and it aims to discover
issues quickly by running the documentation and linter builds, as well as
checking that the library builds correctly on all targets in all supported
channels and "problematic" Rust versions; Rust versions adding major new
features like `repr(align)`, `union`, etc. This first stage also runs
libc-test for the tier-1 targets on linux and osx. These builds finish
quickly because no emulation is necessary.
The second stage is called `tier2` and it runs libc-test for all other targets
for which we are currently able to do so.
Closes #1229 .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It wasn't expecting a `*.d` file to exist, now it does.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This works by specifying a "runner" for actually executing the binary.
This doesn't apply to the Android or NetBSD runs because there
isn't a simple binary that just runs the executable.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now create an additional binary `linux_fcntl` for testing this
since there are header conflicts when including all necessary headers.
This binary is run on all platforms even though it's empty on all non-
Android/non-Linux platforms.
Testing has been switched from a custom binary to using a runner-less
test (or pair of tests). This means that for local development a simple
`cd libc-test && cargo test` will run all the tests. CI has also been
updated here to reflect that.
|
|
|
|
|
|
| |
It's now broken due to changes in the `gcc` crate and having a too-old compiler,
and in general it's unfortunately architecturally so different from the other
test frameworks that it's difficult to maintain over time.
|
|
|
|
|
|
|
| |
We can't test s390x because qemu segfaults but we can at least verify that it
compiles.
Closes #650
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also cache on appveyor to speed up builds.
|
| |
|
|
|
|
|
|
|
|
| |
- allow QEMU name to have subdirectory inside (replace `/` by `__` in
the filename)
- add a new code path for plain qcow2 image (for efficient bandwidth
usage, the qcow2 is expected to use compressed qcow2 format)
- move freebsd image to explicitly download the gzipped QEMU
|
|
|
|
|
| |
Download a trunk OpenWRT toolchain and verify bindings against that. Also fixup
a few stray errors today
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we were somewhat half-Docker, half-Travis, half apt-get, etc. This
commit alters the CI infrastructure to use Docker images for each target. This
should make it much easier to update the images and tweak various bits and
pieces of installed software. Additionally, it's also much clearer now what's
needed for each suite of tests!
Some images were updated a bit (e.g. musl is now 1.1.14), but other images
encountered failures when updating so they're not getting updated just yet.
|
|
|
|
|
|
|
|
| |
This commit adds support to test all libc definitions on both OpenBSD and
FreeBSD via QEMU userspace emulation. Specially prepared images for each OS are
used which are essentially intended to run a script on startup and then exit.
Documentation has been added to the `ci/README.md` file describing this new
system.
|
| |
|
|
|
|
|
| |
It's got a new toolchain which should hopefully support some more modern
definitions.
|
| |
|
| |
|
| |
|
| |
|