GithubHelp home page GithubHelp logo

Comments (8)

lsf37 avatar lsf37 commented on July 1, 2024

It looks like the simulate script should return a non-zero error code but might not do that. Would be good to confirm. If it does correctly return an error then something is wrong in the infrastructure setup, but it does report other errors, so it is likely something subtle in that case.

from ci-actions.

wom-bat avatar wom-bat commented on July 1, 2024

The simulate scriupt is doing what it's meant to; but the test needs to look at the output and check it's getting to guetst userspace

from ci-actions.

lsf37 avatar lsf37 commented on July 1, 2024

Result of further investigation: the expect command we've been using for the simulate script will always return exit code 0, so will never fail. This goes back to bamboo times already, so who knows how many failures have been masked by it in the past (although hw runs will show them, so probably fine after all).

The main thing that is needed is to add a timeout pattern to expect, eg. something like

expect {
  timeout {exit 1}
  "{success}" {exit 0}
}'

from ci-actions.

lsf37 avatar lsf37 commented on July 1, 2024

The reason the simulation scripts have worked in sel4test is that we also parse the output of the test itself into junit format and detect errors that way. For simulation runs that only wait for the success string, that step is missing.

from ci-actions.

lsf37 avatar lsf37 commented on July 1, 2024

Reopening, because the issue still persists after #340. In fact, now sel4test-sim takes much longer, because it always is hitting the timeout, even in the success case, and camkes-vm-examples is still failing + hitting the timeout.

Need to investigate more.

from ci-actions.

wom-bat avatar wom-bat commented on July 1, 2024

I think the problem now is the lack of a success criterion in the build.yaml

from ci-actions.

lsf37 avatar lsf37 commented on July 1, 2024

I think I have it now. I got the syntax slightly wrong, it should be:

expect -c "spawn ./simulate; set timeout XX; expect \"good output\" {exit 0} \"bad output\" {exit 1} timeout {exit 1}"

and I had:

expect -c "spawn ./simulate; set timeout XX; expect { \"good output\" {exit 0} \"bad output\" {exit 1} timeout {exit 1} }"

That additional pair of braces made everything an action, and the expect part was basically empty. Will put up a PR.

from ci-actions.

lsf37 avatar lsf37 commented on July 1, 2024

This now appears to be working properly and also fails fast when the known error string is detected.

from ci-actions.

Related Issues (20)

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.