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.