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

Improve testing of emulation API functions #3173

Open
AssadHashmi opened this issue Sep 18, 2018 · 0 comments
Open

Improve testing of emulation API functions #3173

AssadHashmi opened this issue Sep 18, 2018 · 0 comments

Comments

@AssadHashmi
Copy link
Contributor

The implementation of an emulation API requires better test coverage:

  • A selection of sample observational clients running with an emulation client.
  • Support for x86 and ARM (currently on AArch64).
  • More complex emulation clients.

#3112
#3104
#3168

@AssadHashmi AssadHashmi self-assigned this Sep 18, 2018
derekbruening added a commit that referenced this issue Apr 29, 2021
PR #3960 added a call to instr_set_label_callback() to set it to NULL
from instr_clone(), but if the callback is non-NULL an assert fires in
that case.  This only normally happens with emulation labels that turn
into traces, which happens to not occur in our very few tests of
emulation labels (#3173 covers adding more tests).

We fix that by adding instr_clear_label_callback() here and using that
from instr_clone(), since these callbacks are a little different from
other values and it feels best to not clear them using the set
routine.

A test is added by putting a loop around a scatter-gather expansion,
triggering trace creation.  I confirmed that the assert does fire
without this fix with the loop in place.

Fixes #3962
derekbruening added a commit that referenced this issue Apr 29, 2021
PR #3960 added a call to instr_set_label_callback() to set it to NULL
from instr_clone(), but if the callback is non-NULL an assert fires in
that case.  This only normally happens with emulation labels that turn
into traces, which happens to not occur in our very few tests of
emulation labels (#3173 covers adding more tests).

We fix that by adding instr_clear_label_callback() here and using that
from instr_clone(), since these callbacks are a little different from
other values and it feels best to not clear them using the set
routine.

A test is added by putting a loop around a scatter-gather expansion,
triggering trace creation.  I confirmed that the assert does fire
without this fix with the loop in place.

Fixes #3962
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant