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

USVM to UtBot adapters without contest hacks #2710

Merged
merged 123 commits into from
Dec 8, 2023
Merged

USVM to UtBot adapters without contest hacks #2710

merged 123 commits into from
Dec 8, 2023

Conversation

IlyaMuravjov
Copy link
Collaborator

Description

  1. Adapters from USVM output to UtBot codegen input are added
  2. New Tool.USVM is introduced in ContestEstimator (set val mainTool = Tool.USVM to use it)

How to test

Automated tests

Regression tests should pass, nightly statistics monitoring should continue working.

Manual tests

  1. Use Java 17
  2. Configure val mainTool = Tool.USVM in ContestEstimator
  3. Run :utbot-junit-contest:run task (some USVM warnings/errors can get logged)
  4. There should be tests generated by USVM in UTBotJava/utbot-junit-contest/build/output/test

Self-check list

  • I've set the proper labels for my PR (at least, for category and component).
  • PR title and description are clear and intelligible.
  • I've added enough comments to my code, particularly in hard-to-understand areas.
  • The functionality I've repaired, changed or added is covered with automated tests.
  • Manual tests have been provided optionally.
  • The documentation for the functionality I've been working on is up-to-date.

IlyaMuravjov and others added 30 commits November 1, 2023 14:21
…tion` (#2666)

* Add `Tool.USVM` in `ContestEstimator`, implement `runUsvmGeneration`

* Remove redundant TODO

* Bump UtBot dependencies version to match USVM dependencies

* Use `UTestExecutionResult.trace` instead of `JcCoverage`
#2677)

* Some awful attempts

* Initially implemented a converter of UTestInst to UtModel

* Refactor JcToUtModelConverter basing on UTestInst2UtModel converter

* Some steps to implement JcToUtExecutionConverter

* Implement minimalistic jc to ut execution conversion, enable codegen

* Some improvements

* DeepMapper for models is used

* Corrections

* Some improvements to JcToUtModelConverter

* Further improvements to JcToUtModelConverter

* Another converter little improvement

* Improve `UtExecutionFailure` creation

* Finish implementing `JcToUtModelConverter`

* Refactor nullability in `JcToUtModelConverter` and `JcToUtExecutionConverter`

* First version of JC to UT converters without overusing `Descriptor2ValueConverter`

* Processed forgotten call method expression

* Make conversion more class-friendly (do not fail if one method cause failure)

* Make it possible to use samples in ContestEstimator

* Tested on all primitives

* contrflow tests added

* More test classes added

* Add `build/output/test/samples` to `utbot-junit-contest` test projects

* Steps to avoid duplicating statements

* Make it working correct on IntExamples.max

* Remove OptimizeImportsProcessor (seems it was not called, but a source of bugs)

* Process UTestStaticMethodCall

* Comment out includes for IDE related projects in `settings.gradle.kts`

* Avoid using burningwave to export modules on Java 8

* Fix review comments

* Fix review comments

---------

Co-authored-by: IlyaMuravjov <[email protected]>
* Try to get classId from arrays with JacoDb

* Fix a bug

* Add primitive arrays to a list
* Very simple UtAssembleModel improver

* Use `IdentityHashMap`-based cache when mapping `UtModel`s

* Improve checks for `UtAssembleModel`s created with `createInstance` method

---------

Co-authored-by: IlyaMuravjov <[email protected]>
* Add summarization for usvm-sbft

* Add summary setting to the setOption method and do small refactoring
add processing of existingButNullString
* Include usvm via GitHub packages

* Improve gradle script for utbot-junit-contest
…ge asserts generation (#2691)

* Fix compilation after USVM update (jvm-instrumentation-persistent-descriptors)

* Make `JcToUtModelConverter` construct `UtCompositeModel.origin` and assign same id to `stateBefore` and `stateAfter` models that describe same object

* Adapt `ExecutionStateAnalyzer` to deal with absence of `refId` in USVM descriptors for classes, enums, and throwables

* Adapt `ExecutionStateAnalyzer` to deal with `UtAssembleModel`s with `origin`

* Replace `UtAssembleModel`s that only use reflection with `UtCompositeModel`s, improve `constModel` for `UtArrayModel`
@IlyaMuravjov IlyaMuravjov added ctg-enhancement New feature, improvement or change request comp-contest-estimator Issue is related to contest estimator labels Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp-contest-estimator Issue is related to contest estimator ctg-enhancement New feature, improvement or change request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants