Skip to content

Feat/format#37

Open
ElijahSwiftIBM wants to merge 35 commits intodevfrom
feat/format
Open

Feat/format#37
ElijahSwiftIBM wants to merge 35 commits intodevfrom
feat/format

Conversation

@ElijahSwiftIBM
Copy link
Copy Markdown
Collaborator

💡 Issue Reference

Issue: #21

💻 What does this address?

Potential exploiters of CBXP will be providing their own data rather than pulling information from a live system

📟 Implementation Details

Core cbxp functions were split into two "operations" explore (operating as before) and format (requiring input from a file or data buffer). The cli can accomodate a file/dataset and an offset into that file to look for the control block, or a buffer passed to stdin in place of the file. The python interface only deals with a data buffer and offset as a python exploiter can easily read/open files or datasets to pass in. The python interface also assumes an operation of "explore" by default.

📋 Is there a test case?

Many new test cases added to test.sh and test.py as well as samples added for consistent file behavior:

For the PR, these are the new tests added.

tests/test.sh

  • # Format

    • run_with_expected_exit_code 0 ./dist/cbxp format -F tests/samples/ascb.bin ascb
    • run_with_expected_exit_code 0 cat -B tests/samples/cvt.bin | ./dist/cbxp format cvt
    • run_with_expected_exit_code 0 ./dist/cbxp format -F tests/samples/oucb.bin oucb
    • run_with_expected_exit_code 0 ./dist/cbxp format -F tests/samples/ascboffset40.bin -o 0x40 ascb
    • run_with_expected_exit_code 0 ./dist/cbxp format -F tests/samples/ascboffset40.bin -o 64 ascb
    • run_with_expected_exit_code 0 cat -B tests/samples/oucboffset3A8.bin | ./dist/cbxp format -o 0x3A8 oucb
    • run_with_expected_exit_code 0 cat -B tests/samples/oucboffset3A8.bin | ./dist/cbxp format -o 936 oucb
  • # Errors: Bad Usage

    • run_with_expected_exit_code 255 ./dist/cbxp explore -F tests/samples/ascb.bin psa
    • run_with_expected_exit_code 255 ./dist/cbxp explore -o 1 psa
    • run_with_expected_exit_code 255 ./dist/cbxp format psa
    • run_with_expected_exit_code 255 ./dist/cbxp format -i cvt psa
    • run_with_expected_exit_code 255 ./dist/cbxp format -f psapsa=PSA psa
    • run_with_expected_exit_code 255 ./dist/cbxp format -F tests/samples/ascb.bin -o 999999 ascb
  • # Errors: File and STDIN

    • run_with_expected_exit_code 255 sh -c 'cat -B tests/samples/cvt.bin | ./dist/cbxp format -F tests/samples/cvt.bin cvt'
  • # Errors: Buffer Too Small

    • run_with_expected_exit_code 255 ./dist/cbxp format -F tests/samples/ascb.bin psa

tests/test.py

  • test_cbxp_can_format_ascb_from_a_file_buffer

  • test_cbxp_can_format_cvt_from_a_file_buffer

  • test_cbxp_can_format_oucb_from_a_file_buffer

  • test_cbxp_can_format_ascb_with_hex_offset

  • test_cbxp_can_format_ascb_with_decimal_offset

  • test_cbxp_can_format_oucb_with_hex_offset

  • test_cbxp_can_format_oucb_with_decimal_offset

  • test_cbxp_raises_cbxp_error_if_explore_uses_data_buffer

  • test_cbxp_raises_cbxp_error_if_explore_uses_offset

  • test_cbxp_raises_cbxp_error_if_bad_operation_is_provided

  • test_cbxp_raises_cbxp_error_if_format_uses_includes

  • test_cbxp_raises_cbxp_error_if_format_uses_filters

  • test_cbxp_raises_cbxp_error_if_format_is_missing_data_buffer

  • test_cbxp_raises_cbxp_error_if_format_offset_is_too_large

  • test_cbxp_raises_cbxp_error_if_format_buffer_is_too_small

Some existing tests were changed to be more dynamic in the face of some changed behavior on the system:

  • test_cbxp_can_use_int_filter_with_hex_field_equal
  • test_cbxp_can_use_hex_filter_with_equal
  • test_cbxp_can_use_hex_filter_with_greater_than
  • test_cbxp_can_use_hex_filter_with_less_than
  • test_cbxp_can_use_hex_filter_with_greater_than_or_equal
  • test_cbxp_can_use_hex_filter_with_less_than_or_equal

…ile parsing, data piping support all work for python interface and tests

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
…interface and lots of testing

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
…testing

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
…ode is in base, just needs lots of testing

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
…ault to 'explore' operation

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
…kes bytes only (still needs testing)

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.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