Bahamas (and migration) Devnet Test Plan
The Bravo/Bahamas release includes features that add new tables and require table migrations. The updates that drive these migrations span several contract deployments and the full cycle must be tested in Devnet.
Full Local Test Process
Added tests to:
fio.test develop
bravo-migr-test.js:
Release delta (develop - migr2) - remove data from old tables (fioreqctxts, recordobts, fioreqstss)
Release echo (migr/final-rc1) - remove migrtrx action, remove references to old tables (fioreqctxts, recordobts, fioreqstss)
This tests the final migration contract. The general test process:
Load fio.devtools with:
fio - develop (Bahamas)
fio.contracts - master (2.3)
fio.test - develop
Run fio.test. This does the migration of data.
Update fio.contracts to develop branch (migr2)
Build and load contracts with fio.devtools
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release delta (develop - migr2) - remove data from old tables (fioreqctxts, recordobts, fioreqstss)
Rerun fio.test. Should run cleanly
Update fio.contracts to migr/final-rc1 branch (migr3)
Build and load contracts with fio.devtools
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release echo (migr/final-rc1) - remove migrtrx action, remove references to old tables (fioreqctxts, recordobts, fioreqstss)
Rerun fio.test. Should run cleanly
Devnet test
Base Install
Devnet should be initialized with:
fio - release/2.0.x-dev
fio.contracts - master (2.3.2 - bravo)
Base Test
Run bravo-migr-test.js from fio.test develop. This will do the initial table migration.
Run full fio.test release/2.3.x - should run cleanly
Bahamas (fio chain) update
Fork testing
Ensure nodes are launching with History
Update 6 nodes to fio Bahamas and ensure no forking occurs
Update 15 nodes to fio Bahamas and ensure no forking occurs
Do NOT update remaining nodes to Bahamas
Run fio.test release/2.3.x against non-upgraded nodes - should run cleanly
Run fio.test develop tests against upgraded nodes - should run cleanly (you can comment out the migration tests)
Delta update (fio.contracts Step 2)
FIP-1.b
Update all nodes to fio.contracts develop (delta = migr2)
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release delta (develop - migr2) - remove data from old tables (fioreqctxts, recordobts, fioreqstss)
Run fio.test develop - should run cleanly
This will delete the data from the old tables and show confirmation.
Echo update (fio.contracts Step 3)
FIP-1.b
Update all nodes to fio.contracts migr/final-rc1 (echo = migr3)
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release echo (migr/final-rc1) - remove migrtrx action, remove references to old tables (fioreqctxts, recordobts, fioreqstss)
Run fio.test develop - should run cleanly
bravo-migr-test.js will confirm that tables no longer exist.