Commit Graph

205 Commits

Author SHA1 Message Date
Jorge Aparicio
43e019dfc4 cache Cargo artifacts
notable changes in the docker-based testing infrastructure

- the docker containers can now modify $CARGO_HOME, to re-use the outer
  Cargo registry, and the target directory to re-use build artifacts.

- the docker containers are removed when their execution finishes
  because it's no longer necessary to re-start them to inspect them
  because all the interesting output is in the outer target directory
2016-09-30 17:39:36 -05:00
Jorge Aparicio
cab88e6133 only x86-ish targets can use an unprefixed nm 2016-09-30 13:57:06 -05:00
Jorge Aparicio
72802069a2 build.rs: print rerun-if-change for all the C/asm sources 2016-09-29 19:45:59 -05:00
Jorge Aparicio
62258b5188 ignore duplicated get_pc_thunk symbols 2016-09-29 19:20:34 -05:00
Jorge Aparicio
b5797dc2a2 adapt to new testing infrastructure 2016-09-29 18:50:04 -05:00
Jorge Aparicio
f77ca915c4 add an opt-in cargo feature to build intrinsics from compiler-rt source
closes #63
cc #66
2016-09-29 16:06:24 -05:00
Jorge Aparicio
69e93de9d9 appveyor: stop gisting the disassembly
it's flaky in its current form and Travis is not producing gist either.
2016-09-29 06:43:25 -05:00
Jorge Aparicio
52383edf3e Merge pull request #76 from alexcrichton/more-test
Prep for and expand test infrastructure
2016-09-29 06:43:16 -05:00
Alex Crichton
8e161a791a 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
c56a3f8a6e 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
b7fa7d3a59 put weak mem* symbols behind an opt-in Cargo feature
closes #64
cc #66
2016-09-22 18:02:25 -05:00
homunkulus
d5e38beef9 Auto merge of #71 - japaric:aeabi-aliases, r=japaric
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
Jorge Aparicio
d34be6ab4e add missing aeabi aliases 2016-09-22 17:02:36 -05:00
homunkulus
b46719ee42 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
9e50598b70 Merge pull request #68 from japaric/another-thumb
test the thumbv7em-none-eabihf target
2016-09-22 12:24:01 -05:00
Jorge Aparicio
dafe47bc2b fix build.rs
we don't want to match musleabihf targets
2016-09-22 11:56:34 -05:00
Jorge Aparicio
bfa92a862b avoid division overflow in idivmod test 2016-09-22 10:32:15 -05:00
Jorge Aparicio
0404438809 test the thumbv7em-none-eabihf target 2016-09-22 06:15:05 -05:00
Jorge Aparicio
384c48ce9b 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
337bd7e209 armhf: don't compare our impls against gcc_s 2016-09-21 21:14:38 -05:00
Jorge Aparicio
225d4c9d45 avoid division overflow in idivmod test 2016-09-17 21:10:41 -05:00
Jorge Aparicio
08c9ff730c osx: link to dylib, windows: always return None 2016-09-17 20:23:58 -05:00
Jorge Aparicio
9493c37455 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
9d74cf08b8 homu test 2016-09-10 19:12:50 -05:00
Jorge Aparicio
8359013890 test for homu 2016-09-10 18:37:35 -05:00
Jorge Aparicio
e80fca6469 appveyor: test on auto and try only 2016-09-10 16:54:54 -05:00
Jorge Aparicio
cc95697974 homu-ify 2016-09-10 16:49:32 -05:00
Jorge Aparicio
a91bf77c44 Merge pull request #58 from japaric/ci
travis: use latest docker image
2016-08-29 22:25:49 -05:00
Jorge Aparicio
170a977587 tell cargo which linker to use 2016-08-29 21:35:53 -05:00
Jorge Aparicio
f0b6314737 install less stuff
it's already installed in the docker image
2016-08-29 21:25:23 -05:00
Jorge Aparicio
9b47cff39b travis: use latest docker image 2016-08-29 21:21:59 -05:00
Jorge Aparicio
c91a6d1373 Merge pull request #57 from japaric/ci
travis: simplify ci scripts
2016-08-29 20:55:09 -05:00
Jorge Aparicio
bc8f572c9f pin xargo and gist versions 2016-08-29 20:37:41 -05:00
Jorge Aparicio
2f41babd74 fix typo 2016-08-29 20:36:52 -05:00
Jorge Aparicio
1ac627839d travis: simplify ci scripts 2016-08-29 19:31:49 -05:00
Jorge Aparicio
948ada48b5 print rustup version 2016-08-27 12:34:39 -05:00
Jorge Aparicio
6c5dfe9f20 Merge pull request #56 from japaric/appveyor
appveyor: use rustup
2016-08-27 11:47:58 -05:00
Jorge Aparicio
b2ea9d582f appveyor: use rustup 2016-08-27 11:37:35 -05:00
Jorge Aparicio
6288f23368 Merge pull request #55 from japaric/gist
use the gist gem instead of the gist crate
2016-08-23 23:30:15 -05:00
Jorge Aparicio
0bf085bc21 set language: ruby on osx only 2016-08-23 21:20:57 -05:00
Jorge Aparicio
2a8b2c25a4 use newer docker image
it comes with ruby pre-installed
2016-08-23 21:19:18 -05:00
Jorge Aparicio
51aabf3c32 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
a687b97858 README: when and how to use this crate 2016-08-23 20:35:30 -05:00
Jorge Aparicio
09785557c0 README: add AppVeyor badge 2016-08-23 20:23:28 -05:00
Jorge Aparicio
2c520f10b9 README: fix link 2016-08-23 20:17:39 -05:00
Jorge Aparicio
47c5322e3c Merge pull request #54 from japaric/gist
CI: gist the disassemblies
2016-08-22 21:48:09 -05:00
Jorge Aparicio
316f5cb9ba 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
5c9bfabcdf appveyor: Use gist to post disassembly 2016-08-22 17:49:39 -05:00
Matt Ickstadt
27cbb963a3 travis: Use wgetpaste to post disassemblies to gist 2016-08-22 17:49:39 -05:00
Jorge Aparicio
9307ee99b5 Merge pull request #52 from mattico/add-readme-port-help
Add a `Porting Reminders` section to the README
2016-08-21 18:13:29 -05:00