Fix Diff: Ignore comment edge cases (#5984)

This commit is contained in:
Christian Günter 2023-01-11 18:45:57 +01:00 committed by GitHub
parent dc00690542
commit c61cf0d586
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 0 deletions

View File

@ -235,6 +235,10 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
ls_diff-result = zif_abapgit_definitions=>c_diff-update.
ELSEIF <ls_delta>-flag1 = '' AND <ls_delta>-flag2 = ''.
ls_diff-result = zif_abapgit_definitions=>c_diff-unchanged.
ELSEIF <ls_delta>-flag1 = '' AND <ls_delta>-flag2 = 'E'. " ignore comment
ls_diff-result = zif_abapgit_definitions=>c_diff-unchanged.
ELSEIF <ls_delta>-flag1 = 'E' AND <ls_delta>-flag2 = ''. " ignore comment
ls_diff-result = zif_abapgit_definitions=>c_diff-unchanged.
ELSE.
ASSERT 0 = 1. " unknown comparison result
ENDIF.

View File

@ -46,6 +46,8 @@ CLASS ltcl_diff DEFINITION FOR TESTING
diff12 FOR TESTING RAISING zcx_abapgit_exception,
diff13 FOR TESTING RAISING zcx_abapgit_exception,
diff14 FOR TESTING RAISING zcx_abapgit_exception,
diff15 FOR TESTING RAISING zcx_abapgit_exception,
diff16 FOR TESTING RAISING zcx_abapgit_exception,
map_beacons FOR TESTING RAISING zcx_abapgit_exception.
ENDCLASS.
@ -563,6 +565,43 @@ CLASS ltcl_diff IMPLEMENTATION.
ENDMETHOD.
METHOD diff15.
" ignore comments - edge case new comment
add_new( `*/` ).
add_old( '' ).
add_expected( iv_new_num = ' 1'
iv_new = '*/'
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' '
iv_old = '' ).
test( iv_ignore_comments = abap_true ).
ENDMETHOD.
METHOD diff16.
" ignore comments - edge case deleted comment
add_new( `` ).
add_old( `* " problem` ).
add_expected( iv_new_num = ' '
iv_new = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = `* " problem` ).
test( iv_ignore_comments = abap_true ).
ENDMETHOD.
METHOD map_beacons.
add_new( `REPORT ztest_beacon.` ).

View File

@ -198,6 +198,8 @@
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff12", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff13", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff14", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff15", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff16", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "map_beacons", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_USER_RECORD", "class": "ltcl_user_record", "method": "test_invalid_user", "note": "Void type: BAPIADDR3"},