Skip to content
This repository has been archived by the owner on Dec 9, 2018. It is now read-only.

Issues found so far #12

Open
japaric opened this issue Aug 16, 2016 · 3 comments
Open

Issues found so far #12

japaric opened this issue Aug 16, 2016 · 3 comments

Comments

@japaric
Copy link
Contributor

japaric commented Aug 16, 2016

@japaric
Copy link
Contributor Author

japaric commented Sep 14, 2016

For several targets like arm, aarch64, mips, when running the unit tests of the std crate I'm seeing these tests fail under QEMU:

  • net::tcp::tests::clone_accept_concurrent
  • net::tcp::tests::multiple_connect_interleaved_greedy_schedule
  • net::tcp::tests::multiple_connect_interleaved_lazy_schedule
  • net::udp::tests::timeouts
  • net::tcp::tests::timeouts
  • sys::ext::net::test::timeouts

But if I run std unit tests on real ARM hardware, the whole test suite passes. This means that what I'm really observing are QEMU failures.

If I want to turn the test green, I'll have to skip these tests on these targets. But Rust test runner doesn't provide a way to ignore tests via command line arguments.

My options:

  • Add a feature to the test runner (libtest) that lets me skip some test, perhaps --skip FILTER. I'm not sure what's the likelihood of that being accepted. cc @alexcrichton
  • Switch from QEMU user emulation to system emulation. That would require a kernel and a sysroot per architecture, which would make this testing framework a LOT more complicated. Right now it's very simple. I like simple.
  • Patch the source code to #[ignore] the troublesome tests. That's a non starter for std because it requires upstream changes.

I like the first option best.

@japaric
Copy link
Contributor Author

japaric commented Sep 15, 2016

For several targets like arm, aarch64, mips, when running the unit tests of the std crate I'm seeing these tests fail under QEMU:

FWIW, I additionally tested reducing the number of tests that libtest uses for each unit tests from 2 to 1 (as implemented in rust-lang/rust#36339). But that didn't reduce the number of failures. Probably because each unit tests, itself, spawns a bunch of threads.

@alexcrichton
Copy link

Add a feature to the test runner (libtest) that lets me skip some test

👍

Switch from QEMU user emulation to system emulation

Note that this flexibility would also allow running tests on BSD platforms as well, so may have other added benefits! From doing it in libc, though, it's super complicated.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants