Skip to content

Latest commit

 

History

History
27 lines (22 loc) · 1.4 KB

README.md

File metadata and controls

27 lines (22 loc) · 1.4 KB

Learning-based controlled concurrency testing in P#

This repository is a fork of the P# programming framework that implements a learning-based exploration strategy using Q-learning.

Benchmarks for evaluating the Q-Learning strategy

You can find benchmarks for evaluating our Q-Learning strategy in this directory, as well as scripts for easily running these benchmarks.

Prerequisites

Install Visual Studio 2019 and if necessary a version of .NET Core that matches the version specified in the global.json file. See version matching rules. Also install all the SDK versions of the .NET Framework that P# currently supports (4.5 and 4.6) from here.

Building

First build the P# runtime and testing tool. From this root directory, run in powershell:

.\Scripts\build.ps1

Next, build the benchmarks and evaluation driver, by running in powershell:

.\Benchmarks\build-benchmarks.ps1

How to run

To execute an experiment, simply run the EvaluationDriver using the corresponding test configuration file, as in the following example:

.\bin\net46\EvaluationDriver.exe .\Benchmarks\Protocols\FailureDetector.test.json