Beta testing
The new Runox version is coming ! The language support is still narrow but the depth, stability and performance is already better. You can now test it running code natively or in containers, for C, C++, Java, Python and Scala. In addition, CMake and GoogleTest are supported. GoogleTest tests are accelerated compared to standard execution.
You can help make it better by giving it a try, here a few guidelines to test it and give useful feedback.
RFF - Request For Feedbacks
First, make sure you have a working installation of Runox, by following the Setup page under section Runox rewrite in Rust. This page use the alias ru, but the real program behind is runox.
Warning: the watch mode is not implement even if the help page shows it.
Warning: Some edge cases with files selection are not fully managed yet...
Containers management
Runox is not able to stop containers for now. Here a simple way to stop all Runox containers. You'll need that later.
For Fish
set ids (docker ps -a -q --filter name=runox)
if test -n "$ids"
docker rm --force $ids
end
For Bash
ids=$(docker ps -a -q --filter name=runox)
if test -n "$ids"; then
docker rm --force $ids
fi
Read the help
ru --help
Give feedback about clarity, wording or the names of the options.
Note confusing messages and bugs
With the following steps, please note why you find things confusing or where you think there are bugs. Is there other options you would expect ? Did you expect another behavior in a given situation ?
If you have any panics, it's a bug, so please include it in your feedback. Here is an example of a crash caused by a panic, you can see the 2 keywords thread panicked.
thread 'main' (510375) panicked at src/main.rs:4:32:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test at least 3 languages
Test natively
- List supported engines
ru --list-engines - Pick 3 languages among the list including Scala.
- Use
scrand pick the language or reuse an existing project - Try running it natively with
ru - Do a change in the code and run it again to make sure it works.
- Inspect the executed commands with
ru -d - Do you feel it is slower than running without Runox ?
- For Scala, do you have the expected error of
Failed to run engine Scala because some required binaries were not found: ...? - For Python, keep the previous
main.pybut create a second filetest.pyand try running it directly. - Fill it with this simple code showing the program arguments
import sys print(sys.argv) - Figure out how to pass down the arguments
--user johnthe program. You know you'll be done when the program prints['test.py', '--user', 'john']
Test in containers
time ru -c. Building the image can take a few minutes depending on your Internet connection.- Copy paste the time in your feedback.
- Once the container is started (after the first execution), do you feel like it is slower than the native execution ?
- For Scala, run
time ru -cand report it in your feedbacks.
Test CMake
- Test is with C++
scr cpp-cmake - Introduce a build error and look at the build output. Do you see the experience difference with Runox ? Note it in your feedback.
- Look at the second build command via
ru -d, run it and look at the difference. - Test is with C
scr c-cmake
Test in containers
ru -cru -cagain, do you feel the small difference of time ?- Stop containers (see above) and retry it. You should see a small gain caused by the containers that keeps running after first start. Build is also cached.
Debugging
- Without typing any
dockercommands, how could you determine the version of CMake installed in this container ? (seeru -h) - Same idea: What is the current folder in the container ?
Test GoogleTest
scr cpp-cmake-gtest
ru, you'll see two binaries, try running both of them.- Is the binary selection clear ? Did you managed to manage to change
ruto something else that will automatically select a binary ? - Run the tests, fix the function (two missing
if) and run it again. - Do you see the experience difference with Runox ? Note it in your feedback.
- Look at the execution command via
ru -d, run it and look at the difference. Is there a way to continue improving the test display ? - Test in container
ru -c
Test performance
- Get the code of the heavy test suite.
cd /tmp git clone https://codeberg.org/samuelroland/runox.git cd runox/core/exos/gtest/heavy-calculation-single-thread-test-suite - Measure time without Runox, should be around 17s.
cmake . -Bbuild && cmake --build build/ -j 8 time ./build/tests time ru, should be around 2.6s if you have 12 CPU cores.time ru -c, should be just bit more...- Note the timing in your feedbacks.
Global experience
How was the global experience ? Do you see yourself using this new Runox version ? Something clear ?
Send your feedbacks
Thanks a lot for your tests, this means a lot ! I hope you enjoyed discovering this first beta version.
By Telegram, email (samuel.roland -- master.hes-so.ch) or via Teams (just search "Samuel Roland") !