morpho-org/morpho-blue

Test living vertigo mutations

Opened this issue · 5 comments

Mutation testing report:
Number of mutations:    163
Killed:                 124 / 163

Mutations:
Mutation:
    File: /home/rubilmax/sites/morpho.xyz/morpho-blue/src/Morpho.sol
    Line nr: 245
    Result: Lived
    Original line:
                 _accrueInterest(marketParams, id);

    Mutated line:
                 

Mutation:
    File: /home/rubilmax/sites/morpho.xyz/morpho-blue/src/Morpho.sol
    Line nr: 129
    Result: Lived
    Original line:
                 _accrueInterest(marketParams, id);

    Mutated line:
                 


Mutation:
    File: /home/rubilmax/sites/morpho.xyz/morpho-blue/src/libraries/periphery/MorphoStorageLib.sol
    Line nr: 50
    Result: Lived
    Original line:
                     uint256(keccak256(abi.encode(user, keccak256(abi.encode(id, POSITION_SLOT))))) + SUPPLY_SHARES_OFFSET

    Mutated line:
                     uint256(keccak256(abi.encode(user, keccak256(abi.encode(id, POSITION_SLOT))))) - SUPPLY_SHARES_OFFSET


Mutation:
    File: /home/rubilmax/sites/morpho.xyz/morpho-blue/src/libraries/periphery/MorphoStorageLib.sol
    Line nr: 62
    Result: Lived
    Original line:
                 return bytes32(uint256(keccak256(abi.encode(id, MARKET_SLOT))) + TOTAL_SUPPLY_ASSETS_AND_SHARES_OFFSET);

    Mutated line:
                 return bytes32(uint256(keccak256(abi.encode(id, MARKET_SLOT))) - TOTAL_SUPPLY_ASSETS_AND_SHARES_OFFSET);


Mutation:
    File: /home/rubilmax/sites/morpho.xyz/morpho-blue/src/libraries/periphery/MorphoStorageLib.sol
    Line nr: 90
    Result: Lived
    Original line:
                 return bytes32(uint256(keccak256(abi.encode(id, ID_TO_MARKET_PARAMS_SLOT))) + LOAN_TOKEN_OFFSET);

    Mutated line:
                 return bytes32(uint256(keccak256(abi.encode(id, ID_TO_MARKET_PARAMS_SLOT))) - LOAN_TOKEN_OFFSET);

I think this is the reference to the tool.

This seems to be an excerpt of the ouput. Can you provide the full ouput please and how to get it (parameters and configuration) ?

Indeed @Rubilmax you should output the logs into a file instead of relying on the terminal output I think

Here are my logs meanwhile @QGarchery: log.txt

I don't get the difference between your file and my logs @MerlinEgalite @QGarchery

It is an excerpt because I removed all mutations that were killed or errored at compilation, leaving only the viable mutations that we should test

It is an excerpt because I removed all mutations that were killed or errored at compilation, leaving only the viable mutations that we should test

Ok got it now, sounds good.

How did you run the tool though ?

How did you run the tool though ?

As indicated in their README: clone their repo, install python environment then run python file within this repo
But it took a while...