Commit Graph

2119 Commits

Author SHA1 Message Date
Alex Crichton
e7c804a9b0 Expand and refactor teting infrastructure
This commit moves over most of the testing infrastructure to in-tree docker
images that are all dispatched to from Travis (no other test configuration).
This allows versioning modifications to the test infrastructure as well as the
code itself. Additionally separate docker images allows for easy modification of
one without worrying about tampering of others as well as easy addition of new
targets by simply adding a new `Dockerfile`.

Additionally this commit bundles the master version of the `compiler-rt` source
repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt
library itself is compiled as a `cdylib` which is then dynamically located at
runtime and we look for symbols in. There's a few hoops here, but they currently
get the job done.

All tests now execute against both gcc_s and compiler-rt, and this
testing strategy is now all hidden behind a macro as well (refactoring
all existing tests along the way).
2016-09-28 22:09:55 -07:00
homunkulus
10146b3334 Auto merge of #73 - japaric:weak, r=japaric
put weak mem* symbols behind an opt-in Cargo feature

closes #64
cc #66
2016-09-22 23:59:48 +00:00
Jorge Aparicio
2dc91bd96c put weak mem* symbols behind an opt-in Cargo feature
closes #64
cc #66
2016-09-22 18:02:25 -05:00
homunkulus
bc07830e09 Auto merge of #71 - japaric:aeabi-aliases, r=japaric
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
Jorge Aparicio
2d630eedfd add missing aeabi aliases 2016-09-22 17:02:36 -05:00
homunkulus
0223d851b8 Auto merge of #67 - japaric:gcc_s, r=japaric
test our implementations against gcc_s

if it exposes the same intrinsics that we implement -- gcc_s doesn't
implement all the intrinsics for all the architectures.

closes #65

r? @Amanieu
Tested on Linux x86_64 and against the x86_64 and the arm-gnueabi targets. Unclear whether this works on osx or windows.
2016-09-22 22:01:46 +00:00
Jorge Aparicio
ea3aab9701 Merge pull request #68 from japaric/another-thumb
test the thumbv7em-none-eabihf target
2016-09-22 12:24:01 -05:00
Jorge Aparicio
a5b15eef71 fix build.rs
we don't want to match musleabihf targets
2016-09-22 11:56:34 -05:00
Jorge Aparicio
a83c11232e avoid division overflow in idivmod test 2016-09-22 10:32:15 -05:00
Jorge Aparicio
34f17b2ecf test the thumbv7em-none-eabihf target 2016-09-22 06:15:05 -05:00
Jorge Aparicio
bc61db2e36 don't test always against gcc_s
instead test half of the time against gcc_s and the other half test
against the native operation (\*).

(\*) Not all the targets have available a native version of the
intrinsics under test. On those targets we'll end up testing our
implementation against itself half of the time. This is not much of a
problem because we do several quickcheck runs per intrinsic.
2016-09-21 21:38:06 -05:00
Jorge Aparicio
7a56ac6bb4 armhf: don't compare our impls against gcc_s 2016-09-21 21:14:38 -05:00
Jorge Aparicio
294c6a93d8 avoid division overflow in idivmod test 2016-09-17 21:10:41 -05:00
Jorge Aparicio
0ae6c5db88 osx: link to dylib, windows: always return None 2016-09-17 20:23:58 -05:00
Jorge Aparicio
656cd2b308 test our implementations against gcc_s
if it exposes the same intrinsics that we implement -- gcc_s doesn't
implement all the intrinsics for all the architectures.

closes #65
2016-09-16 15:53:14 -05:00
Jorge Aparicio
152f5150f6 homu test 2016-09-10 19:12:50 -05:00
Jorge Aparicio
74459fdf12 test for homu 2016-09-10 18:37:35 -05:00
Jorge Aparicio
4553b1fc76 appveyor: test on auto and try only 2016-09-10 16:54:54 -05:00
Jorge Aparicio
becf6eea62 homu-ify 2016-09-10 16:49:32 -05:00
Jorge Aparicio
e237a46f40 tell cargo which linker to use 2016-08-29 21:35:53 -05:00
Jorge Aparicio
a88958c673 install less stuff
it's already installed in the docker image
2016-08-29 21:25:23 -05:00
Jorge Aparicio
d253b6a2e4 travis: use latest docker image 2016-08-29 21:21:59 -05:00
Jorge Aparicio
80f867f306 pin xargo and gist versions 2016-08-29 20:37:41 -05:00
Jorge Aparicio
17386437c8 fix typo 2016-08-29 20:36:52 -05:00
Jorge Aparicio
a8774eb192 travis: simplify ci scripts 2016-08-29 19:31:49 -05:00
Jorge Aparicio
62d5f58908 print rustup version 2016-08-27 12:34:39 -05:00
Jorge Aparicio
90d58ada7a appveyor: use rustup 2016-08-27 11:37:35 -05:00
Jorge Aparicio
2e516532d1 set language: ruby on osx only 2016-08-23 21:20:57 -05:00
Jorge Aparicio
1ae3b29270 use newer docker image
it comes with ruby pre-installed
2016-08-23 21:19:18 -05:00
Jorge Aparicio
185143e90f use the gist gem instead of the gist crate
hopefully this will work on osx and will make everything more
uniform (appveyor is already using the gem instead of the crate)

closes #51
2016-08-23 20:48:24 -05:00
Jorge Aparicio
ff17cfaa46 README: when and how to use this crate 2016-08-23 20:35:30 -05:00
Jorge Aparicio
72db6febd0 README: add AppVeyor badge 2016-08-23 20:23:28 -05:00
Jorge Aparicio
bcf5a641df README: fix link 2016-08-23 20:17:39 -05:00
Jorge Aparicio
79411ae643 use the gist crate
but not on OSX because it doesn't work there

closes #53
cc #51
2016-08-22 21:22:16 -05:00
Matt Ickstadt
ed393f32a1 appveyor: Use gist to post disassembly 2016-08-22 17:49:39 -05:00
Matt Ickstadt
5e867a2b98 travis: Use wgetpaste to post disassemblies to gist 2016-08-22 17:49:39 -05:00
Matt Ickstadt
6a96cf52b6 Add a Porting Reminders section to the README 2016-08-21 15:49:32 -05:00
Jorge Aparicio
ae9d294297 use utility function to compare the repr of floats
follow up of #43
2016-08-21 11:24:58 -05:00
Jorge Aparicio
43ce7db752 only show disassembly of optimized build
we can't really compare the disassembly of the debug build to
libcompiler-rt.a anyways
2016-08-21 11:09:32 -05:00
Jorge Aparicio
e5455d7f12 Merge pull request #49 from japaric/edge
qc: bias towards generation of edge cases
2016-08-21 11:03:44 -05:00
Matt Ickstadt
30428ec88f Use mem::swap to swap variables 2016-08-20 22:30:02 -05:00
Jorge Aparicio
e4dabb8c32 qc: bias towards generation of edge cases 2016-08-20 22:17:50 -05:00
Matt Ickstadt
fe3c35131f Implement soft float add builtins 2016-08-20 16:06:02 -05:00
Matt Ickstadt
35d68d8ab2 Move integer functions to separate module 2016-08-20 15:55:06 -05:00
Jorge Aparicio
f96d56dc37 Merge pull request #44 from Amanieu/sdiv
Add signed division functions
2016-08-19 09:16:53 -05:00
Amanieu d'Antras
59fe09c493 Add tests for ARM division builtins 2016-08-19 12:13:02 +01:00
Amanieu d'Antras
161234b8b3 Add signed division functions 2016-08-19 12:13:02 +01:00
Jorge Aparicio
3fddb6b427 rename muldi4 to muldi3
closes #42
2016-08-18 21:27:16 -05:00
Jorge Aparicio
f2341f101f Merge pull request #40 from mattico/add-x86_64
Add x86_64 builtins
2016-08-18 20:31:53 -05:00
Jorge Aparicio
ec2ff1e5cf Merge pull request #41 from mattico/dumpbin
appveyor: inspect binaries
2016-08-17 14:39:13 -05:00