Introduce automatic ABI maintenance mechanism (2/2; rollout) (#8012)
* Introduce automatic ABI maintenance mechanism (2/2; rollout) * Fix stable clippy * Change to symlink * Freeze abi of Tower * fmt... * Improve dev-experience! * Update BankSlotDelta $ diff -u /tmp/abi8/*7dg6BreYxTuxiVz6aLvk3p2Z7GQk2cJqfGvC9h4FAoSj* /tmp/abi8/*9chBcbXVJ4fK7uGgydQzam5aHipaAKFw6V4LDFpjbE4w* --- /tmp/abi8/bank__BankSlotDelta_frozen_abi__test_abi_digest_7dg6BreYxTuxiVz6aLvk3p2Z7GQk2cJqfGvC9h4FAoSj 2020-06-18 18:01:22.831228087 +0900 +++ /tmp/abi8/bank__BankSlotDelta_frozen_abi__test_abi_digest_9chBcbXVJ4fK7uGgydQzam5aHipaAKFw6V4LDFpjbE4w 2020-07-03 15:59:58.430695244 +0900 @@ -140,7 +140,7 @@ field u8 primitive u8 field solana_sdk::instruction::InstructionError - enum InstructionError (variants = 34) + enum InstructionError (variants = 35) variant(0) GenericError (unit) variant(1) InvalidArgument (unit) variant(2) InvalidInstructionData (unit) @@ -176,6 +176,7 @@ variant(31) CallDepth (unit) variant(32) MissingAccount (unit) variant(33) ReentrancyNotAllowed (unit) + variant(34) MaxSeedLengthExceeded (unit) variant(9) CallChainTooDeep (unit) variant(10) MissingSignatureForFee (unit) variant(11) InvalidAccountIndex (unit) * Fix some merge conflicts...
This commit is contained in:
@@ -7,7 +7,6 @@ repository = "https://github.com/solana-labs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
license = "Apache-2.0"
|
||||
edition = "2018"
|
||||
build = "../build.rs"
|
||||
|
||||
[lib]
|
||||
proc-macro = true
|
||||
|
1
sdk/macro-frozen-abi/build.rs
Symbolic link
1
sdk/macro-frozen-abi/build.rs
Symbolic link
@@ -0,0 +1 @@
|
||||
../build.rs
|
@@ -307,7 +307,7 @@ fn quote_for_test(
|
||||
#[cfg(test)]
|
||||
mod #test_mod_ident {
|
||||
use super::*;
|
||||
use ::solana_sdk::{abi_digester::AbiEnumVisitor, abi_example::AbiExample};
|
||||
use ::solana_sdk::abi_example::{AbiExample, AbiEnumVisitor};
|
||||
|
||||
#[test]
|
||||
fn test_abi_digest() {
|
||||
@@ -321,13 +321,18 @@ fn quote_for_test(
|
||||
::log::error!("digest error: {:#?}", result);
|
||||
}
|
||||
result.unwrap();
|
||||
let actual_digest = format!("{}", hash);
|
||||
if ::std::env::var("SOLANA_ABI_BULK_UPDATE").is_ok() {
|
||||
if #expected_digest != format!("{}", hash) {
|
||||
if #expected_digest != actual_digest {
|
||||
#p!("sed -i -e 's/{}/{}/g' $(git grep --files-with-matches frozen_abi)", #expected_digest, hash);
|
||||
}
|
||||
::log::warn!("Not testing the abi digest under SOLANA_ABI_BULK_UPDATE!");
|
||||
} else {
|
||||
assert_eq!(#expected_digest, format!("{}", hash), "Possibly ABI changed? Confirm the diff by rerunning before and after this test failed with SOLANA_ABI_DUMP_DIR");
|
||||
if let Ok(dir) = ::std::env::var("SOLANA_ABI_DUMP_DIR") {
|
||||
assert_eq!(#expected_digest, actual_digest, "Possibly ABI changed? Examine the diff in SOLANA_ABI_DUMP_DIR!: $ diff -u {}/*{}* {}/*{}*", dir, #expected_digest, dir, actual_digest);
|
||||
} else {
|
||||
assert_eq!(#expected_digest, actual_digest, "Possibly ABI changed? Confirm the diff by rerunning before and after this test failed with SOLANA_ABI_DUMP_DIR!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user