NebulousLabs / Sia

Blockchain-based marketplace for file storage. Project has moved to GitLab: https://gitlab.com/NebulousLabs/Sia

Home Page:https://sia.tech

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Siatest/Renter clean up

MSevey opened this issue · comments

The siatest/renter package looks at a lot of the same information in many of the test. There are already some helper functions that break out some of the duplicate code but I believe there is more opportunity, especially around mining blocks. I think the following could be done to clean up renter_test.go in the siatest/renter package.

  • Go through tests and refactor code where possible. One common task that many tests do is mine blocks for a certain period of time.

  • Improve renewContractsByRenewWindow . The following can be done to improve this function and test package

  1. remove excess tg.Sync() calls in the tests that call this since it is called in this function
  2. make this more generic by referencing the contracts, potentially redo to be able to handle all mining needs for test
  • Improve renewContractsBySpending to confirm that all contracts will be renewed due to spending, not just first contract to meet condition. Also, confirm that threadedContractMaintenance is triggered before function ends so contracts are renewed by the time the function returns. Add warning if percentRemaining is so large that uploading data to deplete funds would take too long. Right now it seems to work fine because it is every only called after contracts have been renewed by the renew window before hand and have very low amounts of RenterFunds.

Additional potential task to reduce duplicate code and organize the tests would be:

  • Create a TestRenterGroupWithNoRenter test that groups all the tests that create groups without a renter and then adds the renter after.
  • Look at how contracts are created for the test nodes and make them smaller so it is faster to renew them by spending