Running the tests failed
liangcheng-yu opened this issue · 2 comments
Hi, I was trying to set up ubpf on a clean Ubuntu 20.04.6 LTS, everything went well but the tests failed. Below are the details:
sudo apt-get update
sudo apt install cmake # version == 3.16.3
sudo apt install python2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py
git clone https://github.com/iovisor/ubpf/
git submodule init
git submodule update --recursive
pip2 install -r requirements.txt
sudo apt-get install libbpf-dev
sudo apt-get install libboost-all-dev
git clone https://github.com/serge1/ELFIO.git
sudo mv ELFIO/elfio/ /usr/local/include/
sudo apt-get install clang # clang version 10.0.0, newer than 3.7
cmake -S . -B build -DUBPF_ENABLE_TESTS=true
cmake --build build --config Debug
cmake --build build --target test -- # This is the step that gets wrong
I got the following error:
Running tests...
Test project /home/ubuntu/ubpf/build
Start 1: cpu_v1
1/38 Test #1: cpu_v1 ...........................***Failed 0.10 sec
Start 2: cpu_v2
2/38 Test #2: cpu_v2 ...........................***Failed 0.01 sec
Start 3: cpu_v3
3/38 Test #3: cpu_v3 ...........................***Failed 0.00 sec
Start 4: elf_format
4/38 Test #4: elf_format .......................***Failed 0.00 sec
Start 5: no_bpf_bytecode
5/38 Test #5: no_bpf_bytecode ..................***Failed Required regular expression not found. Regex=[Test file has no BPF instructions
] 0.00 sec
Start 6: invalid_return_value
6/38 Test #6: invalid_return_value .............***Failed Required regular expression not found. Regex=[Plugin returned invalid return value Hello World
] 0.00 sec
Start 7: wrong_output
7/38 Test #7: wrong_output .....................***Failed Required regular expression not found. Regex=[Plugin returned incorrect return value 1 expected 3
] 0.00 sec
Start 8: invalid_plugin_name
8/38 Test #8: invalid_plugin_name ..............***Failed Required regular expression not found. Regex=[failed to execute test
] 0.00 sec
Start 9: plugin_failed
9/38 Test #9: plugin_failed ....................***Failed Required regular expression not found. Regex=[Plugin returned error code 2
] 0.00 sec
Start 10: wrong_error
10/38 Test #10: wrong_error ......................***Failed Required regular expression not found. Regex=[Plugin returned error code 1 and output but expected Invalid
] 0.00 sec
Start 11: expect_failure
11/38 Test #11: expect_failure ...................***Failed Required regular expression not found. Regex=[Plugin returned invalid return value This is a negative test
] 0.00 sec
Start 12: verifier_failure
12/38 Test #12: verifier_failure .................***Failed Required regular expression not found. Regex=[Plugin returned error code 1 and output Failed to load program
] 0.00 sec
Start 13: invalid_register
13/38 Test #13: invalid_register .................***Failed Required regular expression not found. Regex=[Invalid register: %r50
] 0.00 sec
Start 14: invalid_offset
14/38 Test #14: invalid_offset ...................***Failed Required regular expression not found. Regex=[Failed to decode register and offset: %r1
] 0.01 sec
Start 15: invalid_operand_count
15/38 Test #15: invalid_operand_count ............***Failed Required regular expression not found. Regex=[Invalid number of operands for mnemonic: lddw
] 0.00 sec
Start 16: invalid_label
16/38 Test #16: invalid_label ....................***Failed Required regular expression not found. Regex=[Invalid label: NOT_A_LABEL
] 0.00 sec
Start 17: invalid_mnemonic
17/38 Test #17: invalid_mnemonic .................***Failed Required regular expression not found. Regex=[Invalid mnemonic: ldxq
] 0.01 sec
Start 18: libbpf_plugin_usage
18/38 Test #18: libbpf_plugin_usage ..............***Failed Required regular expression not found. Regex=[usage:
] 0.01 sec
Start 19: invalid_lock
19/38 Test #19: invalid_lock .....................***Failed Required regular expression not found. Regex=[Invalid number of operands
] 0.01 sec
Start 20: invalid_lock2
20/38 Test #20: invalid_lock2 ....................***Failed Required regular expression not found. Regex=[Invalid number of operands for lock
] 0.01 sec
Start 21: include_test
21/38 Test #21: include_test .....................***Failed Required regular expression not found. Regex=[PASS
] 0.01 sec
Start 22: exclude_test
22/38 Test #22: exclude_test .....................***Failed Required regular expression not found. Regex=[SKIP
] 0.00 sec
Start 23: negative_include_test
23/38 Test #23: negative_include_test ............***Failed Required regular expression not found. Regex=[SKIP
] 0.01 sec
Start 24: negative_exclude_test
24/38 Test #24: negative_exclude_test ............***Failed 0.00 sec
Start 25: usage
25/38 Test #25: usage ............................***Failed Required regular expression not found. Regex=[Options:
] 0.01 sec
Start 26: missing_test_path
26/38 Test #26: missing_test_path ................***Failed Required regular expression not found. Regex=[test_file_path or test_file_directory
] 0.01 sec
Start 27: missing_plugin_path
27/38 Test #27: missing_plugin_path ..............***Failed Required regular expression not found. Regex=[plugin_path is required
] 0.01 sec
Start 28: invalid_cpu_version
28/38 Test #28: invalid_cpu_version ..............***Failed Required regular expression not found. Regex=[Invalid CPU version
] 0.00 sec
Start 29: invalid_test_directory
29/38 Test #29: invalid_test_directory ...........***Failed Required regular expression not found. Regex=[No such file or directory
] 0.00 sec
Start 30: fail_with_error
30/38 Test #30: fail_with_error ..................***Failed Required regular expression not found. Regex=[Plugin returned error code 1 and output
] 0.01 sec
Start 31: unknown_directive
31/38 Test #31: unknown_directive ................***Failed Required regular expression not found. Regex=[Test file has no BPF instructions.
] 0.01 sec
Start 32: libbpf_program_bytes
32/38 Test #32: libbpf_program_bytes .............***Failed Required regular expression not found. Regex=[0
] 0.01 sec
Start 33: invalid_option
Could not find executable /home/ubuntu/ubpf/build/external/bpf_conformance/bin/bpf_conformance_runner
Looked in the following places:
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Release/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Release/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Debug/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Debug/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/MinSizeRel/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/MinSizeRel/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/RelWithDebInfo/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/RelWithDebInfo/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Deployment/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Deployment/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Development/bpf_conformance_runner
/home/ubuntu/ubpf/build/external/bpf_conformance/bin/Development/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Release/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Release/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Debug/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Debug/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/MinSizeRel/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/MinSizeRel/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/RelWithDebInfo/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/RelWithDebInfo/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Deployment/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Deployment/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Development/bpf_conformance_runner
home/ubuntu/ubpf/build/external/bpf_conformance/bin/Development/bpf_conformance_runner
Unable to find executable: /home/ubuntu/ubpf/build/external/bpf_conformance/bin/bpf_conformance_runner
33/38 Test #33: invalid_option ...................***Not Run 0.00 sec
Start 34: list_used_instructions
34/38 Test #34: list_used_instructions ...........***Failed Required regular expression not found. Regex=[Instructions used by tests
] 0.01 sec
Start 35: list_unused_instructions
35/38 Test #35: list_unused_instructions .........***Failed Required regular expression not found. Regex=[Instructions not used by tests
] 0.00 sec
Start 36: back_compat
36/38 Test #36: back_compat ......................***Failed 0.01 sec
Start 37: map_TEST_INTERPRET
37/38 Test #37: map_TEST_INTERPRET ............... Passed 0.00 sec
Start 38: map_TEST_JIT
38/38 Test #38: map_TEST_JIT ..................... Passed 0.00 sec
5% tests passed, 36 tests failed out of 38
Total Test time (real) = 0.32 sec
The following tests FAILED:
1 - cpu_v1 (Failed)
2 - cpu_v2 (Failed)
3 - cpu_v3 (Failed)
4 - elf_format (Failed)
5 - no_bpf_bytecode (Failed)
6 - invalid_return_value (Failed)
7 - wrong_output (Failed)
8 - invalid_plugin_name (Failed)
9 - plugin_failed (Failed)
10 - wrong_error (Failed)
11 - expect_failure (Failed)
12 - verifier_failure (Failed)
13 - invalid_register (Failed)
14 - invalid_offset (Failed)
15 - invalid_operand_count (Failed)
16 - invalid_label (Failed)
17 - invalid_mnemonic (Failed)
18 - libbpf_plugin_usage (Failed)
19 - invalid_lock (Failed)
20 - invalid_lock2 (Failed)
21 - include_test (Failed)
22 - exclude_test (Failed)
23 - negative_include_test (Failed)
24 - negative_exclude_test (Failed)
25 - usage (Failed)
26 - missing_test_path (Failed)
27 - missing_plugin_path (Failed)
28 - invalid_cpu_version (Failed)
29 - invalid_test_directory (Failed)
30 - fail_with_error (Failed)
31 - unknown_directive (Failed)
32 - libbpf_program_bytes (Failed)
33 - invalid_option (Not Run)
34 - list_used_instructions (Failed)
35 - list_unused_instructions (Failed)
36 - back_compat (Failed)
Errors while running CTest
make: *** [Makefile:73: test] Error 8
Noticing that somehow by default the binary for bpf_conformance_runner is at the wrong place, so I manually cp build/bin/bpf_conformance_runner build/external/bpf_conformance/bin/
and got
Running tests...
Test project /home/ubuntu/ubpf/build
Start 1: cpu_v1
1/38 Test #1: cpu_v1 ...........................***Failed 0.32 sec
Start 2: cpu_v2
2/38 Test #2: cpu_v2 ...........................***Failed 0.12 sec
Start 3: cpu_v3
3/38 Test #3: cpu_v3 ...........................***Failed 0.15 sec
Start 4: elf_format
4/38 Test #4: elf_format .......................***Failed 0.16 sec
Start 5: no_bpf_bytecode
5/38 Test #5: no_bpf_bytecode .................. Passed 0.01 sec
Start 6: invalid_return_value
6/38 Test #6: invalid_return_value ............. Passed 0.06 sec
Start 7: wrong_output
7/38 Test #7: wrong_output ..................... Passed 0.01 sec
Start 8: invalid_plugin_name
8/38 Test #8: invalid_plugin_name .............. Passed 0.01 sec
Start 9: plugin_failed
9/38 Test #9: plugin_failed .................... Passed 0.02 sec
Start 10: wrong_error
10/38 Test #10: wrong_error ......................***Failed Required regular expression not found. Regex=[Plugin returned error code 1 and output but expected Invalid
] 0.01 sec
Start 11: expect_failure
11/38 Test #11: expect_failure ................... Passed 0.01 sec
Start 12: verifier_failure
12/38 Test #12: verifier_failure .................***Failed Required regular expression not found. Regex=[Plugin returned error code 1 and output Failed to load program
] 0.01 sec
Start 13: invalid_register
13/38 Test #13: invalid_register ................. Passed 0.01 sec
Start 14: invalid_offset
14/38 Test #14: invalid_offset ................... Passed 0.01 sec
Start 15: invalid_operand_count
15/38 Test #15: invalid_operand_count ............ Passed 0.02 sec
Start 16: invalid_label
16/38 Test #16: invalid_label .................... Passed 0.01 sec
Start 17: invalid_mnemonic
17/38 Test #17: invalid_mnemonic ................. Passed 0.01 sec
Start 18: libbpf_plugin_usage
18/38 Test #18: libbpf_plugin_usage ..............***Failed Required regular expression not found. Regex=[usage:
] 0.01 sec
Start 19: invalid_lock
19/38 Test #19: invalid_lock ..................... Passed 0.01 sec
Start 20: invalid_lock2
20/38 Test #20: invalid_lock2 .................... Passed 0.01 sec
Start 21: include_test
21/38 Test #21: include_test .....................***Failed Required regular expression not found. Regex=[PASS
] 0.01 sec
Start 22: exclude_test
22/38 Test #22: exclude_test ..................... Passed 0.01 sec
Start 23: negative_include_test
23/38 Test #23: negative_include_test ............ Passed 0.01 sec
Start 24: negative_exclude_test
24/38 Test #24: negative_exclude_test ............***Failed 0.01 sec
Start 25: usage
25/38 Test #25: usage ............................ Passed 0.01 sec
Start 26: missing_test_path
26/38 Test #26: missing_test_path ................ Passed 0.01 sec
Start 27: missing_plugin_path
27/38 Test #27: missing_plugin_path .............. Passed 0.01 sec
Start 28: invalid_cpu_version
28/38 Test #28: invalid_cpu_version .............. Passed 0.01 sec
Start 29: invalid_test_directory
29/38 Test #29: invalid_test_directory ........... Passed 0.01 sec
Start 30: fail_with_error
30/38 Test #30: fail_with_error ..................***Failed Required regular expression not found. Regex=[Plugin returned error code 1 and output
] 0.01 sec
Start 31: unknown_directive
31/38 Test #31: unknown_directive ................ Passed 0.01 sec
Start 32: libbpf_program_bytes
32/38 Test #32: libbpf_program_bytes .............***Failed Required regular expression not found. Regex=[0
] 0.01 sec
Start 33: invalid_option
33/38 Test #33: invalid_option ................... Passed 0.00 sec
Start 34: list_used_instructions
34/38 Test #34: list_used_instructions ........... Passed 0.12 sec
Start 35: list_unused_instructions
35/38 Test #35: list_unused_instructions ......... Passed 0.12 sec
Start 36: back_compat
36/38 Test #36: back_compat ......................***Failed 0.01 sec
Start 37: map_TEST_INTERPRET
37/38 Test #37: map_TEST_INTERPRET ............... Passed 0.00 sec
Start 38: map_TEST_JIT
38/38 Test #38: map_TEST_JIT ..................... Passed 0.00 sec
68% tests passed, 12 tests failed out of 38
Total Test time (real) = 1.41 sec
The following tests FAILED:
1 - cpu_v1 (Failed)
2 - cpu_v2 (Failed)
3 - cpu_v3 (Failed)
4 - elf_format (Failed)
10 - wrong_error (Failed)
12 - verifier_failure (Failed)
18 - libbpf_plugin_usage (Failed)
21 - include_test (Failed)
24 - negative_exclude_test (Failed)
30 - fail_with_error (Failed)
32 - libbpf_program_bytes (Failed)
36 - back_compat (Failed)
Errors while running CTest
make: *** [Makefile:73: test] Error 8
It is better than the prior success rate (5%), still some tests failed.
I am wondering about what is missing, e.g., is it necessary to roll back the clang version to 3.7? Thanks!
Thanks Alan! The issue is resolved.
Hi Alan, I moved to another clean Ubuntu 20.04.06 LTS VM, but somehow there is a few tests failed, as attached below.
Note that I was running the same set up as before (which gave me 100% tests passed), it seems to be caused by some minor reason between the two VMs.
611/630 Test #611: invalid_lock ....................................................................... Passed 0.01 sec
Start 612: invalid_lock2
612/630 Test #612: invalid_lock2 ...................................................................... Passed 0.01 sec
Start 613: include_test
613/630 Test #613: include_test .......................................................................***Failed Required regular expression not found. Regex=[PASS
] 0.01 sec
Start 614: exclude_test
614/630 Test #614: exclude_test ....................................................................... Passed 0.02 sec
Start 615: negative_include_test
615/630 Test #615: negative_include_test .............................................................. Passed 0.01 sec
Start 616: negative_exclude_test
616/630 Test #616: negative_exclude_test ..............................................................***Failed 0.01 sec
Start 617: usage
617/630 Test #617: usage .............................................................................. Passed 0.01 sec
Start 618: missing_test_path
618/630 Test #618: missing_test_path .................................................................. Passed 0.01 sec
Start 619: missing_plugin_path
619/630 Test #619: missing_plugin_path ................................................................ Passed 0.01 sec
Start 620: invalid_cpu_version
620/630 Test #620: invalid_cpu_version ................................................................ Passed 0.01 sec
Start 621: invalid_test_directory
621/630 Test #621: invalid_test_directory ............................................................. Passed 0.01 sec
Start 622: fail_with_error
622/630 Test #622: fail_with_error .................................................................... Passed 0.01 sec
Start 623: unknown_directive
623/630 Test #623: unknown_directive .................................................................. Passed 0.01 sec
Start 624: libbpf_program_bytes
624/630 Test #624: libbpf_program_bytes ...............................................................***Failed Required regular expression not found. Regex=[0
] 0.01 sec
Start 625: invalid_option
625/630 Test #625: invalid_option ..................................................................... Passed 0.00 sec
Start 626: list_used_instructions
626/630 Test #626: list_used_instructions ............................................................. Passed 0.29 sec
Start 627: list_unused_instructions
627/630 Test #627: list_unused_instructions ........................................................... Passed 0.28 sec
Start 628: back_compat
628/630 Test #628: back_compat ........................................................................***Failed 0.01 sec
Start 629: map_TEST_INTERPRET
629/630 Test #629: map_TEST_INTERPRET ................................................................. Passed 0.00 sec
Start 630: map_TEST_JIT
630/630 Test #630: map_TEST_JIT ....................................................................... Passed 0.00 sec
99% tests passed, 8 tests failed out of 630
Total Test time (real) = 7.54 sec
The following tests FAILED:
593 - cpu_v1 (Failed)
594 - cpu_v2 (Failed)
595 - cpu_v3 (Failed)
596 - elf_format (Failed)
613 - include_test (Failed)
616 - negative_exclude_test (Failed)
624 - libbpf_program_bytes (Failed)
628 - back_compat (Failed)
Errors while running CTest
make: *** [Makefile:73: test] Error 8
What's odd is that the two VMs have the same exact OS release (20.04.6 LTS (Focal Fossa)), clang version etc.
The only minor difference is that the VM with 100% tests passed has a slightly different kernel verision:
# The one with 100% tests
ubuntu@ip-172-31-80-18:~/ubpf$ uname -a
Linux ip-172-31-80-18 5.15.0-1036-aws #40~20.04.1-Ubuntu SMP Mon Apr 24 00:21:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
# The one with 99% tests
lc@vm1:~/ubpf/programs$ uname -a
Linux rcf-vm1 5.15.0-1038-azure #45~20.04.1-Ubuntu SMP Tue Apr 25 18:45:15 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux