From 686b6051122c0decc14ddce6ccc7bcdf0691a0d3 Mon Sep 17 00:00:00 2001 From: Michael Sproul Date: Thu, 3 Dec 2020 22:07:12 +0000 Subject: [PATCH] Pretty-print EIP-3076 tests (#1977) ## Proposed Changes * Pretty-print the EIP-3076 tests to match https://github.com/eth2-clients/slashing-protection-interchange-tests/pull/4 * Move the `curl` invocation that downloads the tests to the test executor, removing the build script (closes #1982) --- validator_client/slashing_protection/Makefile | 4 ++-- validator_client/slashing_protection/build.rs | 7 ------- .../slashing_protection/src/bin/test_generator.rs | 4 +++- .../slashing_protection/tests/interop.rs | 12 ++++++++++++ 4 files changed, 17 insertions(+), 10 deletions(-) delete mode 100644 validator_client/slashing_protection/build.rs diff --git a/validator_client/slashing_protection/Makefile b/validator_client/slashing_protection/Makefile index 0c47e1b06..79960ec5a 100644 --- a/validator_client/slashing_protection/Makefile +++ b/validator_client/slashing_protection/Makefile @@ -1,4 +1,4 @@ -TESTS_TAG := b8413ca42dc92308019d0d4db52c87e9e125c4e9 +TESTS_TAG := f495032df9c26c678536cd2b7854e836ea94c217 GENERATE_DIR := generated-tests OUTPUT_DIR := interchange-tests TARBALL := $(OUTPUT_DIR)-$(TESTS_TAG).tar.gz @@ -10,7 +10,7 @@ $(OUTPUT_DIR): $(TARBALL) tar --strip-components=1 -xzf $^ -C $@ $(TARBALL): - curl -L -o $@ $(ARCHIVE_URL) + curl --fail -L -o $@ $(ARCHIVE_URL) clean-test-files: rm -rf $(OUTPUT_DIR) diff --git a/validator_client/slashing_protection/build.rs b/validator_client/slashing_protection/build.rs deleted file mode 100644 index 03abb88b4..000000000 --- a/validator_client/slashing_protection/build.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn main() { - let exit_status = std::process::Command::new("make") - .current_dir(std::env::var("CARGO_MANIFEST_DIR").unwrap()) - .status() - .unwrap(); - assert!(exit_status.success()); -} diff --git a/validator_client/slashing_protection/src/bin/test_generator.rs b/validator_client/slashing_protection/src/bin/test_generator.rs index 3e4bb6c59..7788a8a1c 100644 --- a/validator_client/slashing_protection/src/bin/test_generator.rs +++ b/validator_client/slashing_protection/src/bin/test_generator.rs @@ -5,6 +5,7 @@ use slashing_protection::interchange_test::{MultiTestCase, TestCase}; use slashing_protection::test_utils::{pubkey, DEFAULT_GENESIS_VALIDATORS_ROOT}; use slashing_protection::SUPPORTED_INTERCHANGE_FORMAT_VERSION; use std::fs::{self, File}; +use std::io::Write; use std::path::Path; use types::{Epoch, Hash256, Slot}; @@ -346,6 +347,7 @@ fn main() { for test in tests { test.run(); let f = File::create(output_dir.join(format!("{}.json", test.name))).unwrap(); - serde_json::to_writer(f, &test).unwrap(); + serde_json::to_writer_pretty(&f, &test).unwrap(); + writeln!(&f).unwrap(); } } diff --git a/validator_client/slashing_protection/tests/interop.rs b/validator_client/slashing_protection/tests/interop.rs index 7f0afd6a7..62cd03e25 100644 --- a/validator_client/slashing_protection/tests/interop.rs +++ b/validator_client/slashing_protection/tests/interop.rs @@ -2,7 +2,19 @@ use slashing_protection::interchange_test::MultiTestCase; use std::fs::File; use std::path::PathBuf; +fn download_tests() { + let make_output = std::process::Command::new("make") + .current_dir(std::env::var("CARGO_MANIFEST_DIR").unwrap()) + .output() + .expect("need `make` to succeed to download and untar slashing protection tests"); + if !make_output.status.success() { + eprintln!("{}", String::from_utf8_lossy(&make_output.stderr)); + panic!("Running `make` for slashing protection tests failed, see above"); + } +} + fn test_root_dir() -> PathBuf { + download_tests(); PathBuf::from(env!("CARGO_MANIFEST_DIR")) .join("interchange-tests") .join("tests")