fix test_new_from_file_crafted_executable for m1 (#26009)

* fix test_new_from_file_crafted_executable for m1

* re-add old assert/comment, but disable for aarch64
This commit is contained in:
apfitzge 2022-06-27 13:03:52 -04:00 committed by GitHub
parent 1a87b6cd97
commit 50eb9965ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 3 deletions

View File

@ -879,15 +879,21 @@ pub mod tests {
let accounts = av.accounts(0);
let account = accounts.first().unwrap();
// upper 7-bits are not 0, so sanitization should fail
assert!(!account.sanitize_executable());
// we can observe crafted value by ref
{
let executable_bool: &bool = &account.account_meta.executable;
// Depending on use, *executable_bool can be truthy or falsy due to direct memory manipulation
// assert_eq! thinks *executable_bool is equal to false but the if condition thinks it's not, contradictorily.
assert!(!*executable_bool);
const FALSE: bool = false; // keep clippy happy
if *executable_bool == FALSE {
panic!("This didn't occur if this test passed.");
#[cfg(not(target_arch = "aarch64"))]
{
const FALSE: bool = false; // keep clippy happy
if *executable_bool == FALSE {
panic!("This didn't occur if this test passed.");
}
}
assert_eq!(*account.ref_executable_byte(), crafted_executable);
}