-
Notifications
You must be signed in to change notification settings - Fork 36
Enable C++ tests for the Emscripten build #277
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
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #277 +/- ##
=======================================
Coverage 80.56% 80.56%
=======================================
Files 20 20
Lines 957 957
Branches 88 88
=======================================
Hits 771 771
Misses 186 186 🚀 New features to boost your workflow:
|
clang-tidy review says "All clean, LGTM! 👍" |
Currently we have around 45/47 test working for lite as compared to the native cases. According my surface level debug, these don't look like lite related errors, rather some internal functions going off I suppose :\ (So not something really major) But yeah that being said this PR is just to get us started and I have marked the two tests as TODO and shall address them through subsequent prs. I have tried to be as verbose as possible with the comments above and probably should make it easier to review. cc @DerThorsten @JohanMabille could you possibly help me with the reviews here ? Here are the logs https://github.com/compiler-research/xeus-cpp/actions/runs/13715851519/job/38360489317?pr=277#step:6:117 |
We should merge this PR only after compiler-research/CppInterOp#483 is in. |
The two PRs seem fairly independent. We should move forward with this one IMO rather than creating artificial blockers. |
c32981d
to
0c3bbf9
Compare
Let’s discuss that on Monday. |
@mcbarton I think you've had some doubts with flags (like -fexceptions, memory growth etc etc) All are introduced to keep consistency with xcpp.wasm (which is the main module finally running and responsible for any output ... so obviously our test's main module should be following the same output) Here you can find all the initital set of buildtime and link time flags that are responsible for building xcpp.wasm https://github.com/jupyter-xeus/xeus/blob/main/cmake/WasmBuildOptions.cmake |
@anutosh491 Don't we want the build and deploy workflow also to run these tests, so we can check the nightly build is working? |
Unless specifically needed to enable and run the tests I don't think they should be part of this PR. I feel that if they are purely there for consistency purposes then they should be added in a separate PR. Are you able to run a commit which shows tests fail if they aren't included? |
Why would that be ? We build xcpp.wasm with the same flags and we technically want to exactly replicate what we see with xeus-cpp-lite. Let's just keep them here. I don't see a point splitting them. I think they are essential. |
Hmm, I don't know. This initial PR is to get us started. I think we're good with having tests for it in the CI right now. Let's extend it further if we think it might be really essential. |
okay I think when I say "essential", these are really essential. For example getting rid of the stack size/initial memory or changing them not to match xcpp.wasm gives me this
|
a67c5b0
to
26d14a6
Compare
@anutosh491 Please update the documentation as part of this PR so that developers know that xeus-cpp has Emscripten tests, and how to run them. |
Hi, Let's not stress too much on this. Not sure what you mean by completely ignore because I've just disabled it for the emscripten build cause currently we don't have a way to get this work. Anyways to get any AI support in the browser, I think we would just go the JupyterliteAI route when that's ready. |
I think this should be ready now. Apart from the 2 tests that have been added as TODOs rest all work (45/47) so really happy with the results. This should be good to get us started I think. |
@vgvassilev @JohanMabille This comment should be addressed before any approval is given #277 (comment) . I don't believe xeus-cpp should rely on Emscripten forge setting LD_FLAGS. Where possible in the build process we should maintain compatibility with the upstream emsdk. |
Hi
I don't think xeus-cpp or any other xeus-lite kernel (or for that matter any Jupyterlite kernel) has ever claimed this. I don't think this is a hard necessity. |
I've made the change to keep everyone happy ! Should be good to go now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Hey @vgvassilev this should be ready now. Could you please have a look and merge if you're happy ? |
Description
Enables C++ tests for the Emscripten build
Type of change
Please tick all options which are relevant.