Repository: hugsy/gef (branch: main)
Commit date: 2024-01-03T00:32:30Z

Workflow file: .github/workflows/run-tests.yml (CI Test for GEF)
name: CI Test for GEF

on:
  push:
    branches:
      - main

  pull_request:
    branches:
      - main

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-22.04
          - ubuntu-20.04
    name: "Run Unit tests on ${{ matrix.os }}"
    runs-on: ${{ matrix.os }}
    services:
      pypi_wayback:
        image: ghcr.io/waleko/pypi-wayback
        ports:
          - 8629:8080
    defaults:
      run:
        shell: bash

    steps:
    - uses: actions/checkout@v3

    - name: Install python and toolchain
      run: |
        sudo apt-get update
        sudo apt-get install -y gdb-multiarch python3-dev python3-pip python3-wheel python3-setuptools git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user
        sudo python3 -m pip install --upgrade pip

    - name: Set runtime environment variables
      run: |
        echo PY_VER=`gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit` >> $GITHUB_ENV
        echo GEF_CI_NB_CPU=`grep -c ^processor /proc/cpuinfo` >> $GITHUB_ENV
        echo GEF_CI_ARCH=`uname --processor` >> $GITHUB_ENV
        echo GEF_CI_CACHE_DIR=`python3 -m pip cache dir` >> $GITHUB_ENV

    - name: Cache dependencies
      uses: actions/cache@v3
      id: cache-deps
      env:
        cache-name: cache-deps
      with:
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        path: ${{ env.GEF_CI_CACHE_DIR }}
        restore-keys:
          ${{ runner.os }}-pip-${{ env.cache-name }}-
          ${{ runner.os }}-pip-
          ${{ runner.os }}-${{ env.cache-name }}-
          ${{ runner.os }}-

    - name: Install Python Requirements
      run: |
        mkdir -p ${{ env.GEF_CI_CACHE_DIR }}
        python${{ env.PY_VER }} -m pip install --user --upgrade -r tests/requirements.txt

    - name: Setup GEF
      run: |
        echo "source $(pwd)/gef.py" > ~/.gdbinit
        gdb -q -ex 'gef missing' -ex 'gef help' -ex 'gef config' -ex start -ex continue -ex quit /bin/pwd

    - name: Run Tests
      run: |
        make -C tests/binaries -j ${{ env.GEF_CI_NB_CPU }}
        python${{ env.PY_VER }} -m pytest --forked -n ${{ env.GEF_CI_NB_CPU }} -v -k "not benchmark" tests/

env:
  PIP_INDEX_URL: http://localhost:8629/2024-01-03
  UV_INDEX_URL: http://localhost:8629/2024-01-03


