Skip to content

Rmove ported instruction tests - #276

Draft
bbiiggppiigg wants to merge 2 commits into
masterfrom
bbiiggppiigg/remove-ported-instruction-tests
Draft

Rmove ported instruction tests#276
bbiiggppiigg wants to merge 2 commits into
masterfrom
bbiiggppiigg/remove-ported-instruction-tests

Conversation

@bbiiggppiigg

Copy link
Copy Markdown
Member

No description provided.

bbiiggppiigg and others added 2 commits July 24, 2026 19:13
The bg_gcc, bg_g++, and bg_gfortran compilers no longer have any
platform (the bluegenep platforms were removed from the specification
some time ago), but they still had compiler_opt_trans facts. That
trips the "not defined as a compiler, but has optimization translation
defined" sanity check in write_tuples, which makes it impossible to
regenerate the platform directories from the current specification:
gprolog halts before writing any tuples.

Remove the three dead compilers from the low/high/max optimization
translation lists and regenerate the platform directories
(gprolog 1.5.0, Makefile.genspec gen-clean gen-all).

Note on regeneration drift: the checked-in tuples.gz files were stale
relative to the current specification (they still contained the
removed ppc32_linux/ppc32_bgp*/ppc64_bgq* platform metadata), so
regenerating rewrites them. All harness-driving generated files
(test_info_new.gen.C, cmake-mutatees.txt, group boilerplate) reproduce
byte-for-byte from the current spec; the only other change is
generator-emitted trailing whitespace in cmake-mutators.txt that had
been hand-stripped in the checked-in copies.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
These ten InstructionAPI tests decode fixed in-memory byte buffers and
never used a mutatee or attached to a process, so they have been ported
to the dyninst repository's integration test tree
(tests/integration/InstructionAPI/decoder/) where they run from the
build tree via ctest on any host architecture:

- power_decode.C, power_cft.C        -> decoder/ppc64le/{decode,branches}.cpp
- aarch64_cft.C                      -> decoder/aarch64/cft.cpp
- aarch64_decode_ldst.C              -> decoder/aarch64/ldst.cpp
- aarch64_simd.C                     -> decoder/aarch64/simd.cpp
- fucompp.C                          -> decoder/x86/fucompp.cpp
- mov_size_details.C                 -> decoder/x86/mov_size_details.cpp
- test_instruction_farcall.C         -> decoder/x86/farcall.cpp
- test_instruction_bind_eval.C       -> decoder/x86/bind_eval.cpp
- test_instruction_read_write.C      -> decoder/x86/read_write.cpp

Remove the test sources, their blocks in
src/specification/spec-grouped.pl, and regenerate the platform
directories (gprolog 1.5.0, Makefile.genspec gen-clean gen-all). The
regenerated diffs contain exactly the removal of these tests from
test_info_new.gen.C and cmake-mutators.txt on every platform.

The remaining instruction-module tests are aarch64_decode.C (an empty
stub whose executeTest() just returns PASSED) and
test_instruction_profile.C (decodes the host's libc via SymtabAPI, so
it depends on external state and stays here for now).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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

Successfully merging this pull request may close these issues.

1 participant