Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip failing tests for Linux/MIPS/PowerPC #590

Merged
merged 8 commits into from
Jun 11, 2017

Conversation

Susurrus
Copy link
Contributor

These should be issues with QEMU itself and not problems on the actual hardware, but I want to get some upstream tickets filed before merging this. I'm also not sure if this syntax is correct on the #cfg, so this is testing that as well.

@asomers
Copy link
Member

asomers commented Apr 17, 2017

If CI is skipping some tests on these architectures, I think that makes them Tier 2, not Tier 1.

@Susurrus
Copy link
Contributor Author

@asomers The README has details on what the tiers mean. For Tier 1 it means the platforms are built and tested in CI and failures should never happen. Tier 2 means there is no automated testing, but the code should at least compile. For Tier 3 it means that testing is done, but we don't guarantee that they pass (admittedly Tier 2 and 3 should be swapped).

@Susurrus
Copy link
Contributor Author

Ideally we don't have any platforms under Tier 3 and hopefully I can remove that distinction soon.

@asomers
Copy link
Member

asomers commented Apr 17, 2017

@Susurrus for the three platforms in question, you're proposing that only some of the tests will be run in CI. If they tests aren't all run, then I don't think we can call it Tier 1. Tier 1.1 perhaps, if we want to use floats, but not Tier 1.

And currently the Tier 3 definition says that we don't even guarantee that the build will pass. Until we change that guarantee, we shouldn't swap Tier 2 and Tier 3.

@Susurrus
Copy link
Contributor Author

It won't always be possible to run all tests in CI due to various issues with Travis or Qemu or other possible issues. I don't think a distinction between "all" and "almost all" really makes much difference. The point of stating tiers is so that users (and I guess developers as well) have expectations of the state of the code and its rough quality. Platforms in Tier 1 are well supported, Tier 2 less so, and Tier 3 the least. Platforms not supported are at your own risk so to speak.

And you bring up a good point about Tier 3, we should separate tests and builds because Tier 3 should be guaranteed to build but don't necessary have their tests run during CI.

@Susurrus
Copy link
Contributor Author

@kamalmarhubi It doesn't look like my #[cfg_attr] statements are working correctly, do you have any suggestions for this?

@kamalmarhubi
Copy link
Member

weird, I tried it out locally.

@Susurrus Susurrus force-pushed the fix_platforms branch 2 times, most recently from 3a77c3b to ff4676f Compare April 18, 2017 00:42
@Susurrus
Copy link
Contributor Author

@kamalmarhubi Yeah, it worked correctly when I tested it locally using x86_64 instead of powerpc for the target_arch. Do you know of any limitations of cfg_attr or the compiler exposing target_arch on powerpc architectures?

@Susurrus
Copy link
Contributor Author

I think the problem is that cross is testing things and since it's in qemu it might not be receiving the travis cfg flag we set earlier.

@kamalmarhubi
Copy link
Member

Oh good point.

@kamalmarhubi
Copy link
Member

This is relevant: cross-rs/cross#77

@Susurrus
Copy link
Contributor Author

@kamalmarhubi Good find. That PR looks pretty close to finished so hopefully we can push it through to the next cross release. But for now I'm testing my own cross repo to see if it does indeed fix the issue.

@kamalmarhubi
Copy link
Member

Sent cross-rs/cross#91 so hopefully we'll get this functionality sooner than later.

@Susurrus
Copy link
Contributor Author

We should actually also try to upstream our RUSTFLAGS modification to trust/cross as that'll make upgrading ours easier.

@Susurrus
Copy link
Contributor Author

Looks like cross is a little hard to test here because of it's need for a release .zip uploaded to GitHub, which is why the most recent commit broke everything. It'll be easiest to block on this until cross-rs/cross#91 gets released.

@Susurrus Susurrus changed the title [WIP] Skip failing tests for Linux/MIPS/PowerPC Skip failing tests for Linux/MIPS/PowerPC Jun 6, 2017
@Susurrus
Copy link
Contributor Author

Susurrus commented Jun 6, 2017

@asomers @kamalmarhubi Could you guys look over this? Seems good to me and I'd like to merge.

@@ -6,52 +6,57 @@ language: rust
services: docker
sudo: required

# This is the Rust channel that build jobs will use by default but can be
# overridden on a case by case basis down below
rust: 1.13.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason not to use a default rust value? It makes the matrix section more duplicative.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you use the default, you end up with an "extra" test run. You can see how there's two x86-64-unknown-linux-gnu runs that execute right now. This fixes that problem. Looks like I didn't specify that in the commit message, which I can do.

@@ -26,6 +26,7 @@ fn poll_aio(mut aiocb: &mut AioCb) -> Result<()> {
// bindings. So it's sufficient to check that AioCb.cancel returned any
// AioCancelStat value.
#[test]
#[cfg_attr(all(target_env = "musl", target_arch = "x86_64"), ignore)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So all of these tests fail in x86_64 musl but pass in i686 musl? Weird. Does cross use qemu to run i686 tests? I would think that it wouldn't need to.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You bring up a good point. i don't think cross runs things in QEMU based on this line.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I've filed an issue (cross-rs/cross#107) in order for this to be made more clear.

@asomers
Copy link
Member

asomers commented Jun 11, 2017

bors r+

bors bot added a commit that referenced this pull request Jun 11, 2017
590: Skip failing tests for Linux/MIPS/PowerPC r=asomers

These should be issues with QEMU itself and not problems on the actual hardware, but I want to get some upstream tickets filed before merging this. I'm also not sure if this syntax is correct on the `#cfg`, so this is testing that as well.
@bors
Copy link
Contributor

bors bot commented Jun 11, 2017

Build failed

@Susurrus
Copy link
Contributor Author

This issue is due to a bug in cross

@Susurrus
Copy link
Contributor Author

cross is fixed.

bors r+ asomers

bors bot added a commit that referenced this pull request Jun 11, 2017
590: Skip failing tests for Linux/MIPS/PowerPC r=Susurrus

These should be issues with QEMU itself and not problems on the actual hardware, but I want to get some upstream tickets filed before merging this. I'm also not sure if this syntax is correct on the `#cfg`, so this is testing that as well.
@bors
Copy link
Contributor

bors bot commented Jun 11, 2017

@bors bors bot merged commit 280721a into nix-rust:master Jun 11, 2017
@Susurrus Susurrus deleted the fix_platforms branch July 13, 2017 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants