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

Enable more tests for Emscripten targets #68082

Closed
wants to merge 7 commits into from

Conversation

tlively
Copy link
Contributor

@tlively tlively commented Jan 10, 2020

Specifically, enable SIMD intrinsic tests, target-independent asm!
tests, and tests that were ignored due to old fastcomp bugs that have
long since become irrelevant.

Also re-enables asmjs tests that pass -g by reducing the corresponding
Emscripten debug level so that it does not error out with a message
about source maps being unsupported. This required fixing the asmjs
target's arch string to be "asmjs" rather than "wasm32", and
that in turn required auditing many cfg attributes and fixing them to
include both asmjs and wasm32.

For many tests that could not be re-enabled, also adds an explanatory
comment to make future auditing easier. In particular, tests requiring
threads are left to be re-enabled in future work.

r? @alexcrichton

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 10, 2020
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-10T06:03:19.4780981Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-10T06:03:19.4792474Z ##[command]git config gc.auto 0
2020-01-10T06:03:19.4795074Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-10T06:03:19.4797234Z ##[command]git config --get-all http.proxy
2020-01-10T06:03:19.4800483Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/68082/merge:refs/remotes/pull/68082/merge

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

Copy link
Member

@alexcrichton alexcrichton left a comment

Choose a reason for hiding this comment

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

Nice! Looks like there's a rustfmt thing and otherwise just one small nit, but otherwise r=me

Thanks!

src/libstd/sys/mod.rs Outdated Show resolved Hide resolved
@tlively
Copy link
Contributor Author

tlively commented Jan 10, 2020

@alexcrichton I took a look at the timings, and the wasm32 bot here takes about 25 minutes longer than the wasm32 bot on the latest bors jobs (2h44m intead of 2h18m). The JS bot (which is disabled) is only a couple minutes shy of the 3 hour mark. How much of a problem is this?

@alexcrichton
Copy link
Member

Hm ok that's a little excessive in terms of time, mind keeping the wasm32 tests as-is and we can reevaluate when we get some more powerful builders?

@tlively
Copy link
Contributor Author

tlively commented Jan 10, 2020

Actually, looking at some of the other builders, 2h44m doesn't seem so bad. Plenty of other builders are in the 2h40m or even 2h50m range. On the latest run a lot of the Windows builders have just passed the 3h mark: https://dev.azure.com/rust-lang/rust/_build/results?buildId=18111.

I would be happy to disable some of the longer-running wasm tests to save some time, but I would want to specifically disable long-running tests rather than just leaving historically buggy tests disabled. If you have an idea of what a reasonable runtime goal would be, I can selectively disable tests to try to meet that goal.

On a related note, is there a way to avoid rebuilding LLVM on every run of the builders?

@bors
Copy link
Contributor

bors commented Jan 11, 2020

☔ The latest upstream changes (presumably #67000) made this pull request unmergeable. Please resolve the merge conflicts.

Specifically, enable SIMD intrinsic tests, target-independent asm!
tests, and tests that were ignored due to old fastcomp bugs that have
long since become irrelevant.

Also re-enables asmjs tests that pass -g by reducing the corresponding
Emscripten debug level so that it does not error out with a message
about source maps being unsupported. This required fixing the asmjs
target's `arch` string to be `"asmjs"` rather than `"wasm32"`, and
that in turn required auditing many cfg attributes and fixing them to
include both asmjs and wasm32.

For many tests that could not be re-enabled, also adds an explanatory
comment to make future auditing easier. In particular, tests requiring
threads are left to be re-enabled in future work.
This reverts commit cdb4415e5be2ec06713a7b3b58146b65675f43a1.
@tlively
Copy link
Contributor Author

tlively commented Jan 11, 2020

@alexcrichton The merge conflict was just a deleted test, so it didn't seem worth going through re-enabling and disabling the wasm/asmjs CI for the PR. This should be good to go unless you have thoughts on the run time.

@alexcrichton
Copy link
Member

Hm I'd personally prefer at least a good headroom with our slowest tests, I'd rather not try to get up next to them in terms of execution time. 3h is already far too long and we've been looking to reduce it. I think it's probably best to leave the set of tests as-is for now and we can investigate expanding coverage in a separate PR?

On a related note, is there a way to avoid rebuilding LLVM on every run of the builders?

Not currently, but LLVM is cached with sccache, so it's not supposed to be as slow as a full build.

@bors
Copy link
Contributor

bors commented Jan 17, 2020

☔ The latest upstream changes (presumably #68311) made this pull request unmergeable. Please resolve the merge conflicts.

@JohnCSimon JohnCSimon added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 26, 2020
@JohnCSimon
Copy link
Member

Ping from triage:
@tlively this PR has sat idle for over a week. Thanks.

@tlively
Copy link
Contributor Author

tlively commented Jan 26, 2020

Thanks, @JohnCSimon! The current status of this PR is that I need to disable a large number of long-running tests to get the bot time under control. If that doesn’t work, I’ll probably want to remove most of the test changes from the PR. I am not yet actively working on these changes yet.

@JohnCSimon
Copy link
Member

Ping from triage -
@tlively - you have some merge conflicts,
can you post your status on this PR? Thanks.

@tlively
Copy link
Contributor Author

tlively commented Feb 16, 2020

Still no progress here, but I’ll put this on my list of things to do soon.

@JohnCSimon
Copy link
Member

Ping from triage
@tlively - just letting you know, this has sat idle for two weeks.

@tlively
Copy link
Contributor Author

tlively commented Mar 2, 2020

I'll close this for now since I am not actively working on it. I'll get back to it at some point, but I don't know when.

@tlively tlively closed this Mar 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants