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

Given a FSM, generate parallel tests. #22

Open
10 of 20 tasks
jeffh opened this issue Dec 6, 2014 · 0 comments
Open
10 of 20 tasks

Given a FSM, generate parallel tests. #22

jeffh opened this issue Dec 6, 2014 · 0 comments
Assignees
Milestone

Comments

@jeffh
Copy link
Owner

jeffh commented Dec 6, 2014

Each API call is assumed atomic.

  • Add Parallel Testing to CLI & CI (to fix CI failures)
  • Automate providing the FoxlingCompiler Plugin for Releases.
  • Documentation how parallel testing works in Fox
    • Lock implementations overridden
    • Libraries that are safe to use (aka - no direct kernel threads code)
    • Testing with and without the cooperative scheduler
    • Testing with Foxling Compiler
    • Current limitations in implementation for automatic thread yielding (e.g. - no Swift support, expressions replaced, number of concurrent commands, etc.)
  • Document how to develop / compile Foxling
  • Verify: parallel testing does not work on iOS devices?
  • Document if parallel test does not work on iOS devices.
  • Remove hardcoded paths in Foxling
  • Finish overriding mach semaphores.
  • Alcatraz Support for Foxling

Bonus:

  • Good ways of testing the compiler besides End-to-End?
  • Configuring the plugin to automatically refer to its internal copy of the Foxling compiler.

Finalize:

  • Audit APIs that are alpha
  • Audit documentation that marks alpha APIs
  • Grammer / editing check of documentation.
  • Create and link issues mentioned in the documentation.

Things to consider in other PR/issues:

  • Dead-lock detection / timeout runs
  • More rewriting rules for Foxling
  • Non-brute-force linearizable verifier.
jeffh added a commit that referenced this issue Dec 16, 2014
WIP scheduler. Lots of code is in flux.

Related to #22.
jeffh added a commit that referenced this issue Dec 31, 2014
jeffh added a commit that referenced this issue Dec 31, 2014
Not for general use. Replicates part of the pthread/POSIX APIs.

Can be replace system apis via mach_override. (Thanks @rentzsch!)
Modified mach_override to remove warnings and work on iOS Simulators.

Overrides:
    - POSIX threads
    - POSIX named semaphores
    - Mach Semaphores
    - OSSpinLock

Fishhook requires covering more APIs than mach_override. But
mach_override probably does not work on actual devices.

Scheduling with manual instrumentation (eg - yields) currently works.

Related #22.
@jeffh jeffh self-assigned this Jan 1, 2015
@jeffh jeffh added this to the 1.1.0 milestone Jan 5, 2015
jeffh added a commit that referenced this issue Feb 4, 2015
jeffh added a commit that referenced this issue Feb 4, 2015
Not for general use. Replicates part of the pthread/POSIX APIs.

Can be replace system apis via mach_override. (Thanks @rentzsch!)
Modified mach_override to remove warnings and work on iOS Simulators.

Overrides:
    - POSIX threads
    - POSIX named semaphores
    - Mach Semaphores
    - OSSpinLock

Fishhook requires covering more APIs than mach_override. But
mach_override probably does not work on actual devices.

Scheduling with manual instrumentation (eg - yields) currently works.

Related #22.
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