Commit Graph

727 Commits

Author SHA1 Message Date
homunkulus 8652c66bdc Auto merge of #82 - mattico:add_pow, r=japaric
Add pow functions

I still want to clean up the commit history, but otherwise I think this is complete. ~~Can you run the tests on it?~~
2016-10-04 01:52:27 +00:00
Jorge Aparicio ff7e3ba2c0 stop compiling compiler-rt implementations
to avoid duplicate symbols
2016-10-03 20:52:14 -05:00
Jorge Aparicio 8a32bd3424 fix duplicate symbol test 2016-10-03 20:20:23 -05:00
Jorge Aparicio 77bca82434 bump rustc-cfg version and show a better error message when it fails 2016-10-03 19:25:32 -05:00
Matt Ickstadt 6622c49be6 Implement powi_f2 2016-10-03 11:20:42 -05:00
homunkulus 954e3b7095 Auto merge of #86 - mattico:multitester, r=japaric
Initial implementation of multitester

Implements part of #72.

I wanted to work on this first because it should help me find the problem in the add implementation.

Test failures now look like this:
```
__addsf3 - Args: 1 1264853201
  rustc-builtins: Some(0)
  compiler_rt:    Some(14950609)
  gcc_s:          None
__addsf3 - Args: 1 632426600
  rustc-builtins: Some(0)
  compiler_rt:    Some(0.00000000000000030889195)
  gcc_s:          None
__addsf3 - Args: 1 316213300
  rustc-builtins: Some(0)
  compiler_rt:    Some(0.0000000000000000000000000013696648)
  gcc_s:          None

[snip]

thread 'float::add::tests::_test::__addsf3' panicked at '[quickcheck] TEST FAILED. Arguments: (1, 1)', /home/matt/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.3.1/src/tester.rs:118
```

It currently prints all of the errors, if that's undesirable we'd need to remove the shrinkers or modify quickcheck.
2016-10-03 06:58:30 +00:00
Jorge Aparicio 0827f8c7f1 hide the thumbv* target files
due to how Cargo works, the rustc-cfg in build.rs was picking our target
specifications rather than the one the user meant to use. Placing our
target files in any place other than the root of the Cargo project
avoids the issue.
2016-10-02 19:23:54 -05:00
Matt Ickstadt 02140cddc9 Initial implementation of multitester 2016-10-02 14:38:40 -05:00
Jorge Aparicio 89ebc46f37 pick target during Xargo installation 2016-09-30 20:41:59 -05:00
Jorge Aparicio d0a57cb871 give Xargo a $HOME 2016-09-30 20:21:15 -05:00
Jorge Aparicio fb5cb0e4c1 fix Xargo installation 2016-09-30 20:20:15 -05:00
Jorge Aparicio d8fa45a653 add back the mysterious apt-get install qemu-user-static 2016-09-30 20:08:29 -05:00
Jorge Aparicio 3b8dedd416 Revert "Merge pull request #48 from mattico/add_float_quickcheck"
This reverts commit e34a6058df, reversing
changes made to cab88e6133.
2016-09-30 19:12:17 -05:00
Jorge Aparicio 36a437a445 fix nm call
the prefix was missing a '-', i.e. arm-linux-gnueabinm was being called.
This also sets -e in run.sh to catch this sort of errors.
2016-09-30 19:04:48 -05:00
Jorge Aparicio 960f7a80ad Merge pull request #81 from japaric/cache
cache Cargo artifacts
2016-09-30 19:00:06 -05:00
Jorge Aparicio b60d2515ff use `docker run --user` instead of manually creating a user 2016-09-30 18:37:41 -05:00
Jorge Aparicio d2036122f1 /home/travis -> $HOME 2016-09-30 18:25:40 -05:00
Jorge Aparicio 0c9b651389 do chmod jut before the script phase ends 2016-09-30 18:09:52 -05:00
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 e34a6058df Merge pull request #48 from mattico/add_float_quickcheck
Add float quickcheck implementations (fixes #45)
2016-09-30 16:26:30 -05:00
Matt Ickstadt 010d153966 Add Quickcheck types for float tests 2016-09-30 14:29:52 -05:00
Matt Ickstadt 9b1fed8d3f Cleanup add builtin assignments 2016-09-30 14:29:52 -05:00
Matt Ickstadt 58e89b3024 Add floating point deconstruction helpers 2016-09-30 14:29:52 -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