Failed build logs:
step_name: Run Unit tests on ubuntu-22.04/8_Run Tests.txt
log: ##[group]Run make -C tests/binaries -j 4
[36;1mmake -C tests/binaries -j 4[0m
[36;1mpython3.10 -m pytest --forked -n 4 -v -k "not benchmark" tests/[0m
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  PY_VER: 3.10
  GEF_CI_NB_CPU: 4
  GEF_CI_ARCH: x86_64
  GEF_CI_CACHE_DIR: /home/runner/.cache/pip
##[endgroup]
make: Entering directory '/home/runner/work/gef/gef/tests/binaries'
[+] Building '/tmp/bss.out'
[+] Building '/tmp/canary.out'
[+] Building '/tmp/checksec-no-canary.out'
[+] Building '/tmp/checksec-no-nx.out'
[+] Building '/tmp/checksec-no-pie.out'
[+] Building '/tmp/default.out'
[+] Building '/tmp/format-string-helper.out'
[+] Building '/tmp/heap-analysis.out'
[+] Building '/tmp/heap-bins.out'
[+] Building '/tmp/heap-fastbins.out'
[+] Building '/tmp/heap-multiple-heaps.out'
[+] Building '/tmp/heap-non-main.out'
[+] Building '/tmp/heap-tcache.out'
[+] Building '/tmp/heap.out'
[+] Building '/tmp/memwatch.out'
[+] Building '/tmp/mmap-known-address.out'
[+] Building '/tmp/nested.out'
[+] Building '/tmp/nested2.out'
[+] Building '/tmp/pattern.out'
[+] Building '/tmp/pcustom.out'
[+] Building '/tmp/class.out'
make: Leaving directory '/home/runner/work/gef/gef/tests/binaries'
/home/runner/.local/lib/python3.10/site-packages/pytest_benchmark/logger.py:46: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
  warner(PytestBenchmarkWarning(text))
============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.10
cachedir: .pytest_cache
benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/runner/work/gef/gef/tests
configfile: pytest.ini
plugins: benchmark-4.0.0, forked-1.6.0, xdist-3.5.0, cov-4.1.0
created: 4/4 workers
4 workers [155 items]

scheduling tests via LoadScheduling

tests/commands/checksec.py::ChecksecCommand::test_cmd_checksec 
tests/api/gef_session.py::GefSessionApi::test_func_auxiliary_vector 
tests/api/misc.py::MiscFunctionTest::test_func_parse_permissions 
tests/api/deprecated.py::GefFuncDeprecatedApi::test_deprecated_elf_values 
[gw1] [  0%] PASSED tests/api/gef_session.py::GefSessionApi::test_func_auxiliary_vector 
tests/api/gef_session.py::GefSessionApi::test_func_get_filepath 
[gw3] [  1%] PASSED tests/commands/checksec.py::ChecksecCommand::test_cmd_checksec 
tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference 
[gw1] [  1%] PASSED tests/api/gef_session.py::GefSessionApi::test_func_get_filepath 
tests/api/gef_session.py::GefSessionApi::test_func_get_pid 
[gw2] [  2%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_parse_permissions 
tests/api/misc.py::MiscFunctionTest::test_func_show_last_exception 
[gw1] [  3%] PASSED tests/api/gef_session.py::GefSessionApi::test_func_get_pid 
tests/api/gef_session.py::GefSessionApi::test_root_dir_local 
[gw3] [  3%] PASSED tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference 
tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_backwards 
[gw1] [  4%] PASSED tests/api/gef_session.py::GefSessionApi::test_root_dir_local 
tests/api/gef_session.py::GefSessionApi::test_root_dir_qemu 
[gw2] [  5%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_show_last_exception 
tests/api/misc.py::MiscFunctionTest::test_func_update_gef 
[gw2] [  5%] SKIPPED tests/api/misc.py::MiscFunctionTest::test_func_update_gef 
tests/api/misc.py::MiscFunctionTest::test_func_which 
[gw1] [  6%] PASSED tests/api/gef_session.py::GefSessionApi::test_root_dir_qemu 
tests/api/gef_session.py::GefSessionApi::test_root_dir_remote 
[gw3] [  7%] PASSED tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_backwards 
tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_forwards 
[gw2] [  7%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_which 
tests/commands/aliases.py::AliasesCommand::test_cmd_aliases 
[gw3] [  8%] PASSED tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_forwards 
tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_disable 
[gw1] [  9%] PASSED tests/api/gef_session.py::GefSessionApi::test_root_dir_remote 
tests/api/misc.py::MiscFunctionTest::test_func_gef_convenience 
[gw1] [  9%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_gef_convenience 
tests/api/misc.py::MiscFunctionTest::test_func_parse_address 
[gw2] [ 10%] PASSED tests/commands/aliases.py::AliasesCommand::test_cmd_aliases 
tests/commands/aslr.py::AslrCommand::test_cmd_aslr_show 
[gw3] [ 10%] PASSED tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_disable 
tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_enable 
[gw0] [ 11%] PASSED tests/api/deprecated.py::GefFuncDeprecatedApi::test_deprecated_elf_values 
tests/api/gef_arch.py::GefArchApi::test_func_gef_arch_ptrsize 
[gw2] [ 12%] PASSED tests/commands/aslr.py::AslrCommand::test_cmd_aslr_show 
tests/commands/aslr.py::AslrCommand::test_cmd_aslr_toggle 
[gw1] [ 12%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_parse_address 
tests/api/misc.py::MiscFunctionTest::test_func_parse_maps 
[gw0] [ 13%] PASSED tests/api/gef_arch.py::GefArchApi::test_func_gef_arch_ptrsize 
tests/api/gef_arch.py::GefArchApi::test_func_reset_architecture 
[gw3] [ 14%] PASSED tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_enable 
tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_toggle 
[gw0] [ 14%] PASSED tests/api/gef_arch.py::GefArchApi::test_func_reset_architecture 
tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble 
[gw2] [ 15%] PASSED tests/commands/aslr.py::AslrCommand::test_cmd_aslr_toggle 
tests/commands/canary.py::CanaryCommand::test_cmd_canary 
[gw0] [ 16%] PASSED tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble 
tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble_page_border 
[gw3] [ 16%] PASSED tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_toggle 
tests/commands/elf_info.py::ElfInfoCommand::test_cmd_elf_info 
[gw0] [ 17%] PASSED tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble_page_border 
tests/api/gef_heap.py::GefHeapApi::test_class_glibcarena_main_arena 
[gw3] [ 18%] PASSED tests/commands/elf_info.py::ElfInfoCommand::test_cmd_elf_info 
tests/commands/entry_break.py::EntryBreakCommand::test_cmd_entry_break 
[gw2] [ 18%] PASSED tests/commands/canary.py::CanaryCommand::test_cmd_canary 
tests/commands/canary.py::CanaryCommand::test_overwrite_canary 
[gw3] [ 19%] PASSED tests/commands/entry_break.py::EntryBreakCommand::test_cmd_entry_break 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache_all 
[gw2] [ 20%] PASSED tests/commands/canary.py::CanaryCommand::test_overwrite_canary 
tests/commands/format_string_helper.py::FormatStringHelperCommand::test_cmd_format_string_helper 
[gw0] [ 20%] PASSED tests/api/gef_heap.py::GefHeapApi::test_class_glibcarena_main_arena 
tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_csize2tidx 
[gw2] [ 21%] PASSED tests/commands/format_string_helper.py::FormatStringHelperCommand::test_cmd_format_string_helper 
tests/commands/functions.py::FunctionsCommand::test_cmd_functions 
[gw2] [ 21%] PASSED tests/commands/functions.py::FunctionsCommand::test_cmd_functions 
tests/commands/gef.py::GefCommand::test_cmd_gef 
[gw1] [ 22%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_parse_maps 
tests/commands/gef.py::GefCommand::test_cmd_gef_run_and_run 
[gw2] [ 23%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef 
tests/commands/gef.py::GefCommand::test_cmd_gef_config 
[gw3] [ 23%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache_all 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_unsorted 
[gw2] [ 24%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_config 
tests/commands/gef.py::GefCommand::test_cmd_gef_config_get 
[gw1] [ 25%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_run_and_run 
tests/commands/gef.py::GefCommand::test_cmd_gef_save 
[gw2] [ 25%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_config_get 
tests/commands/gef.py::GefCommand::test_cmd_gef_config_set 
[gw3] [ 26%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_unsorted 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_no_arg 
[gw2] [ 27%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_config_set 
tests/commands/gef.py::GefCommand::test_cmd_gef_help 
[gw1] [ 27%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_save 
tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote 
[gw2] [ 28%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_help 
tests/commands/gef.py::GefCommand::test_cmd_gef_install 
[gw3] [ 29%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_no_arg 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_with_number 
[gw2] [ 29%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_install 
tests/commands/heap.py::HeapCommand::test_cmd_heap_set_arena 
[gw0] [ 30%] PASSED tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_csize2tidx 
tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_malloc_align_address 
[gw3] [ 30%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_with_number 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks 
[gw1] [ 31%] PASSED tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote 
tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote_qemu_user 
[gw2] [ 32%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_set_arena 
tests/commands/heap_analysis.py::HeapAnalysisCommand::test_cmd_heap_analysis 
[gw1] [ 32%] PASSED tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote_qemu_user 
tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_target_remote 
[gw2] [ 33%] PASSED tests/commands/heap_analysis.py::HeapAnalysisCommand::test_cmd_heap_analysis 
tests/commands/hexdump.py::HexdumpCommand::test_cmd_hexdump 
[gw3] [ 34%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_max_size_filter 
[gw1] [ 34%] PASSED tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_target_remote 
tests/commands/got.py::GotCommand::test_cmd_got 
[gw0] [ 35%] PASSED tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_malloc_align_address 
tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_tidx2size 
[gw1] [ 36%] PASSED tests/commands/got.py::GotCommand::test_cmd_got 
tests/commands/heap.py::HeapCommand::test_cmd_heap_arenas 
[gw3] [ 36%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_max_size_filter 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_min_size_filter 
[gw2] [ 37%] PASSED tests/commands/hexdump.py::HexdumpCommand::test_cmd_hexdump 
tests/commands/highlight.py::HighlightCommand::test_cmd_highlight 
[gw1] [ 38%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_arenas 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_fast 
[gw2] [ 38%] PASSED tests/commands/highlight.py::HighlightCommand::test_cmd_highlight 
tests/commands/hijack_fd.py::HijackFdCommand::test_cmd_hijack_fd 
[gw0] [ 39%] PASSED tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_tidx2size 
tests/commands/name_break.py::NameBreakCommand::test_cmd_name_break 
[gw2] [ 40%] PASSED tests/commands/hijack_fd.py::HijackFdCommand::test_cmd_hijack_fd 
tests/commands/ksymaddr.py::KsymaddrCommand::test_cmd_ksymaddr 
[gw1] [ 40%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_fast 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_large 
[gw3] [ 41%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_min_size_filter 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_mult_heaps 
[gw2] [ 41%] PASSED tests/commands/ksymaddr.py::KsymaddrCommand::test_cmd_ksymaddr 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_list 
[gw1] [ 42%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_large 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_non_main 
[gw0] [ 43%] PASSED tests/commands/name_break.py::NameBreakCommand::test_cmd_name_break 
tests/commands/nop.py::NopCommand::test_cmd_nop_as_bytes_invalid_end_address 
[gw3] [ 43%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_mult_heaps 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary 
[gw1] [ 44%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_non_main 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_small 
[gw2] [ 45%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_list 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_reset 
[gw1] [ 45%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_small 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache 
[gw0] [ 46%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_as_bytes_invalid_end_address 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes 
[gw3] [ 47%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary_with_type_resolved 
[gw2] [ 47%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_reset 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_unwatch 
[gw1] [ 48%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache 
tests/commands/nop.py::NopCommand::test_cmd_nop_check_b_and_n_same_time 
[gw0] [ 49%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg 
[gw1] [ 49%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_check_b_and_n_same_time 
tests/commands/nop.py::NopCommand::test_cmd_nop_force_arg_break_instruction 
[gw0] [ 50%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg 
[gw2] [ 50%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_unwatch 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_watch 
[gw3] [ 51%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary_with_type_resolved 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_with_count 
[gw1] [ 52%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_force_arg_break_instruction 
tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg 
[gw0] [ 52%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit_force 
[gw1] [ 53%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg 
tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg_reaching_unmapped_area 
[gw0] [ 54%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit_force 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction 
[gw1] [ 54%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg_reaching_unmapped_area 
tests/commands/nop.py::NopCommand::test_cmd_nop_inactive 
[gw0] [ 55%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction_force 
[gw3] [ 56%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_with_count 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction_force 
[gw1] [ 56%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_inactive 
tests/commands/nop.py::NopCommand::test_cmd_nop_invalid_end_address 
[gw0] [ 57%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction_force 
tests/commands/patch.py::PatchCommand::test_cmd_patch_qword_symbol 
[gw3] [ 58%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction_force 
tests/commands/patch.py::PatchCommand::test_cmd_patch 
[gw1] [ 58%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_invalid_end_address 
tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg 
[gw3] [ 59%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch 
tests/commands/patch.py::PatchCommand::test_cmd_patch_byte 
[gw1] [ 60%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg 
tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom 
[gw3] [ 60%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_byte 
tests/commands/patch.py::PatchCommand::test_cmd_patch_byte_bytearray 
[gw0] [ 61%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_qword_symbol 
tests/commands/patch.py::PatchCommand::test_cmd_patch_string 
[gw3] [ 61%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_byte_bytearray 
tests/commands/patch.py::PatchCommand::test_cmd_patch_dword 
[gw0] [ 62%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_string 
tests/commands/patch.py::PatchCommand::test_cmd_patch_word 
[gw1] [ 63%] PASSED tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom 
tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom_show 
[gw3] [ 63%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_dword 
tests/commands/patch.py::PatchCommand::test_cmd_patch_qword 
[gw0] [ 64%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_word 
tests/commands/pattern.py::PatternCommand::test_cmd_pattern_create 
[gw2] [ 65%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_watch 
tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg_break_instruction 
[gw3] [ 65%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_qword 
tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_delete 
[gw0] [ 66%] PASSED tests/commands/pattern.py::PatternCommand::test_cmd_pattern_create 
tests/commands/pattern.py::PatternCommand::test_cmd_pattern_search 
[gw2] [ 67%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg_break_instruction 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop 
[gw3] [ 67%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_delete 
tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_run 
[gw1] [ 68%] PASSED tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom_show 
tests/commands/pie.py::PieCommand::test_cmd_pie 
[gw2] [ 69%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg 
[gw3] [ 69%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_run 
tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format 
[gw2] [ 70%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks 
[gw1] [ 70%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie 
tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_check 
[gw1] [ 71%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_check 
tests/commands/reset_cache.py::ResetCacheCommand::test_cmd_reset_cache 
[gw2] [ 72%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks_force 
[gw1] [ 72%] PASSED tests/commands/reset_cache.py::ResetCacheCommand::test_cmd_reset_cache 
tests/commands/scan.py::ScanCommand::test_cmd_scan 
[gw2] [ 73%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks_force 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction 
[gw0] [ 74%] PASSED tests/commands/pattern.py::PatternCommand::test_cmd_pattern_search 
tests/commands/process_search.py::ProcessSearchCommand::test_cmd_process_search 
[gw2] [ 74%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction 
tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern_regex 
[gw3] [ 75%] PASSED tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format 
tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format_bytearray 
[gw2] [ 76%] PASSED tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern_regex 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode 
[gw1] [ 76%] PASSED tests/commands/scan.py::ScanCommand::test_cmd_scan 
tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern 
[gw0] [ 77%] PASSED tests/commands/process_search.py::ProcessSearchCommand::test_cmd_process_search 
tests/commands/process_status.py::ProcessStatusCommand::test_cmd_process_status 
[gw3] [ 78%] PASSED tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format_bytearray 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_ok 
[gw2] [ 78%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_nok 
[gw1] [ 79%] PASSED tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern 
tests/commands/skipi.py::SkipiCommand::test_cmd_nop_inactive 
[gw0] [ 80%] PASSED tests/commands/process_status.py::ProcessStatusCommand::test_cmd_process_status 
tests/commands/registers.py::RegistersCommand::test_cmd_registers 
[gw1] [ 80%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_nop_inactive 
tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_no_arg 
[gw3] [ 81%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_ok 
[gw2] [ 81%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_nok 
tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_skip_two_instructions 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_search 
[gw2] [ 82%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_skip_two_instructions 
tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_two_instructions_from_location 
[gw1] [ 83%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_no_arg 
tests/commands/stub.py::StubCommand::test_cmd_stub 
[gw0] [ 83%] PASSED tests/commands/registers.py::RegistersCommand::test_cmd_registers 
tests/commands/smart_eval.py::SmartEvalCommand::test_cmd_smart_eval 
[gw3] [ 84%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_search 
tests/commands/theme.py::ThemeCommand::test_cmd_theme 
[gw2] [ 85%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_two_instructions_from_location 
tests/commands/trace_run.py::TraceRunCommand::test_cmd_trace_run 
[gw1] [ 85%] PASSED tests/commands/stub.py::StubCommand::test_cmd_stub 
tests/commands/version.py::VersionCommand::test_cmd_version 
[gw2] [ 86%] PASSED tests/commands/trace_run.py::TraceRunCommand::test_cmd_trace_run 
tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo 
[gw1] [ 87%] PASSED tests/commands/version.py::VersionCommand::test_cmd_version 
tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo_on_class 
[gw0] [ 87%] PASSED tests/commands/smart_eval.py::SmartEvalCommand::test_cmd_smart_eval 
tests/commands/vmmap.py::VmmapCommand::test_cmd_vmmap 
[gw1] [ 88%] FAILED tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo_on_class 
tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_patch 
[gw2] [ 89%] PASSED tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo 
tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_display 
[gw1] [ 89%] PASSED tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_patch 
tests/config/__init__.py::TestGefConfigUnit::test_config_libc_version 
[gw0] [ 90%] PASSED tests/commands/vmmap.py::VmmapCommand::test_cmd_vmmap 
tests/config/__init__.py::TestGefConfigUnit::test_config_hook_validator 
[gw2] [ 90%] PASSED tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_display 
tests/config/__init__.py::TestGefConfigUnit::test_config_show_opcodes_size 
[gw0] [ 91%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_hook_validator 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_base 
[gw2] [ 92%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_show_opcodes_size 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_bss 
[gw1] [ 92%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_libc_version 
tests/config/__init__.py::TestGefConfigUnit::test_config_type_validator 
[gw2] [ 93%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_bss 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_heap 
[gw0] [ 94%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_base 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_got 
[gw1] [ 94%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_type_validator 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_stack 
[gw0] [ 95%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_got 
tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_context_correct_registers_refresh_with_frames 
[gw2] [ 96%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_heap 
tests/regressions/gdbserver_connection.py::RegressionGdbserverConnection::test_can_establish_connection_to_gdbserver_again_after_disconnect 
[gw1] [ 96%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_stack 
tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_registers_show_registers_in_correct_order 
[gw0] [ 97%] PASSED tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_context_correct_registers_refresh_with_frames 
[gw1] [ 98%] PASSED tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_registers_show_registers_in_correct_order 
[gw2] [ 98%] PASSED tests/regressions/gdbserver_connection.py::RegressionGdbserverConnection::test_can_establish_connection_to_gdbserver_again_after_disconnect 
[gw3] [ 99%] PASSED tests/commands/theme.py::ThemeCommand::test_cmd_theme 
tests/commands/xfiles.py::XfilesCommand::test_cmd_xfiles 
[gw3] [100%] PASSED tests/commands/xfiles.py::XfilesCommand::test_cmd_xfiles 

=================================== FAILURES ===================================
_____________________ XinfoCommand.test_cmd_xinfo_on_class _____________________
[gw1] linux -- Python 3.10.12 /usr/bin/python3.10
self = <tests.commands.xinfo.XinfoCommand testMethod=test_cmd_xinfo_on_class>

    def test_cmd_xinfo_on_class(self):
        cmd = "xinfo $pc+4"
        target = debug_target("class")
        res = gdb_run_silent_cmd(cmd, target=target, before=["b B<TraitA, TraitB>::Run()"])
        self.assertNoException(res)
>       self.assertIn("Symbol: B<TraitA, TraitB>::Run()+4", res)
E       AssertionError: 'Symbol: B<TraitA, TraitB>::Run()+4' not found in 'Reading symbols from /tmp/class.out...\nError while writing index for `/tmp/class.out\': mkstemp: No such file or directory.\nGEF for linux ready, type `gef\' to start, `gef config\' to configure\n89 commands loaded and 5 functions added for GDB 12.1 in 0.00ms using Python engine 3.10\nBreakpoint 1 at 0x1328: file class.cpp, line 21.\nStarting program: /tmp/class.out \n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".\n\nBreakpoint 1, B<TraitA, TraitB>::Run (this=0x55555556b2b0) at class.cpp:21\n21\t    virtual void Run() { printf("I am B\\n"); }\n────────────────────────────────────────────────────────────────────────────────────────────────────\n────────────────────────────────────── xinfo: 0x55555555532c ──────────────────────────────────────\nPage: 0x0000555555555000  →  0x0000555555556000 (size=0x1000)\nPermissions: r-x\nPathname: /tmp/class.out\nOffset (from page): 0x32c\nInode: 37098\nSegment: .text (0x00005555555550a0-0x000055555555533a)\nOffset (from segment): 0x28c\nSymbol: B<TraitA, TraitB>::Run()+20'

tests/commands/xinfo.py:27: AssertionError
=========================== short test summary info ============================
FAILED tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo_on_class
================== 1 failed, 153 passed, 1 skipped in 52.95s ===================
##[error]Process completed with exit code 1.

step_name: Run Unit tests on ubuntu-20.04/8_Run Tests.txt
log: ##[group]Run make -C tests/binaries -j 4
[36;1mmake -C tests/binaries -j 4[0m
[36;1mpython3.8 -m pytest --forked -n 4 -v -k "not benchmark" tests/[0m
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  PY_VER: 3.8
  GEF_CI_NB_CPU: 4
  GEF_CI_ARCH: x86_64
  GEF_CI_CACHE_DIR: /home/runner/.cache/pip
##[endgroup]
make: Entering directory '/home/runner/work/gef/gef/tests/binaries'
[+] Building '/tmp/heap.out'
[+] Building '/tmp/bss.out'
[+] Building '/tmp/canary.out'
[+] Building '/tmp/heap-multiple-heaps.out'
[+] Building '/tmp/checksec-no-canary.out'
[+] Building '/tmp/format-string-helper.out'
[+] Building '/tmp/checksec-no-nx.out'
[+] Building '/tmp/heap-non-main.out'
[+] Building '/tmp/nested2.out'
[+] Building '/tmp/mmap-known-address.out'
[+] Building '/tmp/heap-analysis.out'
[+] Building '/tmp/default.out'
[+] Building '/tmp/heap-tcache.out'
[+] Building '/tmp/nested.out'
[+] Building '/tmp/checksec-no-pie.out'
[+] Building '/tmp/heap-bins.out'
[+] Building '/tmp/pattern.out'
[+] Building '/tmp/memwatch.out'
[+] Building '/tmp/pcustom.out'
[+] Building '/tmp/heap-fastbins.out'
[+] Building '/tmp/class.out'
make: Leaving directory '/home/runner/work/gef/gef/tests/binaries'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.4.4, pluggy-1.3.0 -- /usr/bin/python3.8
cachedir: .pytest_cache
benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/runner/work/gef/gef/tests
configfile: pytest.ini
plugins: forked-1.6.0, xdist-3.5.0, benchmark-4.0.0, cov-4.1.0
created: 4/4 workers
4 workers [155 items]

scheduling tests via LoadScheduling

tests/commands/checksec.py::ChecksecCommand::test_cmd_checksec 
tests/api/deprecated.py::GefFuncDeprecatedApi::test_deprecated_elf_values 
tests/api/gef_session.py::GefSessionApi::test_func_auxiliary_vector 
tests/api/misc.py::MiscFunctionTest::test_func_parse_permissions 
[gw1] [  0%] PASSED tests/api/gef_session.py::GefSessionApi::test_func_auxiliary_vector 
tests/api/gef_session.py::GefSessionApi::test_func_get_filepath 
[gw3] [  1%] PASSED tests/commands/checksec.py::ChecksecCommand::test_cmd_checksec 
tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference 
[gw1] [  1%] PASSED tests/api/gef_session.py::GefSessionApi::test_func_get_filepath 
tests/api/gef_session.py::GefSessionApi::test_func_get_pid 
[gw2] [  2%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_parse_permissions 
tests/api/misc.py::MiscFunctionTest::test_func_show_last_exception 
[gw1] [  3%] PASSED tests/api/gef_session.py::GefSessionApi::test_func_get_pid 
tests/api/gef_session.py::GefSessionApi::test_root_dir_local 
[gw3] [  3%] PASSED tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference 
tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_backwards 
[gw1] [  4%] PASSED tests/api/gef_session.py::GefSessionApi::test_root_dir_local 
tests/api/gef_session.py::GefSessionApi::test_root_dir_qemu 
[gw2] [  5%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_show_last_exception 
tests/api/misc.py::MiscFunctionTest::test_func_update_gef 
[gw2] [  5%] SKIPPED tests/api/misc.py::MiscFunctionTest::test_func_update_gef 
tests/api/misc.py::MiscFunctionTest::test_func_which 
[gw1] [  6%] PASSED tests/api/gef_session.py::GefSessionApi::test_root_dir_qemu 
tests/api/gef_session.py::GefSessionApi::test_root_dir_remote 
[gw3] [  7%] PASSED tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_backwards 
tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_forwards 
[gw2] [  7%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_which 
tests/commands/aliases.py::AliasesCommand::test_cmd_aliases 
[gw3] [  8%] PASSED tests/commands/dereference.py::DereferenceCommand::test_cmd_dereference_forwards 
tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_disable 
[gw1] [  9%] PASSED tests/api/gef_session.py::GefSessionApi::test_root_dir_remote 
tests/api/misc.py::MiscFunctionTest::test_func_gef_convenience 
[gw1] [  9%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_gef_convenience 
tests/api/misc.py::MiscFunctionTest::test_func_parse_address 
[gw3] [ 10%] PASSED tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_disable 
tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_enable 
[gw0] [ 10%] PASSED tests/api/deprecated.py::GefFuncDeprecatedApi::test_deprecated_elf_values 
tests/api/gef_arch.py::GefArchApi::test_func_gef_arch_ptrsize 
[gw2] [ 11%] PASSED tests/commands/aliases.py::AliasesCommand::test_cmd_aliases 
tests/commands/aslr.py::AslrCommand::test_cmd_aslr_show 
[gw0] [ 12%] PASSED tests/api/gef_arch.py::GefArchApi::test_func_gef_arch_ptrsize 
tests/api/gef_arch.py::GefArchApi::test_func_reset_architecture 
[gw1] [ 12%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_parse_address 
tests/api/misc.py::MiscFunctionTest::test_func_parse_maps 
[gw2] [ 13%] PASSED tests/commands/aslr.py::AslrCommand::test_cmd_aslr_show 
tests/commands/aslr.py::AslrCommand::test_cmd_aslr_toggle 
[gw3] [ 14%] PASSED tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_enable 
tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_toggle 
[gw0] [ 14%] PASSED tests/api/gef_arch.py::GefArchApi::test_func_reset_architecture 
tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble 
[gw0] [ 15%] PASSED tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble 
tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble_page_border 
[gw2] [ 16%] PASSED tests/commands/aslr.py::AslrCommand::test_cmd_aslr_toggle 
tests/commands/canary.py::CanaryCommand::test_cmd_canary 
[gw3] [ 16%] PASSED tests/commands/edit_flags.py::EditFlagsCommand::test_cmd_edit_flags_toggle 
tests/commands/elf_info.py::ElfInfoCommand::test_cmd_elf_info 
[gw0] [ 17%] PASSED tests/api/gef_disasemble.py::GefDisassembleApiFunction::test_func_gef_disassemble_page_border 
tests/api/gef_heap.py::GefHeapApi::test_class_glibcarena_main_arena 
[gw3] [ 18%] PASSED tests/commands/elf_info.py::ElfInfoCommand::test_cmd_elf_info 
tests/commands/entry_break.py::EntryBreakCommand::test_cmd_entry_break 
[gw2] [ 18%] PASSED tests/commands/canary.py::CanaryCommand::test_cmd_canary 
tests/commands/canary.py::CanaryCommand::test_overwrite_canary 
[gw3] [ 19%] PASSED tests/commands/entry_break.py::EntryBreakCommand::test_cmd_entry_break 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache_all 
[gw0] [ 20%] PASSED tests/api/gef_heap.py::GefHeapApi::test_class_glibcarena_main_arena 
tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_csize2tidx 
[gw2] [ 20%] PASSED tests/commands/canary.py::CanaryCommand::test_overwrite_canary 
tests/commands/format_string_helper.py::FormatStringHelperCommand::test_cmd_format_string_helper 
[gw2] [ 21%] PASSED tests/commands/format_string_helper.py::FormatStringHelperCommand::test_cmd_format_string_helper 
tests/commands/functions.py::FunctionsCommand::test_cmd_functions 
[gw2] [ 21%] PASSED tests/commands/functions.py::FunctionsCommand::test_cmd_functions 
tests/commands/gef.py::GefCommand::test_cmd_gef 
[gw1] [ 22%] PASSED tests/api/misc.py::MiscFunctionTest::test_func_parse_maps 
tests/commands/gef.py::GefCommand::test_cmd_gef_run_and_run 
[gw2] [ 23%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef 
tests/commands/gef.py::GefCommand::test_cmd_gef_config 
[gw3] [ 23%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache_all 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_unsorted 
[gw2] [ 24%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_config 
tests/commands/gef.py::GefCommand::test_cmd_gef_config_get 
[gw1] [ 25%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_run_and_run 
tests/commands/gef.py::GefCommand::test_cmd_gef_save 
[gw2] [ 25%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_config_get 
tests/commands/gef.py::GefCommand::test_cmd_gef_config_set 
[gw3] [ 26%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_unsorted 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_no_arg 
[gw2] [ 27%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_config_set 
tests/commands/gef.py::GefCommand::test_cmd_gef_help 
[gw2] [ 27%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_help 
[gw1] [ 28%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_save 
tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote 
tests/commands/gef.py::GefCommand::test_cmd_gef_install 
[gw3] [ 29%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_no_arg 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_with_number 
[gw0] [ 29%] PASSED tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_csize2tidx 
tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_malloc_align_address 
[gw3] [ 30%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunk_with_number 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks 
[gw2] [ 30%] PASSED tests/commands/gef.py::GefCommand::test_cmd_gef_install 
tests/commands/heap.py::HeapCommand::test_cmd_heap_set_arena 
[gw1] [ 31%] PASSED tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote 
tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote_qemu_user 
[gw2] [ 32%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_set_arena 
tests/commands/heap_analysis.py::HeapAnalysisCommand::test_cmd_heap_analysis 
[gw1] [ 32%] PASSED tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_gef_remote_qemu_user 
tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_target_remote 
[gw0] [ 33%] PASSED tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_malloc_align_address 
tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_tidx2size 
[gw2] [ 34%] PASSED tests/commands/heap_analysis.py::HeapAnalysisCommand::test_cmd_heap_analysis 
tests/commands/hexdump.py::HexdumpCommand::test_cmd_hexdump 
[gw3] [ 34%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_max_size_filter 
[gw1] [ 35%] PASSED tests/commands/gef_remote.py::GefRemoteCommand::test_cmd_target_remote 
tests/commands/got.py::GotCommand::test_cmd_got 
[gw3] [ 36%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_max_size_filter 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_min_size_filter 
[gw1] [ 36%] PASSED tests/commands/got.py::GotCommand::test_cmd_got 
tests/commands/heap.py::HeapCommand::test_cmd_heap_arenas 
[gw0] [ 37%] PASSED tests/api/gef_heap.py::GefHeapApi::test_func_gef_heap_tidx2size 
tests/commands/name_break.py::NameBreakCommand::test_cmd_name_break 
[gw2] [ 38%] PASSED tests/commands/hexdump.py::HexdumpCommand::test_cmd_hexdump 
tests/commands/highlight.py::HighlightCommand::test_cmd_highlight 
[gw1] [ 38%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_arenas 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_fast 
[gw2] [ 39%] PASSED tests/commands/highlight.py::HighlightCommand::test_cmd_highlight 
tests/commands/hijack_fd.py::HijackFdCommand::test_cmd_hijack_fd 
[gw0] [ 40%] PASSED tests/commands/name_break.py::NameBreakCommand::test_cmd_name_break 
tests/commands/nop.py::NopCommand::test_cmd_nop_as_bytes_invalid_end_address 
[gw2] [ 40%] PASSED tests/commands/hijack_fd.py::HijackFdCommand::test_cmd_hijack_fd 
tests/commands/ksymaddr.py::KsymaddrCommand::test_cmd_ksymaddr 
[gw3] [ 41%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_min_size_filter 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_mult_heaps 
[gw1] [ 41%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_fast 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_large 
[gw2] [ 42%] PASSED tests/commands/ksymaddr.py::KsymaddrCommand::test_cmd_ksymaddr 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_list 
[gw1] [ 43%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_large 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_non_main 
[gw0] [ 43%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_as_bytes_invalid_end_address 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes 
[gw3] [ 44%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_mult_heaps 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary 
[gw2] [ 45%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_list 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_reset 
[gw1] [ 45%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_non_main 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_small 
[gw0] [ 46%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg 
[gw3] [ 47%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary_with_type_resolved 
[gw1] [ 47%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_small 
tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache 
[gw0] [ 48%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit 
[gw2] [ 49%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_reset 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_unwatch 
[gw1] [ 49%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_tcache 
tests/commands/nop.py::NopCommand::test_cmd_nop_check_b_and_n_same_time 
[gw3] [ 50%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_summary_with_type_resolved 
tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_with_count 
[gw0] [ 50%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit_force 
[gw2] [ 51%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_unwatch 
tests/commands/memory.py::MemoryCommand::test_cmd_memory_watch 
[gw1] [ 52%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_check_b_and_n_same_time 
tests/commands/nop.py::NopCommand::test_cmd_nop_force_arg_break_instruction 
[gw0] [ 52%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_arg_nops_no_fit_force 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction 
[gw1] [ 53%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_force_arg_break_instruction 
tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg 
[gw0] [ 54%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction 
tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction_force 
[gw1] [ 54%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg 
tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg_reaching_unmapped_area 
[gw3] [ 55%] PASSED tests/commands/heap.py::HeapCommand::test_cmd_heap_chunks_with_count 
tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg_break_instruction 
[gw0] [ 56%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_bytes_break_instruction_force 
tests/commands/patch.py::PatchCommand::test_cmd_patch_qword_symbol 
[gw1] [ 56%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_i_arg_reaching_unmapped_area 
tests/commands/nop.py::NopCommand::test_cmd_nop_inactive 
[gw3] [ 57%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg_break_instruction 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop 
[gw1] [ 58%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_inactive 
tests/commands/nop.py::NopCommand::test_cmd_nop_invalid_end_address 
[gw0] [ 58%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_qword_symbol 
tests/commands/patch.py::PatchCommand::test_cmd_patch_string 
[gw3] [ 59%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg 
[gw1] [ 60%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_invalid_end_address 
tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg 
[gw0] [ 60%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_string 
tests/commands/patch.py::PatchCommand::test_cmd_patch_word 
[gw3] [ 61%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks 
[gw1] [ 61%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_no_arg 
tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom 
[gw0] [ 62%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_word 
[gw3] [ 63%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks_force 
tests/commands/pattern.py::PatternCommand::test_cmd_pattern_create 
[gw1] [ 63%] PASSED tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom 
tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom_show 
[gw3] [ 64%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_arg_multibnop_breaks_force 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction 
[gw0] [ 65%] PASSED tests/commands/pattern.py::PatternCommand::test_cmd_pattern_create 
tests/commands/pattern.py::PatternCommand::test_cmd_pattern_search 
[gw3] [ 65%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction 
tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_delete 
[gw2] [ 66%] PASSED tests/commands/memory.py::MemoryCommand::test_cmd_memory_watch 
tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction_force 
[gw3] [ 67%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_delete 
tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_run 
[gw2] [ 67%] PASSED tests/commands/nop.py::NopCommand::test_cmd_nop_nop_break_instruction_force 
tests/commands/patch.py::PatchCommand::test_cmd_patch 
[gw3] [ 68%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_run 
tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format 
[gw2] [ 69%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch 
tests/commands/patch.py::PatchCommand::test_cmd_patch_byte 
[gw1] [ 69%] PASSED tests/commands/pcustom.py::PcustomCommand::test_cmd_pcustom_show 
tests/commands/pie.py::PieCommand::test_cmd_pie 
[gw2] [ 70%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_byte 
tests/commands/patch.py::PatchCommand::test_cmd_patch_byte_bytearray 
[gw1] [ 70%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie 
tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_check 
[gw2] [ 71%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_byte_bytearray 
tests/commands/patch.py::PatchCommand::test_cmd_patch_dword 
[gw0] [ 72%] PASSED tests/commands/pattern.py::PatternCommand::test_cmd_pattern_search 
tests/commands/process_search.py::ProcessSearchCommand::test_cmd_process_search 
[gw1] [ 72%] PASSED tests/commands/pie.py::PieCommand::test_cmd_pie_breakpoint_check 
tests/commands/reset_cache.py::ResetCacheCommand::test_cmd_reset_cache 
[gw2] [ 73%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_dword 
tests/commands/patch.py::PatchCommand::test_cmd_patch_qword 
[gw1] [ 74%] PASSED tests/commands/reset_cache.py::ResetCacheCommand::test_cmd_reset_cache 
tests/commands/scan.py::ScanCommand::test_cmd_scan 
[gw2] [ 74%] PASSED tests/commands/patch.py::PatchCommand::test_cmd_patch_qword 
tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern_regex 
[gw3] [ 75%] PASSED tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format 
tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format_bytearray 
[gw0] [ 76%] PASSED tests/commands/process_search.py::ProcessSearchCommand::test_cmd_process_search 
tests/commands/process_status.py::ProcessStatusCommand::test_cmd_process_status 
[gw2] [ 76%] PASSED tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern_regex 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode 
[gw3] [ 77%] PASSED tests/commands/print_format.py::PrintFormatCommand::test_cmd_print_format_bytearray 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_ok 
[gw0] [ 78%] PASSED tests/commands/process_status.py::ProcessStatusCommand::test_cmd_process_status 
tests/commands/registers.py::RegistersCommand::test_cmd_registers 
[gw2] [ 78%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_nok 
[gw1] [ 79%] PASSED tests/commands/scan.py::ScanCommand::test_cmd_scan 
tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern 
[gw0] [ 80%] PASSED tests/commands/registers.py::RegistersCommand::test_cmd_registers 
tests/commands/skipi.py::SkipiCommand::test_cmd_nop_inactive 
[gw3] [ 80%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_ok 
[gw2] [ 81%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_get_nok 
tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_skip_two_instructions 
tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_search 
[gw1] [ 81%] PASSED tests/commands/search_pattern.py::SearchPatternCommand::test_cmd_search_pattern 
tests/commands/smart_eval.py::SmartEvalCommand::test_cmd_smart_eval 
[gw0] [ 82%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_nop_inactive 
tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_no_arg 
[gw2] [ 83%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_skip_two_instructions 
tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_two_instructions_from_location 
[gw0] [ 83%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_no_arg 
tests/commands/trace_run.py::TraceRunCommand::test_cmd_trace_run 
[gw3] [ 84%] PASSED tests/commands/shellcode.py::ShellcodeCommand::test_cmd_shellcode_search 
tests/commands/stub.py::StubCommand::test_cmd_stub 
[gw2] [ 85%] PASSED tests/commands/skipi.py::SkipiCommand::test_cmd_skipi_two_instructions_from_location 
tests/commands/version.py::VersionCommand::test_cmd_version 
[gw2] [ 85%] PASSED tests/commands/version.py::VersionCommand::test_cmd_version 
tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo 
[gw0] [ 86%] PASSED tests/commands/trace_run.py::TraceRunCommand::test_cmd_trace_run 
tests/commands/vmmap.py::VmmapCommand::test_cmd_vmmap 
[gw1] [ 87%] PASSED tests/commands/smart_eval.py::SmartEvalCommand::test_cmd_smart_eval 
tests/commands/theme.py::ThemeCommand::test_cmd_theme 
[gw3] [ 87%] PASSED tests/commands/stub.py::StubCommand::test_cmd_stub 
tests/commands/xfiles.py::XfilesCommand::test_cmd_xfiles 
[gw2] [ 88%] PASSED tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo 
tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo_on_class 
[gw3] [ 89%] PASSED tests/commands/xfiles.py::XfilesCommand::test_cmd_xfiles 
tests/config/__init__.py::TestGefConfigUnit::test_config_hook_validator 
[gw0] [ 89%] PASSED tests/commands/vmmap.py::VmmapCommand::test_cmd_vmmap 
tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_display 
[gw2] [ 90%] FAILED tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo_on_class 
tests/config/__init__.py::TestGefConfigUnit::test_config_libc_version 
[gw3] [ 90%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_hook_validator 
tests/config/__init__.py::TestGefConfigUnit::test_config_show_opcodes_size 
[gw0] [ 91%] PASSED tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_display 
tests/config/__init__.py::TestGefConfigUnit::test_config_type_validator 
[gw3] [ 92%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_show_opcodes_size 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_bss 
[gw2] [ 92%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_libc_version 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_base 
[gw3] [ 93%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_bss 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_heap 
[gw0] [ 94%] PASSED tests/config/__init__.py::TestGefConfigUnit::test_config_type_validator 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_got 
[gw0] [ 94%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_got 
tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_context_correct_registers_refresh_with_frames 
[gw2] [ 95%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_base 
tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_stack 
[gw3] [ 96%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_heap 
tests/regressions/gdbserver_connection.py::RegressionGdbserverConnection::test_can_establish_connection_to_gdbserver_again_after_disconnect 
[gw0] [ 96%] PASSED tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_context_correct_registers_refresh_with_frames 
tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_registers_show_registers_in_correct_order 
[gw2] [ 97%] PASSED tests/functions/elf_sections.py::ElfSectionGdbFunction::test_func_stack 
[gw0] [ 98%] PASSED tests/regressions/registers_register_order.py::RegressionRegisterOrder::test_registers_show_registers_in_correct_order 
[gw3] [ 98%] PASSED tests/regressions/gdbserver_connection.py::RegressionGdbserverConnection::test_can_establish_connection_to_gdbserver_again_after_disconnect 
[gw1] [ 99%] PASSED tests/commands/theme.py::ThemeCommand::test_cmd_theme 
tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_patch 
[gw1] [100%] PASSED tests/commands/xor_memory.py::XorMemoryCommand::test_cmd_xor_memory_patch 

=================================== FAILURES ===================================
_____________________ XinfoCommand.test_cmd_xinfo_on_class _____________________
[gw2] linux -- Python 3.8.10 /usr/bin/python3.8
self = <tests.commands.xinfo.XinfoCommand testMethod=test_cmd_xinfo_on_class>

    def test_cmd_xinfo_on_class(self):
/home/runner/.local/lib/python3.8/site-packages/pytest_benchmark/logger.py:46: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
  warner(PytestBenchmarkWarning(text))
        cmd = "xinfo $pc+4"
        target = debug_target("class")
        res = gdb_run_silent_cmd(cmd, target=target, before=["b B<TraitA, TraitB>::Run()"])
        self.assertNoException(res)
>       self.assertIn("Symbol: B<TraitA, TraitB>::Run()+4", res)
E       AssertionError: 'Symbol: B<TraitA, TraitB>::Run()+4' not found in 'Reading symbols from /tmp/class.out...\nError while writing index for `/tmp/class.out\': mkstemp: No such file or directory.\nGEF for linux ready, type `gef\' to start, `gef config\' to configure\n89 commands loaded and 5 functions added for GDB 10.2 in 0.00ms using Python engine 3.8\nBreakpoint 1 at 0x1328: file class.cpp, line 21.\nStarting program: /tmp/class.out \n\nBreakpoint 1, B<TraitA, TraitB>::Run (this=0x55555556aeb0) at class.cpp:21\n21\t    virtual void Run() { printf("I am B\\n"); }\n────────────────────────────────────────────────────────────────────────────────────────────────────\n────────────────────────────────────── xinfo: 0x55555555532c ──────────────────────────────────────\nPage: 0x0000555555555000  →  0x0000555555556000 (size=0x1000)\nPermissions: r-x\nPathname: /tmp/class.out\nOffset (from page): 0x32c\nInode: 36000\nSegment: .text (0x00005555555550a0-0x00005555555553b5)\nOffset (from segment): 0x28c\nSymbol: B<TraitA, TraitB>::Run()+20'

tests/commands/xinfo.py:27: AssertionError
=========================== short test summary info ============================
FAILED tests/commands/xinfo.py::XinfoCommand::test_cmd_xinfo_on_class
================== 1 failed, 153 passed, 1 skipped in 49.25s ===================
##[error]Process completed with exit code 1.


Changed files:
tests/commands/xinfo.py

Fix diff:
diff --git a/tests/commands/xinfo.py b/tests/commands/xinfo.py
index 625615b..ea50e23 100644
--- a/tests/commands/xinfo.py
+++ b/tests/commands/xinfo.py
@@ -22,6 +22,6 @@ class XinfoCommand(GefUnitTestGeneric):
     def test_cmd_xinfo_on_class(self):
         cmd = "xinfo $pc+4"
         target = debug_target("class")
-        res = gdb_run_silent_cmd(cmd, target=target, before=["b B<TraitA, TraitB>::Run()"])
+        res = gdb_run_silent_cmd(cmd, target=target, before=["b *'B<TraitA, TraitB>::Run'"])
         self.assertNoException(res)
         self.assertIn("Symbol: B<TraitA, TraitB>::Run()+4", res)