Enable stateful/long sync tests by features, mount rocksdb-based state at Sapling activation for sync_past_sapling_mainnet test
This commit is contained in:
parent
b3908b4425
commit
4a67e0e7bb
|
|
@ -48,11 +48,12 @@ jobs:
|
||||||
# Creates Compute Engine virtual machine instance w/ disks
|
# Creates Compute Engine virtual machine instance w/ disks
|
||||||
- name: Create instance
|
- name: Create instance
|
||||||
run: |
|
run: |
|
||||||
gcloud compute instances create "zebrad-tests-$BRANCH_NAME-$SHORT_SHA" \
|
gcloud compute instances create-with-container "zebrad-tests-$BRANCH_NAME-$SHORT_SHA" \
|
||||||
--boot-disk-size 100GB \
|
--boot-disk-size 100GB \
|
||||||
--boot-disk-type pd-ssd \
|
--boot-disk-type pd-ssd \
|
||||||
--image-family cos-stable \
|
--container-image rust:buster \
|
||||||
--image-project cos-cloud \
|
--container-mount-disk mount-path='/zebrad-cache',name=zebrad-cache-mainnet-sapling-activation \
|
||||||
|
--create-disk name=zebrad-cache-mainnet-sapling-activation,image=zebrad-cache-062a5ae-mainnet-height-419200 \
|
||||||
--machine-type n2-standard-4 \
|
--machine-type n2-standard-4 \
|
||||||
--service-account cos-vm@zealous-zebra.iam.gserviceaccount.com \
|
--service-account cos-vm@zealous-zebra.iam.gserviceaccount.com \
|
||||||
--scopes cloud-platform \
|
--scopes cloud-platform \
|
||||||
|
|
@ -62,9 +63,13 @@ jobs:
|
||||||
# Build and run test container
|
# Build and run test container
|
||||||
- name: Run all tests
|
- name: Run all tests
|
||||||
run: |
|
run: |
|
||||||
gcloud compute ssh "zebrad-tests-$BRANCH_NAME-$SHORT_SHA" --zone "$ZONE" \
|
gcloud compute ssh "zebrad-tests-$BRANCH_NAME-$SHORT_SHA" --zone "$ZONE" --command \
|
||||||
--command "git clone -b $BRANCH_NAME https://github.com/ZcashFoundation/zebra.git; cd zebra/; docker build -f docker/Dockerfile.test -t zebrad-test .; docker run -i zebrad-test cargo test --workspace --no-fail-fast -- -Zunstable-options --include-ignored"
|
"git clone -b $BRANCH_NAME https://github.com/ZcashFoundation/zebra.git;
|
||||||
|
cd zebra/;
|
||||||
|
docker build -f docker/Dockerfile.test -t zebrad-test .;
|
||||||
|
docker run -i zebrad-test cargo test --workspace --no-fail-fast -- -Zunstable-options --include-ignored;
|
||||||
|
docker run -it --mount type=bind,source=/mnt/disks/gce-containers-mounts/gce-persistent-disks/zebrad-cache-mainnet-sapling-activation,target=/zebrad-cache zebrad-test:latest cargo test --verbose --features test_sync_to_sapling_mainnet --manifest-path zebrad/Cargo.toml sync_to_sapling_mainnet;
|
||||||
|
"
|
||||||
# Clean up
|
# Clean up
|
||||||
- name: Delete test instance
|
- name: Delete test instance
|
||||||
# Always run even if the earlier step fails
|
# Always run even if the earlier step fails
|
||||||
|
|
|
||||||
|
|
@ -44,3 +44,9 @@ abscissa_core = { version = "0.5", features = ["testing"] }
|
||||||
once_cell = "1.5"
|
once_cell = "1.5"
|
||||||
tempdir = "0.3.7"
|
tempdir = "0.3.7"
|
||||||
zebra-test = { path = "../zebra-test" }
|
zebra-test = { path = "../zebra-test" }
|
||||||
|
|
||||||
|
[features]
|
||||||
|
test_sync_to_sapling_mainnet = []
|
||||||
|
test_sync_to_sapling_testnet = []
|
||||||
|
test_sync_past_sapling_mainnet = []
|
||||||
|
test_sync_past_sapling_testnet = []
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,10 @@
|
||||||
|
|
||||||
#![warn(warnings, missing_docs, trivial_casts, unused_qualifications)]
|
#![warn(warnings, missing_docs, trivial_casts, unused_qualifications)]
|
||||||
#![forbid(unsafe_code)]
|
#![forbid(unsafe_code)]
|
||||||
|
#![allow(clippy::dead_code)]
|
||||||
|
#![allow(clippy::field_reassign_with_default)]
|
||||||
#![allow(clippy::try_err)]
|
#![allow(clippy::try_err)]
|
||||||
#![allow(clippy::unknown_clippy_lints)]
|
#![allow(clippy::unknown_clippy_lints)]
|
||||||
#![allow(clippy::field_reassign_with_default)]
|
|
||||||
|
|
||||||
use color_eyre::eyre::Result;
|
use color_eyre::eyre::Result;
|
||||||
use eyre::WrapErr;
|
use eyre::WrapErr;
|
||||||
|
|
@ -698,28 +699,27 @@ fn sync_past_sapling(network: Network) -> Result<()> {
|
||||||
// drives populated by the first two tests, snapshot those drives, and then use
|
// drives populated by the first two tests, snapshot those drives, and then use
|
||||||
// those to more quickly run the second two tests.
|
// those to more quickly run the second two tests.
|
||||||
|
|
||||||
// Create a cached copy of the mainnet database up to the sapling activation
|
// Sync up to the sapling activation height on mainnet and stop.
|
||||||
// height.
|
#[cfg_attr(feature = "test_sync_to_sapling_mainnet", test)]
|
||||||
#[test]
|
fn sync_to_sapling_mainnet() {
|
||||||
#[ignore]
|
|
||||||
fn create_mainnet_cache() {
|
|
||||||
zebra_test::init();
|
zebra_test::init();
|
||||||
let network = Mainnet;
|
let network = Mainnet;
|
||||||
create_cached_database(network).unwrap();
|
create_cached_database(network).unwrap();
|
||||||
}
|
}
|
||||||
// Create a cached copy of the testnet database up to the sapling activation
|
// Sync to the sapling activation height testnet and stop.
|
||||||
// height.
|
#[cfg_attr(feature = "test_sync_to_sapling_testnet", test)]
|
||||||
#[test]
|
fn sync_to_sapling_testnet() {
|
||||||
#[ignore]
|
|
||||||
fn create_testnet_cache() {
|
|
||||||
zebra_test::init();
|
zebra_test::init();
|
||||||
let network = Testnet;
|
let network = Testnet;
|
||||||
create_cached_database(network).unwrap();
|
create_cached_database(network).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Test syncing 1200 blocks (3 checkpoints) past the last checkpoint on mainnet.
|
/// Test syncing 1200 blocks (3 checkpoints) past the last checkpoint on mainnet.
|
||||||
#[test]
|
///
|
||||||
#[ignore]
|
/// This assumes that the config'd state is already synced at or near Sapling
|
||||||
|
/// activation on mainnet. If the state has already synced past Sapling
|
||||||
|
/// activation by 1200 blocks, it will fail.
|
||||||
|
#[cfg_attr(feature = "test_sync_past_sapling_mainnet", test)]
|
||||||
fn sync_past_sapling_mainnet() {
|
fn sync_past_sapling_mainnet() {
|
||||||
zebra_test::init();
|
zebra_test::init();
|
||||||
let network = Mainnet;
|
let network = Mainnet;
|
||||||
|
|
@ -727,8 +727,11 @@ fn sync_past_sapling_mainnet() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Test syncing 1200 blocks (3 checkpoints) past the last checkpoint on testnet.
|
/// Test syncing 1200 blocks (3 checkpoints) past the last checkpoint on testnet.
|
||||||
#[test]
|
///
|
||||||
#[ignore]
|
/// This assumes that the config'd state is already synced at or near Sapling
|
||||||
|
/// activation on testnet. If the state has already synced past Sapling
|
||||||
|
/// activation by 1200 blocks, it will fail.
|
||||||
|
#[cfg_attr(feature = "test_sync_past_sapling_testnet", test)]
|
||||||
fn sync_past_sapling_testnet() {
|
fn sync_past_sapling_testnet() {
|
||||||
zebra_test::init();
|
zebra_test::init();
|
||||||
let network = Testnet;
|
let network = Testnet;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue