Code Monkey home page Code Monkey logo

test-runner's People

Contributors

ian-h-chamberlain avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

test-runner's Issues

Maybe consolidate all of the runners into one?

Instead of separate run_console, run_gdb etc., maybe we can just use all of them at once!

  • The socket runner will simply fail to connect to 3dslink if it's running in Citra or the --server flag wasn't used
  • Either gdbHioDevInit() or gdbHioDevRedirectStdStreams() should fail if running on hardware (or they are no-ops)
  • Console should basically always work, unless the test needs to own the screens / Gfx for some reason (in which case it should probably be an integration test, and we can control the features more carefully there).

The only oddity would be that none of them work simultaneously, so they would need to be in some kind of priority order. Maybe still have cargo features like this?

[features]
# These three output channels will be tried, in this order, to display test output.
# Failure to set up a given output stream will be ignored, so the last successful method
# will be the one ultimately used by the test. You can skip a certain method by disabling its
# corresponding feature.

default = ["console", "gdb", "socket"] # or maybe a different order/subset
console = []
gdb = []
socket = []

Run doctests as well as other tests

Due to their kinda unique nature, doctests don't seem to have the same setup/teardown in their binaries as normal #[test] executables... It would be nice not to have to add a special setup line to every triple-backtick example just to get them to run...

Add support for `--movie-play` TAS files

For the sake of testing things like user input, it would be nice if the runner could be used for playing back inputs recorded via the --movie-record= flag in Citra. This would be great for e.g. running examples in CI.

Ideally the file would probably be another input to the Github action, I think?

Renaming / reorganization

There are a couple of things I want to consider here. Each of these could probably be a separate issue, but I think to some extent they'll all happen together at once so just tracking here for now:

  • Moving .github/actions/* to either the top level or their own repository. I think this repo makes sense, particularly since the Citra test runner requires some level of coordination with the GDB test runner, but it's not necessarily the recommended location. This would also make it easier to version the two actions (setup and run) separately, otherwise we might need to use tags like setup@setup-v1 or something.

    Also, if actions are moved to the top level, maybe the test-runner crate should also be moved down into its own directory?

  • Naming; this crate doesn't ever need to be published to https://crates.io, but if if is published it will need a sufficiently unambiguous name. test-runner-3ds is kinda long, maybe just like test3ds or something more creative?

  • Moving to the rust3ds org. This seems obvious and is just a matter of making sure the CI and everything still works once moved.

  • Finish documenting the actions in the README at least, to make it more obvious how they're meant to work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.