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

GitHub Action for unit tests #14

Open
jhigginbotham64 opened this issue May 4, 2022 · 7 comments
Open

GitHub Action for unit tests #14

jhigginbotham64 opened this issue May 4, 2022 · 7 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@jhigginbotham64
Copy link
Owner

Running the test suite should be part of our CI/CD setup.

@jhigginbotham64 jhigginbotham64 added enhancement New feature or request good first issue Good for newcomers bounty-$100 $100 reward for resolution labels May 4, 2022
@Borketh
Copy link

Borketh commented May 5, 2022

While I though initially that using a premade github action would be trivial, it's not here. There's a big problem with CI/CD of graphical libraries:
FD052B5F-512E-441A-A420-27B11FC5A363
they need graphics.

The only option to run tests as they stand currently would be a self-hosted action on a machine that has both an alsa sound device and a display that SDL recognizes.

It is certainly to separate tests for individual internal functions out into headless tests, but the meat and potatoes is going to have to be on a graphics capable computer.

As an extension to that, there could be graphical tests. This could include things like:

  • Does the window pop up
  • Is everything that's supposed to be in the window actually in the window
  • Is this readable
  • Select all images of cats (ok maybe not that one)

It's doable, but difficult. The test suite could get pretty annoying to click through that way too...

@jhigginbotham64 jhigginbotham64 added bounty-$1000 $1000 reward for resolution and removed good first issue Good for newcomers bounty-$100 $100 reward for resolution labels May 5, 2022
@jhigginbotham64
Copy link
Owner Author

This is obviously much more difficult than I thought, thanks @AstroFloof for exploring this.

We can consider automating GUI tests with the self-hosted option using something like Squish, but...that really has nothing to do with getting the current test suite to run in CI/CD.

What needs to happen for this particular issue is for Starlight and/or Telescope and/or the tests themselves to be modified to run successfully in a headless environment.

Automated GUI tests can come later.

@Borketh
Copy link

Borketh commented May 5, 2022

Given the existence of #25 maybe this can run headlessly, but it just doesn't run at all right now.

@jhigginbotham64
Copy link
Owner Author

I don't think that issue is related to this one. At least I hope it isn't.

In any case there's no reason why SDL and Vulkan can't run headlessly, they have various features to support that use case, it's just a question of how to make it happen. Hence the increased bounty.

@jhigginbotham64 jhigginbotham64 removed the bounty-$1000 $1000 reward for resolution label May 8, 2022
@jhigginbotham64 jhigginbotham64 self-assigned this May 8, 2022
@jhigginbotham64
Copy link
Owner Author

I'm taking immediate responsibility for this since it affects the contribution workflow so much. I'm going to make the necessary modifications to Telescope and take care of the GitHub workflows. The rest of you can take it easy wrt this issue.

@Borketh
Copy link

Borketh commented May 8, 2022

Sounds good!
I take it you pay yourself the bounty then? :P

@jhigginbotham64
Copy link
Owner Author

Money saved is money earned, so ya pretty much. :)

@jhigginbotham64 jhigginbotham64 added this to the v0.3.0 milestone May 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants