Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests fail on s390x #13

Open
kalev opened this issue Aug 18, 2023 · 1 comment
Open

Tests fail on s390x #13

kalev opened this issue Aug 18, 2023 · 1 comment

Comments

@kalev
Copy link
Contributor

kalev commented Aug 18, 2023

I am looking into packaging gvdb-rs for Fedora and it turns out the self tests are failing on the s390x architecture:

running 59 tests
test read::error::test::derives ... ok
test read::error::test::from ... ok
test read::file::test::broken_hash_table2 ... ok
test read::file::test::broken_hash_table ... ok
test read::file::test::file_does_not_exist ... ok
test read::file::test::invalid_header ... ok
test read::file::test::invalid_version ... ok
test read::file::test::test_dereference_offset3 ... FAILED
test read::file::test::test_dereference_offset2 ... FAILED
test read::file::test::test_dereference_alignment ... FAILED
test read::file::test::test_dereference_offset1 ... FAILED
test read::file::test::test_file_2 ... ok
test read::file::test::test_nested_dict_fail ... ok
test read::file::test::test_file_1 ... ok
test read::file::test::test_minimal_file ... FAILED
test read::file::test::test_nested_dict ... ok
test read::hash::test::bloom_shift ... ok
test read::hash::test::bloom_words ... ok
test read::hash::test::derives ... ok
test read::hash::test::get_bloom_word ... ok
test read::hash::test::get ... FAILED
test read::hash::test::get_hash_table ... ok
test read::hash::test::get_header ... ok
test read::hash_item::test::derives ... ok
test read::hash::test::get_item ... FAILED
test read::hash_item::test::type_try_from ... ok
test read::hash::test::get_value ... FAILED
test read::header::test::header_serialize ... ok
test read::header::test::derives ... ok
test read::hash_item::test::item ... ok
test read::pointer::test::derives ... ok
test test::test::assert_bytes_eq2 ... ok
test test::test::assert_bytes_eq_fail1 - should panic ... ok
test test::test::assert_bytes_eq1 ... ok
test test::test::assert_bytes_eq_fail2 - should panic ... ok
test test::test::assert_bytes_eq_fail4 - should panic ... ok
test test::test::assert_bytes_eq_fail3 - should panic ... ok
test util::test::align ... ok
test write::error::test::from ... ok
test write::file::test::big_endian ... FAILED
test write::file::test::derives ... ok
test write::file::test::file_builder_file_1 ... FAILED
test write::file::test::empty_key ... ok
test write::file::test::file_builder_file_2 ... FAILED
test write::file::test::hash_table_builder2 ... ok
test write::file::test::io_error ... ok
test write::file::test::missing_child ... ok
test write::file::test::missing_root ... ok
test write::file::test::remove_child ... ok
test write::file::test::remove_child2 ... ok
test write::hash::test::derives ... ok
test read::file::test::test_file_3 ... ok
test write::hash::test::simple_hash_table ... ok
test write::file::test::hash_table_builder1 ... ok
test write::item::test::builder_item ... ok
test write::item::test::derives ... ok
test write::item::test::item_value ... ok
test write::hash::test::simple_hash_table_2 ... ok
test write::file::test::reproducible_build ... ok
failures:
---- read::file::test::test_dereference_offset3 stdout ----
GVDB header
thread 'read::file::test::test_dereference_offset3' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
<00000000  7�[1;48;5;52;31m2 6�[1;48;5;52;31m1 �[1;48;5;52;31m56 �[1;48;5;52;31m47  �[1;48;5;52;31m74 6�[1;48;5;52;31mE 61 6�[1;48;5;52;31m9  00 00 00 00  00 00 00 00  �[1;48;5;52;31mraVG�[1;48;5;52;31mtnai........
>00000000  �[1;48;5;22;32m47 �[1;48;5;22;32m56 6�[1;48;5;22;32m1 7�[1;48;5;22;32m2  6�[1;48;5;22;32m9 61 6�[1;48;5;22;32mE �[1;48;5;22;32m74 �[1;48;5;22;32m 00 00 00 00  00 00 00 00  G�[1;48;5;22;32mVa�[1;48;5;22;32mri�[1;48;5;22;32mant........
 00000010  00 00 00 00  00 00 00 00                            ........
 
', src/test.rs:129:13
---- read::file::test::test_dereference_offset2 stdout ----
GVDB header
thread 'read::file::test::test_dereference_offset2' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
<00000000  7�[1;48;5;52;31m2 6�[1;48;5;52;31m1 �[1;48;5;52;31m56 �[1;48;5;52;31m47  �[1;48;5;52;31m74 6�[1;48;5;52;31mE 61 6�[1;48;5;52;31m9  00 00 00 00  00 00 00 00  �[1;48;5;52;31mraVG�[1;48;5;52;31mtnai........
>00000000  �[1;48;5;22;32m47 �[1;48;5;22;32m56 6�[1;48;5;22;32m1 7�[1;48;5;22;32m2  6�[1;48;5;22;32m9 61 6�[1;48;5;22;32mE �[1;48;5;22;32m74 �[1;48;5;22;32m 00 00 00 00  00 00 00 00  G�[1;48;5;22;32mVa�[1;48;5;22;32mri�[1;48;5;22;32mant........
 00000010  00 00 00 00  00 00 00 00                            ........
 
', src/test.rs:129:13
---- read::file::test::test_dereference_alignment stdout ----
GVDB header
thread 'read::file::test::test_dereference_alignment' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
<00000000  7�[1;48;5;52;31m2 6�[1;48;5;52;31m1 �[1;48;5;52;31m56 �[1;48;5;52;31m47  �[1;48;5;52;31m74 6�[1;48;5;52;31mE 61 6�[1;48;5;52;31m9  00 00 00 00  00 00 00 00  �[1;48;5;52;31mraVG�[1;48;5;52;31mtnai........
>00000000  �[1;48;5;22;32m47 �[1;48;5;22;32m56 6�[1;48;5;22;32m1 7�[1;48;5;22;32m2  6�[1;48;5;22;32m9 61 6�[1;48;5;22;32mE �[1;48;5;22;32m74 �[1;48;5;22;32m 00 00 00 00  00 00 00 00  G�[1;48;5;22;32mVa�[1;48;5;22;32mri�[1;48;5;22;32mant........
 00000010  00 00 00 00  00 00 00 00                            ........
 
', src/test.rs:129:13
---- read::file::test::test_dereference_offset1 stdout ----
GVDB header
thread 'read::file::test::test_dereference_offset1' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
<00000000  7�[1;48;5;52;31m2 6�[1;48;5;52;31m1 �[1;48;5;52;31m56 �[1;48;5;52;31m47  �[1;48;5;52;31m74 6�[1;48;5;52;31mE 61 6�[1;48;5;52;31m9  00 00 00 00  00 00 00 00  �[1;48;5;52;31mraVG�[1;48;5;52;31mtnai........
>00000000  �[1;48;5;22;32m47 �[1;48;5;22;32m56 6�[1;48;5;22;32m1 7�[1;48;5;22;32m2  6�[1;48;5;22;32m9 61 6�[1;48;5;22;32mE �[1;48;5;22;32m74 �[1;48;5;22;32m 00 00 00 00  00 00 00 00  G�[1;48;5;22;32mVa�[1;48;5;22;32mri�[1;48;5;22;32mant........
 00000010  00 00 00 00  00 00 00 00                            ........
 
', src/test.rs:129:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
---- read::file::test::test_minimal_file stdout ----
GVDB header
thread 'read::file::test::test_minimal_file' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
<00000000  7�[1;48;5;52;31m2 6�[1;48;5;52;31m1 �[1;48;5;52;31m56 �[1;48;5;52;31m47  �[1;48;5;52;31m74 6�[1;48;5;52;31mE 61 6�[1;48;5;52;31m9  00 00 00 00  00 00 00 00  �[1;48;5;52;31mraVG�[1;48;5;52;31mtnai........
>00000000  �[1;48;5;22;32m47 �[1;48;5;22;32m56 6�[1;48;5;22;32m1 7�[1;48;5;22;32m2  6�[1;48;5;22;32m9 61 6�[1;48;5;22;32mE �[1;48;5;22;32m74 �[1;48;5;22;32m 00 00 00 00  00 00 00 00  G�[1;48;5;22;32mVa�[1;48;5;22;32mri�[1;48;5;22;32mant........
 00000010  00 00 00 00  00 00 00 00                            ........
 
', src/test.rs:129:13
---- read::hash::test::get stdout ----
thread 'read::hash::test::get' panicked at 'called `Result::unwrap()` on an `Err` value: KeyError("test")', src/read/hash.rs:448:59
---- read::hash::test::get_item stdout ----
thread 'read::hash::test::get_item' panicked at 'called `Result::unwrap()` on an `Err` value: KeyError("test")', src/read/hash.rs:430:52
---- read::hash::test::get_value stdout ----
thread 'read::hash::test::get_value' panicked at 'called `Result::unwrap()` on an `Err` value: KeyError("test")', src/read/hash.rs:481:47
---- write::file::test::big_endian stdout ----
thread 'write::file::test::big_endian' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
>root_key
', src/test.rs:162:5
---- write::file::test::file_builder_file_1 stdout ----
thread 'write::file::test::file_builder_file_1' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
>root_key
', src/test.rs:162:5
---- write::file::test::file_builder_file_2 stdout ----
thread 'write::file::test::file_builder_file_2' panicked at 'assertion failed: `(left == right)`
Diff < left / right > :
>string
', src/test.rs:187:5
failures:
    read::file::test::test_dereference_alignment
    read::file::test::test_dereference_offset1
    read::file::test::test_dereference_offset2
    read::file::test::test_dereference_offset3
    read::file::test::test_minimal_file
    read::hash::test::get
    read::hash::test::get_item
    read::hash::test::get_value
    write::file::test::big_endian
    write::file::test::file_builder_file_1
    write::file::test::file_builder_file_2
test result: FAILED. 48 passed; 11 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
error: test failed, to rerun pass `--lib

Any ideas what's going on? It's not super important since we can easily exclude it on s390x if needed (so loupe won't be available on that architecture).

https://bugzilla.redhat.com/show_bug.cgi?id=2230729#c4

@felinira
Copy link
Owner

I presume this is a big-endian issue. It's really difficult to come by a big-endian machine to run tests on. Will take a look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants