From 89cfdf123aee3248077c449c8ac54001a81ff51b Mon Sep 17 00:00:00 2001 From: Marc Bernard Date: Sat, 22 Feb 2025 14:50:40 +0000 Subject: [PATCH] Fix unit tests for non-Unicode systems Ref https://github.com/abapGit/abapGit/issues/7142#issuecomment-2643044612 --- .../zcl_abapgit_convert.clas.testclasses.abap | 5 ++++ ...l_abapgit_xml_output.clas.testclasses.abap | 7 ++++-- ...l_abapgit_xml_pretty.clas.testclasses.abap | 23 +++++++++++++++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/utils/zcl_abapgit_convert.clas.testclasses.abap b/src/utils/zcl_abapgit_convert.clas.testclasses.abap index 5067fc5c4..4207a01d0 100644 --- a/src/utils/zcl_abapgit_convert.clas.testclasses.abap +++ b/src/utils/zcl_abapgit_convert.clas.testclasses.abap @@ -284,6 +284,11 @@ CLASS ltcl_convert IMPLEMENTATION. DATA lv_result TYPE string. + " Test does not work on non-Unicode but is not important for real-world anyway + IF cl_abap_char_utilities=>charsize = 1. + RETURN. + ENDIF. + " 0xF8-0xFF are not valid in UTF-8 TRY. lv_result = zcl_abapgit_convert=>xstring_to_string_utf8( 'F8FF00' ). diff --git a/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap b/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap index 3c6b4ec44..98174d910 100644 --- a/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap +++ b/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap @@ -85,8 +85,11 @@ CLASS ltcl_xml_output IMPLEMENTATION. lv_xstring = lo_conv_out_string->get_buffer( ). - lv_bom = cl_abap_char_utilities=>byte_order_mark_little. "UTF-16LE, 4103 - CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE. + " Add BOM for Unicode systems + IF cl_abap_char_utilities=>charsize > 1. + lv_bom = cl_abap_char_utilities=>byte_order_mark_little. "UTF-16LE, 4103 + CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE. + ENDIF. lo_conv_in_string = cl_abap_conv_in_ce=>create( encoding = lv_encoding diff --git a/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap b/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap index 8bd3001c1..30677ff55 100644 --- a/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap +++ b/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap @@ -30,7 +30,11 @@ CLASS ltcl_test IMPLEMENTATION. DATA lv_result TYPE string. lv_result = mo_cut->print( '' ). - lv_result = lv_result+1. + + " Skip BOM for Unicode systems + IF cl_abap_char_utilities=>charsize > 1. + lv_result = lv_result+1. + ENDIF. cl_abap_unit_assert=>assert_equals( act = lv_result @@ -43,7 +47,11 @@ CLASS ltcl_test IMPLEMENTATION. DATA lv_result TYPE string. lv_result = mo_cut->print( '2' ). - lv_result = lv_result+1. + + " Skip BOM for Unicode systems + IF cl_abap_char_utilities=>charsize > 1. + lv_result = lv_result+1. + ENDIF. cl_abap_unit_assert=>assert_equals( act = lv_result @@ -56,7 +64,11 @@ CLASS ltcl_test IMPLEMENTATION. DATA lv_result TYPE string. lv_result = mo_cut->print( '2' ). - lv_result = lv_result+1. + + " Skip BOM for Unicode systems + IF cl_abap_char_utilities=>charsize > 1. + lv_result = lv_result+1. + ENDIF. cl_abap_unit_assert=>assert_equals( act = lv_result @@ -97,7 +109,10 @@ CLASS ltcl_test IMPLEMENTATION. iv_xml = |\n 2\n| iv_unpretty = abap_true ). - lv_result = lv_result+1. + " Skip BOM for Unicode systems + IF cl_abap_char_utilities=>charsize > 1. + lv_result = lv_result+1. + ENDIF. cl_abap_unit_assert=>assert_equals( act = lv_result